Autor | Zpráva | ||
---|---|---|---|
Slower Profil * |
#1 · Zasláno: 1. 10. 2012, 20:39:55 · Upravil/a: Slower
Zdravím, mám knihu "php-tvorba-interaktivnich-internetovych-aplikaci" a dělám podlé ní jeden příklad s formulářem....
kod jsem opsal úplně přesně z knížky a píše mi to neustále chyby a už fakt nevím co stím... Tady jsou chyby: Notice: Undefined variable: Odeslano in C:\www\doma\registrace.php on line 18 Notice: Undefined variable: Pohlavi in C:\www\doma\registrace.php on line 57 <br /><b>Notice</b>: Undefined variable: Email in <b>C:\www\doma\registrace.php</b> on line <b>64</b><br /> poslu ještě zdroják...omlouvám se, že je tak dlouhý ale chci aby byl kompletní... <html> <head> <title>Registrace</title> <style type="text/css"> <!-- TD B { color: red } --> </style> </head> <body> <?php $zobrazitFormular = true; if ($Odeslano){ if ($Jmeno=="" || $Prijmeni=="" || $Email==""){ echo "<h1>Musíte vyppnit všechny povinné údaje!</h1>"; echo "Jsou označeny tučným červeným popisem."; } else { $zobrazitFormular = false; echo "<h1>Děkujeme za registraci!</h1>"; } } else { echo "<h1>Pro zaregristrování vyplňte tento formulář!</h1>"; echo "Povinné údaje jsou označny tučným červeným popisem."; } ?> <?php if ($zobrazitFormular){ ?> <form method="post" action="registrace.php"> <table> <TR> <TD><b>Jméno:</b> <TD><INPUT NAME="Jmeno" VALUE="<?php echo $Jmeno?>" size="30"> <TR> <TD><b>Příjmení:</b> <TD><INPUT NAME="Prijmeni" VALUE="<?php echo $Prijmeni?>" size="30"> <TR> <TD>Pohlaví: <TD> <INPUT TYPE="radio" NAME="Pohlavi" VALUE="Muz" <?php echo $Pohlavi=="Muz" ? " CHECKED" : ""?>>Muž <INPUT TYPE="radio" NAME="Pohlavi" VALUE="Zena" <?php echo $Pohlavi=="Zena" ? " CHECKED" : ""?>>Žena <TR> <TD><b>Email:</b> <TD><INPUT NAME="Email" VALUE="<?php echo $Email?>" size="30"> <TR> <TH colspan="2"><INPUT TYPE="submit" VALUE="Registrace"> </table> <INPUT TYPE="HIDDEN" NAME="Odeslano" VALUE="true"> </form> <?php } ?> </body> </html> Ještě jsem zapomněl poděkovat předem za pomoc :) |
||
joe Profil |
#2 · Zasláno: 1. 10. 2012, 20:47:14
Kniha je pravděpodobně zastaralá, doporučuji nepoužívat - spoléhá na zapnutou direktivu
register_globals .
Ve zkratce dělá to, že pokud ve formuláři použiješ název prvku například "Email", pak bude dostupná proměnná $Email. Pokud je register_globals vypnuté (dnes naštěstí již ve většině případů), pak se k hodnotě s názvem "Email" dostaneš přes globální pole $_POST (v případě odeslání formuláře metodou POST) a nebo $_GET (při mětodě GET). Teď bys měl být schopný kód opravit. |
||
abc Profil |
#3 · Zasláno: 1. 10. 2012, 20:55:13
Slower:
Rovněž doporučuji se podívat na ukázku přihlašování ze zdejšího FAQ - ukázka |
||
Slower Profil * |
#4 · Zasláno: 1. 10. 2012, 20:56:32 · Upravil/a: Slower
tak jsem zapl ten register_globals= on a problém je stejný, žádná změna...
ja vím co myslíš, že přepíšu proměnné na toto <?php echo $_POST['Jmeno']?> ale nepomohlo joe: dík za stránku |
||
panther Profil |
#5 · Zasláno: 1. 10. 2012, 20:59:13
Slower:
„tak jsem zapl ten register_globals= on“ nezapinej, vypni/nech vypnute. „<?php echo $_POST['Jmeno']?> ale nepomohlo“ kam jsi to echo vlozil? Proc vubec echo, co chces kde vypisovat? Zmenil jsi vsechno, tedy prepsal promenne pro vsechna formularove pole? Ukaz aktualni PHP kod, HTML z nej muzes vynechat, to se predpokladam nemenilo. |
||
Slower Profil * |
#6 · Zasláno: 1. 10. 2012, 21:02:57
<?php $zobrazitFormular = true; if ($Odeslano){ if ($_POST['Jmeno']=="" || $_POST['Prijmeni']=="" || $_POST['Email']==""){ echo "<h1>Musíte vyppnit všechny povinné údaje!</h1>"; echo "Jsou označeny tučným červeným popisem."; } else { $zobrazitFormular = false; echo "<h1>Děkujeme za registraci!</h1>"; } } else { echo "<h1>Pro zaregristrování vyplňte tento formulář!</h1>"; echo "Povinné údaje jsou označny tučným červeným popisem."; } ?> <?php if ($zobrazitFormular){ ?> <form method="post" action="registrace.php"> <table> <TR> <TD><b>Jméno:</b> <TD><INPUT NAME="Jmeno" VALUE="<?php echo $_POST['Jmeno']?>" size="30"> <TR> <TD><b>Příjmení:</b> <TD><INPUT NAME="Prijmeni" VALUE="<?php echo $_POST['Prijmeni']?>" size="30"> <TR> <TD>Pohlaví: <TD> <INPUT TYPE="radio" NAME="Pohlavi" VALUE="Muz" <?php echo $_POST['Pohlavi']=="Muz" ? " CHECKED" : ""?>>Muž <INPUT TYPE="radio" NAME="Pohlavi" VALUE="Zena" <?php echo $_POST['Pohlavi']=="Zena" ? " CHECKED" : ""?>>Žena <TR> <TD><b>Email:</b> <TD><INPUT NAME="Email" VALUE="<?php echo $_POST['Email']?>" size="30"> <TR> <TH colspan="2"><INPUT TYPE="submit" VALUE="Registrace"> </table> <INPUT TYPE="HIDDEN" NAME="Odeslano" VALUE="true"> </form> <?php } ?> |
||
panther Profil |
#7 · Zasláno: 1. 10. 2012, 21:05:14
Slower:
v dobe, kdy vypisujes formular (mj. pred odeslanim), neni v $_POST nic. Na r. 34 a kazdem dalsim podobnem musis mit podminku, zda dany klic v POST existuje.
S vypnutymi register globals nebude samozrejme fungovat ani podminka na r. 4. |
||
Slower Profil * |
#8 · Zasláno: 1. 10. 2012, 21:11:18
hm hlavně ze je to přesně podle knihy:)...tak já to nějak zkusím...
|
||
panther Profil |
#9 · Zasláno: 1. 10. 2012, 21:23:10
Slower:
„hm hlavně ze je to přesně podle knihy:)“ ne kazda kniha je dobra a ne kazda kniha je aktualni. Vse se vyviji, programovaci jazyky nevyjimaje. |
||
abc Profil |
#10 · Zasláno: 1. 10. 2012, 22:04:35
Slower:
na ř. 4 by mělo být if (isset($_POST['Odeslano'])){ atd.
|
||
Časová prodleva: 12 let
|
0