Autor | Zpráva | ||
---|---|---|---|
janvoz Profil * |
#1 · Zasláno: 17. 1. 2011, 13:20:15
Tak jsem se zmohl na svůj první výtvor v PHP, Snad to funguje. Na design nekoukejte, hlavne na kód PHP.
http://hlavicka.xf.cz/kniha/index.php db.php <?mysql_connect ( "******", "*****", "******" ) or die("Nepovedlo se připojit k databázi"); mysql_select_db ("*****") or die("Nepovedlo se načíst databázi"); $title = "Návštěvní kniha"; ?> index.php <table><tr><td>Jméno:</td> <input type="hidden" value="1" name="action" /> <td><input type="text" name="jmeno" value="" size="50"> </td> </tr><tr><td>E-mail:</td> <td><input type="text" name="mail" value="" size="50" ></td> </tr><tr></tr> <tr><td valign="top">Vzkaz:</td> <td><textarea name="vzkaz" cols="39" value="" rows="5"></textarea></td></tr> <tr><td></td><td>Ochrana proti spamu: 4 plus 5 = <input type="text" name="kontrola" value="" size="8" > </td> <tr><td></td><td> <input type="submit" value="odeslat"></td> </tr> </table> </form></div> <? $vysledek=MySQL_Query("SELECT * FROM gbook ORDER BY datim DESC"); while ($zaznam = MySQL_Fetch_Array($vysledek)) {?> <div id="vzkaz" style="margin: 0 auto;"><div class="zprava"> <div class="hlavicka"> Od:<b> <?echo $zaznam["jmeno"];?> </b>- <?echo $zaznam["datim"];?> </div> <p><?echo $zaznam["zprava"];?> <div class="paticka" style="height: 0 auto;"> <a href="mailto:<?$zaznam["email"];?>"><?echo $zaznam["email"];?></a> </div> </div> <?} Zpracuj.php <? include"db.php"; $jmeno = $_POST['jmeno']; $mail = $_POST['mail']; $vzkaz = $_POST['vzkaz']; $kontrola = $_POST['kontrola']; $action = $_POST['action']; $datum = StrFTime("%Y/%m/%d %H:%M:%S", Time()); if($action==0){echo"";} else{ if(($vzkaz=="") or ($jmeno=="")) {} else{ if ($kontrola !=9 and $action !=0 ) {} else { $insert= mysql_query("INSERT INTO gbook (jmeno, email, zprava, datim) VALUES('$jmeno', '$mail', '$vzkaz', '$datum' ) ") or die(mysql_error());; } } } ?> <script> window.location.replace("index.php"); </script> Při tvorbě se mi v tom nějak udělal zmatek, tak to podle toho asi vypadá:D Jen do mě.... |
||
jenikkozak Profil |
#2 · Zasláno: 17. 1. 2011, 13:36:28 · Upravil/a: jenikkozak
Proměnná action nenabývá hodnoty 0, takže tuhle podmínku nemá cenu dávat. Krom toho celá ta akce s actionem je zbytečná, máš tam dost jiných formulářových prvků, které můžeš testovat.
echo ""; Co je to za vynález? Proč otvíráš pusu, když nic nechceš říct? if(($vzkaz=="") or ($jmeno=="")) {} else{ Raději if($vzkaz!="" and $jmeno!=""){/*Ta část kódu, co byla v části else*/} value="" Když nic, tak nic. while ($zaznam = MySQL_Fetch_Array($vysledek)) {?> <div id="vzkaz"... Každé id smí být na stránce pouze jednou. Nemůže se tedy vypisovat v cyklu. if(($vzkaz=="") or ($jmeno=="")) Ty vnitřní závorky jsou zbytečné. Porovnání se provede před logickými výrazy. Chybí ti tam ochrana před vkládáním apostrofů a HTML. Při jakékoliv akci (ať chybné, nebo správné) nenapíšeš uživateli, co se stalo. |
||
janvoz Profil * |
#3 · Zasláno: 17. 1. 2011, 14:00:11
Vkládání HTML by mělo být vyřešeno tímto:
$jmeno = htmlspecialchars($_POST['jmeno']); $mail = htmlspecialchars($_POST['mail']); $vzkaz = htmlspecialchars($_POST['vzkaz']); Moc děkuji, jdu řešit zbytek.... |
||
__construct Profil |
#4 · Zasláno: 17. 1. 2011, 14:08:54
To ako prosím ťa presmerovávaš?
|
||
janvoz Profil * |
#5 · Zasláno: 17. 1. 2011, 14:15:14
Nevím jaké přeměrování máš na mysli?
Z index.php na zpracuj.php je to FORM ACTION <form action="zpracuj.php" name="form" method="post"> A zpět to je: <script> window.location.replace("index.php"); </script> |
||
__construct Profil |
#6 · Zasláno: 17. 1. 2011, 14:21:03 · Upravil/a: __construct
janvoz:
„Nevím jaké přeměrování máš na mysli?“ Práve to javascriptové… Pozri si ešte raz ten odkaz čo som Ti poslal (funkcia header()) |
||
janvoz Profil * |
#7 · Zasláno: 17. 1. 2011, 14:24:28
Taky by asi šlo použít...
|
||
Časová prodleva: 13 let
|
0