Autor | Zpráva | ||
---|---|---|---|
Argonisius Profil |
#1 · Zasláno: 25. 8. 2009, 16:22:56
Mám návštěvní knihu s databází, ale při aktualizaci stránky se mi opět zašle stejný příspěvek do databáze. Chtěl bych vás poprosit o radu, jak to udělat, aby se stejný příspěvek nepřidal. Díky.
|
||
Radek9 Profil |
#2 · Zasláno: 25. 8. 2009, 16:36:49
Myslím, že to jde pomocí unset a na 100% to jde pomocí přesměrování.
|
||
Argonisius Profil |
#3 · Zasláno: 25. 8. 2009, 16:50:29
??? v těhle oblastech jsem laik, co to je?
|
||
Darkweaver Profil |
#4 · Zasláno: 25. 8. 2009, 17:10:53
|
||
Taps Profil |
#5 · Zasláno: 25. 8. 2009, 17:31:14
|
||
Argonisius Profil |
#6 · Zasláno: 26. 8. 2009, 15:38:32
Tak... zkoušel jsem to, ale když to tam dám, tak mi nefungují některá hlášení. Nevíte, kam to strčit aby to šlo?
<?php // Určení proměnných. $hlaseni = ""; $obsah_prispevku = ""; // Zde je připojení k databázi. // Otestování, zda se připojení podařilo. if (!$db_spojeni) { $hlaseni ='Připojení k databázi se nezdařilo.'; exit(); } // Správné nastavení češtiny. $objekt_vysledku = mysqli_query($db_spojeni, "SET NAMES 'cp1250'"); if (!$objekt_vysledku) { echo 'Nepodařilo se nastavit češtinu.'; exit(); } // Test, jestli přišla data z formuláře. if (isset($_POST['zprava']) and (($_POST['jmeno']=="jmeno1" and $_POST['heslo']=="heslo1") or ($_POST['jmeno']=="jmeno2" and $_POST['heslo']=="heslo2")) and trim($_POST['zprava']) !== '') { // Vytvoření SQL příkazu typu INSERT. $sql_prikaz = "INSERT INTO kniha_navstev(datum,jmeno,zapis) " ."VALUES(NOW(),'" .mysqli_real_escape_string($db_spojeni,$_POST['jmeno']) ."','" .mysqli_real_escape_string($db_spojeni,$_POST['zprava']) ."')" ; // Zaslání SQL příkazu do databáze. $objekt_vysledku = mysqli_query($db_spojeni, $sql_prikaz); if (!$objekt_vysledku) { $hlaseni = 'Nepodařilo se poslat SQL příkaz.'; exit(); } $hlaseni = 'Zápis přidán.'; } else if (isset($_POST['zprava'])) { $hlaseni = 'Vyplnili jste špatně některou z kolonek!'; $obsah_prispevku = $_POST['zprava']; } // Odpojení od databáze. if ($db_spojeni) mysqli_close($db_spojeni); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="cs" xml:lang="cs"> <head> </head> <?php echo $hlaseni; ?> <form name="aktuality" action="" method="post" class="aktuality_pridat_prispevek"> Jméno: <input type="text" name="jmeno" /> Heslo: <input type="password" name="heslo" /> <textarea id="elm1" name="zprava" rows="15" cols="80" style="width: 80%"><?php echo $obsah_prispevku; ?></textarea> <input type="submit" name="uložit" value="Uložit" /> <input type="reset" name="reset" value="Reset" /> </form> </body> </html> Díky. |
||
Argonisius Profil |
#7 · Zasláno: 26. 8. 2009, 19:12:32 · Upravil/a: Argonisius
Tak, udělal jsem to podle návodu a toto je výsledek: ale nefunguje! Pomozte prosím, nevím kde je chyba.
// Test, jestli přišla data z formuláře. if (isset($_POST['zprava']) and (($_POST['jmeno']=="jmeno1" and $_POST['heslo']=="heslo1") or ($_POST['jmeno']=="jmeno2" and $_POST['heslo']=="heslo2")) and trim($_POST['zprava']) !== '') { // Vytvoření SQL příkazu typu INSERT. $sql_prikaz = "INSERT INTO kniha_navstev(datum,jmeno,zapis) " ."VALUES(NOW(),'" .mysqli_real_escape_string($db_spojeni,$_POST['jmeno']) ."','" .mysqli_real_escape_string($db_spojeni,$_POST['zprava']) ."')" ; // Zaslání SQL příkazu do databáze. $objekt_vysledku = mysqli_query($db_spojeni, $sql_prikaz); if ($objekt_vysledku) { header("Location: aktuality_pridat_prispevek"); exit(); } if (!$objekt_vysledku) { $hlaseni = 'Nepodařilo se poslat SQL příkaz.'; exit(); } $hlaseni = 'Zápis přidán.'; } else if (isset($_POST['jmeno']) and isset($_POST['heslo'])) { $hlaseni = 'Špatné přihlašovací údaje!'; $obsah_prispevku = $_POST['zprava']; } if (isset($_POST['zprava']) and trim($_POST['zprava']) == '') { $hlaseni = 'Nemůžete vložit prázdný příspěvek!'; $obsah_prispevku = $_POST['zprava']; } Moc díky za pomoc. |
||
Alphard Profil |
#8 · Zasláno: 26. 8. 2009, 20:18:35
Argonisius:
„header("Location: aktuality_pridat_prispevek");“ Adresa není kompletní, měla by být kompletní a bylo by dobré posílat kód 303. Tady je vzor: header ("location: http://".$_SERVER['SERVER_NAME'].$_SERVER['SCRIPT_NAME']."?hlaseni=pridano_ok", TRUE, 303); } |
||
Časová prodleva: 15 let
|
0