Autor Zpráva
Slower
Profil *
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ž 
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
      <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
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
Slower:
Rovněž doporučuji se podívat na ukázku přihlašování ze zdejšího FAQ - ukázka
Slower
Profil *
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
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 *
<?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ž 
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
      <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
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 *
hm hlavně ze je to přesně podle knihy:)...tak já to nějak zkusím...
panther
Profil
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
Slower:
na ř. 4 by mělo být if (isset($_POST['Odeslano'])){ atd.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: