Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]Edycja newsów
Forum PHP.pl > Forum > Przedszkole
berettakk
Próbuję napisać skrypt do aktualizowania newsów. Pierwsza część, czyli wyświetlanie tytułu i treści wiadomości działa. Mam jednak problem po naciśnięciu buttona "Zapisz". Ta część kodu jest zawsze pomijana. Zupełnie nie rozumiem, dlaczego. Wydaje mi się, że $_POST[...] nie są puste po zatwierdzeniu zmian. Jak można to zmusić do działania?

  1. <?php
  2. if (!isset($_POST['tytul']) || !isset($_POST['tresc']))
  3. {
  4.  echo '<form action="index.php" method="post">';
  5.  echo '<table align="center"><tr>';
  6.  echo '<td valign="top"><strong>Tytuł:</strong></td>';
  7.  echo "<td valign=top><input name=tytul type=text size=80 value='$tytul'></td>";
  8.  echo '</tr><tr>';
  9.  echo '<td valign="top"><strong>Treść:</strong></td>';
  10.  echo "<td valign=top><textarea rows=15 cols=74 name=tresc>$tresc</textarea><br><br>";
  11.  echo '<center><input type="submit" value="Zapisz"></center></td></tr></table></form>';
  12. }
  13. else if (isset($_POST['tytul']) && isset($_POST['tresc']))
  14. {
  15. $tytul = $_POST['tytul'];
  16. $tresc = $_POST['tresc'];
  17.  
  18. $tytul = htmlspecialchars($tytul);
  19. $tresc = htmlspecialchars($tresc);
  20.  
  21. if ($_SESSION['login'] == "admin")
  22. {
  23. $sql = "UPDATE news SET tytul = '$tytul', tresc = '$tresc' WHERE id=$id";
  24. $pyt = @mysql_query($sql);
  25.  
  26.  if ($pyt) echo "Zaktualizowano wiadomość.";
  27.  else echo "Aktualizacja nie powiodła się.";
  28. }
  29. }
  30. ?>
kopix
nie wiem czy dobrze zrozumiałem, ale chodzi ci o to, że po naciśnięciu przycisku 'zapisz' nie jest wykonywana żadna akcja - tak jakby $_POST było puste?
DarkItachiPL
może ten $_SESSION nie jest równy admin?? sprawdź to poprzez dodanie na końcu tego skryptu
  1. <?php
  2. if ($_SESSION['login'] == "admin")
  3. {
  4. $sql = "UPDATE news SET tytul = '$tytul', tresc = '$tresc' WHERE id=$id";
  5. $pyt = @mysql_query($sql);
  6.  
  7.  if ($pyt) echo "Zaktualizowano wiadomość.";
  8.  else echo "Aktualizacja nie powiodła się.";
  9. }
  10. ?>

linijki:
  1. <?php
  2. else {
  3. echo "Buu $_SESSION jest puste!!";
  4. }
  5. ?>


cały skrypt:
  1. <?php
  2. if (!isset($_POST['tytul']) || !isset($_POST['tresc']))
  3. {
  4.  echo '<form action="index.php" method="post">';
  5.  echo '<table align="center"><tr>';
  6.  echo '<td valign="top"><strong>Tytuł:</strong></td>';
  7.  echo "<td valign=top><input name=tytul type=text size=80 value='$tytul'></td>";
  8.  echo '</tr><tr>';
  9.  echo '<td valign="top"><strong>Treść:</strong></td>';
  10.  echo "<td valign=top><textarea rows=15 cols=74 name=tresc>$tresc</textarea><br><br>";
  11.  echo '<center><input type="submit" value="Zapisz"></center></td></tr></table></form>';
  12. }
  13. else if (isset($_POST['tytul']) && isset($_POST['tresc']))
  14. {
  15. $tytul = $_POST['tytul'];
  16. $tresc = $_POST['tresc'];
  17.  
  18. $tytul = htmlspecialchars($tytul);
  19. $tresc = htmlspecialchars($tresc);
  20.  
  21. if ($_SESSION['login'] == "admin")
  22. {
  23. $sql = "UPDATE news SET tytul = '$tytul', tresc = '$tresc' WHERE id=$id";
  24. $pyt = @mysql_query($sql);
  25.  
  26.  if ($pyt) echo "Zaktualizowano wiadomość.";
  27.  else echo "Aktualizacja nie powiodła się.";
  28. }
  29. else {
  30. echo "Buu $_SESSION jest puste!!"
  31.  }
  32. }
  33. ?>
berettakk
Cytat(kopix @ 28.06.2008, 15:33:05 ) *
nie wiem czy dobrze zrozumiałem, ale chodzi ci o to, że po naciśnięciu przycisku 'zapisz' nie jest wykonywana żadna akcja - tak jakby $_POST było puste?

Tak, dokładnie o to mi chodzi.

Edit: Udało się. Wystarczyło przy wysyłaniu formularza dodać id, czyli:
  1. <?php
  2. echo "<form action='index.php?id=$id' method=post>";
  3. ?>
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.