Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP]Formularz i skrypt w jednym pliku
Forum PHP.pl > Forum > Przedszkole
altar
Dane z formularza przesylam do tego samego pliku, tj. index.php
Problem polega na tym ze po dodaniu jakiegos rekordu do bazy, strona odswierza sie i wyswietla aktualna zawartosc bazy. I to jest OK. Ale...
Ale teraz gdy nic nie wpisze w formularz, a tylko odswierze strone, np przesz F5, to skrypt znowu wpisuje do bazy ostatnia zawartosc $_POST.
Probowalem uzyc unset do wyczyszczenia $_POST, probowalem przypisac pusty ciag (zakomentowane instrukcje), ale nic to nie zmienia.
Jak zrobic zeby po odswierzeniu strony nic sie nie dzialo, zeby rekord zostal dodany do bazy TYLKO I WYLACZNIE po wypelnieniu inputa i kliknieciu przycisku?

  1.  
  2. <!DOCTYPE html>
  3. <html lang="pl">
  4. <head>
  5. <meta charset="UTF-8">
  6. <title><?php echo $title; ?></title>
  7. <?php require_once 'pdomysqlbox.class.php'; ?>
  8. </head>
  9. <body>
  10. <?php
  11.  
  12. $title = $_POST['title'];
  13.  
  14. if(!empty($title)){
  15. $pdo = new PdoMySqlBox('localhost', 'zakladkiphp', 'root', '');
  16. $pdo->exec("INSERT INTO bookmarks VALUES('', '$title')");
  17. //unset($_POST['title']);
  18. //$_POST['title'] = '';
  19. }
  20. ?>
  21.  
  22. <form action="<?php $_SERVER['PHP_SELF']; ?>" method="post">
  23. <input type="text" name="title">
  24. <input type="submit" value="Add">
  25. </form>
  26.  
  27. <?php
  28. $pdo = new PdoMySqlBox('localhost', 'zakladkiphp', 'root', '');
  29. $result = $pdo->query("SELECT * FROM bookmarks");
  30.  
  31. foreach($result as $row){
  32. echo $row['id'].' '.$row['title'].'<br>';
  33. }
  34. ?>
  35.  
  36.  
  37.  
  38. </body>
  39. </html>
  40.  
johny_s
przeładuj stronę po dodaniu wpisu do bazy
altar
Cytat(johny_s @ 7.07.2014, 19:14:20 ) *
przeładuj stronę po dodaniu wpisu do bazy


strona przeladowuje sie po nacisnieciu przycisku formularza i to jest ok, wszystko co wpiszesz w formularz wpada do bazy danych, problem polega na tym ze po odswierzeniu strony (bez wpisania nowych danych w formularz, formularz jest pusty) ostatni rekord, czyli poprzednie dane z formularza wpisuja sie do bazy ponownie i ponownie.
na moj rozum po wprowadzeniu danych z formularza do bazy danych, trzeba tablice $_POST wyczyscic, ale jak to zrobic, jak pisalem probowalem przypisac pusty ciag i uzyc funkcji unset, ale to nie dziala, nie mam pojecia czemu.
kayman
napisał ci -> przeładuj stronę PO dodaniu do bazy
altar
Cytat(kayman @ 7.07.2014, 19:23:34 ) *
napisał ci -> przeładuj stronę PO dodaniu do bazy


No dobrze, a jak to zrobic? strona przeladowuje sie po nacisnieciu przycisku, jak ja przeladowac PO dodaniu do bazy?
nospor
Prosze, przypiety temat w dziale php.... problem poruszany petryliard razy.
http://forum.php.pl/index.php?showtopic=44...t=0&start=0
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.