Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Przekierowanie na podstronę
Forum PHP.pl > Forum > Przedszkole
malin23
mam coś takiego

  1. $ins = @mysql_query("INSERT INTO protokol_dostaw SET Data='$Data', IDklienci='$idklienta', IDusers='$IDusers', kontakt_protokol='$kontakt_protokol'");
  2.  
  3. if($ins) {printf("Last inserted record has id %d\n", mysql_insert_id());
  4. $IDprotokol = mysql_insert_id();
  5. }
  6. else echo "Błąd nie udało się dodać nowego rekordu";
  7. }


i chciałbym teraz przekierować na podstronę index.php?IDprotokol=$IDprotokol

kilka rzeczy wypróbowałem, ale nie wiem, użyc do tego header questionmark.gif

Pomoże ktoś questionmark.gif
ereo.pl
  1. header('Location: index.php?IDprotokol='.$IDprotokol);
może tak ?
sadistic_son
No ale z czym masz problem?
Możesz użyć header albo przekierować htmlem.
malin23
  1. header('Location: index.php?IDprotokol='.$IDprotokol);


no właśnie tak nie działa.

Dopiero się uczę php i mogę się wykładać na podstawach, ale umieściłem to w if jak i poza.
I nie działa.
Pokazuje tylko komunikat Last inserted record has id i oczywiście wyświetla na końcu odpowiednio kolejne id.

Skrypt jest dużo większy, nie wiem czy cały wklejać, czy ma znaczenie to co wcześniej napisałem.
buliq
wklej ponad tym: error_reporting(E_ALL) i powiedz czy jakieś błędy są. Wklej kod z header();
ereo.pl
To błąd gdzieś indziej bo przekierowanie powinno działać, kod testowany ...
buliq
Znając tego typu skrypty programista zawsze wywala większość błędów w tym E_WARRING, czyli nie widzimy błędu ale on tam jest. W pliku błędów poszukaj błędów zawierających w treści header
malin23
  1. if($_POST["send"]==1){
  2. $idklienta = $_POST["idklienta"];
  3. $Data = $_POST["Data"];
  4. $kontakt_protokol = $_POST["kontakt_protokol"];
  5. $IDusers = $_POST["IDusers"];
  6. $ins = @mysql_query("INSERT INTO protokol_dostaw SET Data='$Data', IDklienci='$idklienta', IDusers='$IDusers', kontakt_protokol='$kontakt_protokol'");
  7. if($ins) {printf("Last inserted record has id %d\n", mysql_insert_id());
  8. $IDprotokol = mysql_insert_id();
  9. header('Location: protokol_podglad.php?IDprotokol='.$IDprotokol);
  10. }
  11. else echo "Błąd nie udało się dodać nowego rekordu";
  12.  
  13. }
  14. mysql_close($connection);
  15. ?>


mam coś takiego i wyświetla mi
Last inserted record has id 26


nic innego mi nie pokazuje.
jak coś to mogę wkeić całość, powyżej łącze się z bazą, wyświetlam z bazy kilka rzeczy, mam formularz.
buliq
poczytaj o ob_start i ob_end_flush. Innych pomysłów nie mam sad.gif

error_reporing daj na początku index.php
Spawnm
Dajesz printf przed header()... Przed header nie może być nic wyświetlone.
malin23
  1. <?php
  2.  
  3. require("check.php");
  4. $connection = @mysql_connect('', '', '')
  5. or die('Brak połączenia z serwerem MySQL.<br />Błąd: '.mysql_error());
  6. $db = @mysql_select_db('', $connection)
  7. or die('Nie mogę połączyć się z bazą danych<br />Błąd: '.mysql_error());
  8.  
  9. $uzytkownik = $_SESSION["uzytkownik"];
  10. $wynik2 = mysql_query("SELECT * FROM users WHERE user_login = '$uzytkownik'")
  11. or die('Błąd zapytania');
  12.  
  13. $r2 = mysql_fetch_assoc($wynik2);
  14.  
  15. $_SESSION["user_id"] = $r2['user_id'];
  16. $IDusers = $_SESSION["user_id"];
  17. echo "IDusers to:";
  18. echo $IDusers;
  19. echo "<br />";
  20.  
  21. $idklienta=intval($_GET['idklienta']);
  22. $osoba_przyjmujaca = $_SESSION["uzytkownik"];
  23.  
  24. echo "idklienta to:";
  25. echo "$idklienta";
  26.  
  27. $wynik = mysql_query("SELECT * FROM klienci WHERE IDklienci = '$idklienta' ")
  28. or die('Błąd zapytania');
  29.  
  30. if(mysql_num_rows($wynik) > 0) {
  31. echo "<table cellpadding=\"2\" border=1>";
  32. while($r = mysql_fetch_assoc($wynik)) {
  33. echo "<tr>";
  34. echo "<td>".$r['IDklienci']."</td>";
  35. echo "<td>".$r['Nazwa']."</td>";
  36. echo "<td>".$r['Ulica']."</td>";
  37. echo "<td>".$r['Kod_miasto']."</td>";
  38. echo "<td>".$r['NIP']."</td>";
  39. echo "</tr>";
  40. }
  41. echo "</table>";
  42. }
  43. ?>
  44. <?php
  45. <FORM ACTION="nowy_prot_form.php" METHOD="POST" ENCTYPE="iso-8859-2" ACCEPT-CHARSET="iso-8859-2">
  46. <input type="hidden" name="idklienta" value="'.$idklienta.'" />
  47. <input type="hidden" name="IDusers" value="'.$IDusers.'" />
  48. <TABLE>
  49. <TR>
  50. <TD>Data</TD>
  51. <TD><INPUT type="TEXT" NAME="Data" SIZE="30" MAXLENGTH="30" ALIGN="LEFT"></TD>
  52. </TR>
  53. <TR>
  54. <TD>Kontakt</TD>
  55. <TD><INPUT type="TEXT" NAME="kontakt_protokol" SIZE="30" MAXLENGTH="30" ALIGN="LEFT"></TD>
  56. </TR>
  57. <TR>
  58. <TD></TD>
  59. <TD><input type=hidden value="1" name=send></TD>
  60. </TR>
  61. <TR>
  62. <TD></TD>
  63. <TD><input type="submit" value="Wyslij" /></TD>
  64. </TR>
  65. </TABLE>
  66. </FORM>';
  67. ?>
  68. <?php
  69. if($_POST["send"]==1){
  70.  
  71. $idklienta = $_POST["idklienta"];
  72. $Data = $_POST["Data"];
  73. $kontakt_protokol = $_POST["kontakt_protokol"];
  74. $IDusers = $_POST["IDusers"];
  75. mysql_query("INSERT INTO protokol_dostaw SET Data='$Data', IDklienci='$idklienta', IDusers='$IDusers', kontakt_protokol='$kontakt_protokol'");
  76. header('Location:protokol_podglad.php');
  77. }
  78. mysql_close($connection);
  79. ?>


to jest cały kod, i w takiej postacie header nie działa,
błędów tez nie wyświetla żadnych.

Czy może ktoś pomóc to przeanalizować, ewentualnie o czym poczytać.

Fifi209
Bo nie ma prawa działać, napisał już o tym Spawnm, a gdybyś zastosował się do rady o error_reporting to nie musiałbyś długo szukać:
"headers already sent" wpisz to magiczne hasło w wyszukiwarce na forum albo w google.
buliq
I ja również podpowiedziałem. ob_start na początku pliku załatwi sprawę (powinien)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.