Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Problem z header()
adriano321
post
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 1
Dołączył: 24.01.2007

Ostrzeżenie: (0%)
-----


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


Ten post edytował adriano321 3.12.2007, 17:09:52
Go to the top of the page
+Quote Post

Posty w temacie


Closed TopicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 18:10