| 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: 13 let
|
|||
0