Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Problem z header()
Forum PHP.pl > Forum > Przedszkole
adriano321
Zrobiłem sobie obsługę błędów za pomocą funkcji header(), która przenosi mnie z powrotem na daną stronę z tą różnicą, że dodaje w adresie tablicę $GET, później switchem sprawdzam i wyświetlam komunikat. No i w czym problem? Otóż po tym jak nie podam jakiejś informacji np. tytułu bądź treści to przenosi mnie dodając końcówkę "?info=1", następnie dopisuje to co ominąłem i chcąc dodać newsa, wyskakuje błąd o treści:


"Warning: Cannot modify header information - headers already sent by (output started at ...\add_news.php:29) in ...\add_news.php on line 56"


Rozumiem treść komunikatu, więc mniej więcej wiem o co chodzi, niestety nie mam pojęcia jak sobie z tym poradzić/obejść? Co zmienić w kodzie? Może znacie jakiś inny sposób?


  1. <?php
  2.  
  3. mysql_connect('localhost','root','');
  4.  
  5. $sql="SELECT * FROM newsy ORDER BY id DESC";
  6. $wynik=mysql_query($sql);
  7.  
  8. $i=0;
  9. if (mysql_num_rows($wynik)!=0) {
  10. while ($tablica=mysql_fetch_array($wynik)) {
  11. $id[$i]=$tablica['id'];
  12. $tytul_newsa[$i]=$tablica['tytul_newsa'];
  13. $tresc_newsa[$i]=$tablica['tresc_newsa'];
  14. $autor[$i]=$tablica['autor'];
  15. $data[$i]=$tablica['data'];
  16. $godzina[$i]=$tablica['godzina'];
  17. $i++;
  18. }
  19.  }
  20.  
  21. if (isset($_GET)) {
  22. switch ($_GET['info']) {
  23. case "1": { 
  24. echo "Nie podano wszystkich danych<br />";
  25. break;
  26. }
  27. case "2": {
  28. echo "Dodano newsa";
  29. break;
  30. }
  31. }
  32. }
  33.  
  34. if (!$_POST) {
  35. echo "<form action=\"".$SERVER['PHP_SELF']."\" method=\"POST\">
  36. <select name=\"news\" style=\"width: 48%\">";
  37.  
  38. for($x=0;$x<=$i;$x++) {
  39. echo "<option value=\"".$id[$x]."\">".$tytul_newsa[$x]."</option>";
  40. }
  41.  
  42. echo "</select>
  43. <input type=\"submit\" value=\"Edytuj\" name=\"edit\"><input type=\"submit\" value=\"Usuń\" name=\"erase\">
  44. <br />
  45. Tytuł:<br /><input type=\"text\" name=\"tytul\" style=\"width: 60%\"><br />
  46. Treść:<br /><textarea style=\"width: 60%\" name=\"tresc\"></textarea><br /> <input type=\"submit\" value=\"Wyślij\"></form>";
  47.  
  48. } elseif (!$_POST['tytul'] || !$_POST['tresc']){
  49.  
  50. header("Location: add_news.php?info=2");
  51.  
  52. } elseif (isset($_POST['tytul']) && isset($_POST['tresc'])) {  //może i wcześniej sprawdzałem ale lepiej sprawdzić
  53.  
  54. $sql="INSERT INTO newsy VALUES ('','".$_POST['tytul']."','".$_POST['tresc']."','','aktualna_data','aktualna_godzina')";
  55. mysql_query($sql) or die("Nie udało się dodadać newsa");
  56. header("Location: add_news.php?info=1");
  57.  
  58. }
  59.  
  60.  
  61.  
  62.  
  63. ?>
JaRoPHP
Użyj wyszukiwarki - temat poruszany bardzo często (np. tutaj).

Zamykam.
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.