Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL]Edycja newsów
berettakk
post 28.06.2008, 13:25:14
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 24.11.2007

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


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. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
kopix
post 28.06.2008, 14:33:05
Post #2





Grupa: Zarejestrowani
Postów: 24
Pomógł: 4
Dołączył: 28.08.2007
Skąd: Katowice

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


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?
Go to the top of the page
+Quote Post
DarkItachiPL
post 28.06.2008, 14:59:45
Post #3





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 26.06.2008

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


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


Ten post edytował DarkItachiPL 28.06.2008, 15:00:10
Go to the top of the page
+Quote Post
berettakk
post 28.06.2008, 15:07:19
Post #4





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 24.11.2007

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


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


Ten post edytował berettakk 28.06.2008, 15:18:19
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 04:56