Autor Zpráva
stilgarcz02
Profil
Zdravím,

rad bych někoho poprosil, zda by mi neporadil.

Začínám se učit PHP z knížky od Jiřího Koska. Knížka je to super, ale složitější scripty z ní mi moc nefungují. Zasekl jsem se na příkladu z profesionálním formulářem. Vím o tom, že se místo např. $Jmeno používá $_POST["Jmeno"], register_globals jsou na on, error_reporting jsou změněny na E_ALL ^ E_NOTICE. Ale přesto scripty pořád nechodí, jak by měly. Zřejmě kdybych je dal na síť, tak by fungovaly, ale potřeboval bych je zprovoznit i doma.

Možná je chyba v tom, že nevím, kde všude umístit $_POST["Jmeno"] apod. Zde je zmíněný příklad :

<HTML>
<HEAD>
<TITLE>Ukázkový profesionální formulář</TITLE>
<STYLE TYPE="text/css">
<!--
TD B { color: red } /* Tučné písmo v buňce tabulky bude navíc červené */
-->
</STYLE>
</HEAD>
<BODY>
<?
$zobrazitFormular = true; // příznak zobrazování formuláře

if ($Odeslano): // byl již formulář odeslán?

if ($Jmeno=="" || // kontrola vyplnění povinných údajů
$Prijmeni=="" ||
$Email==""):

echo "<H1>Musíte vyplnit všechny povinné údaje!</H1>";
echo "Jsou označeny tučným červeným popisem.";

else: // máme povinná data, zpracujeme je

$zobrazitFormular = false;
echo "<H1>Děkujeme za registraci!</H1>";
// Zde se mohou získané informace libovolně zpracovat

endif;

else: // formulář je zobrazován poprvé

echo "<H1>Pro zaregistrování vyplňte tento formulář!</H1>";
echo "Povinné údaje jsou označeny tučným červeným popisem.";

endif;
?>

<?if ($zobrazitFormular): // má se zobrazovat formulář? ?>
<FORM METHOD=POST>
<TABLE BORDER=0>
<TR>
<TD><B>Jméno:</B>
<TD><INPUT NAME=Jmeno VALUE="<?echo $Jmeno?>" SIZE=30>
<TR>
<TD><B>Příjmení:</B>
<TD><INPUT NAME=Prijmeni VALUE="<?echo $Prijmeni?>" SIZE=30>
<TR>
<TD>Pohlaví:
<TD><INPUT TYPE=RADIO NAME=Pohlavi VALUE="Muz"
<?echo $Pohlavi=="Muz" ? " CHECKED" : ""?>>Muž
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<INPUT TYPE=RADIO NAME=Pohlavi VALUE="Zena"
<?echo $Pohlavi=="Zena" ? " CHECKED" : ""?>>Žena
<TR>
<TD><B>E-mail:</B>
<TD><INPUT NAME=Email VALUE="<?echo $Email?>" SIZE=30>
<TR>
<TD>WWW stránka:
<TD><INPUT NAME=Web VALUE="<?echo $Web?>" SIZE=30>
<TR>
<TH COLSPAN=2><INPUT TYPE=SUBMIT VALUE=" Registrace ">
</TABLE>
<INPUT TYPE=HIDDEN NAME=Odeslano VALUE=true>
</FORM>
<?endif?>
</BODY>
</HTML>


A hlásí to toto:


Notice: Undefined variable: Odeslano in c:\program files\easyphp1-8\www\profifrm-kosek.php on line 14
Pro zaregistrování vyplňte tento formulář!
Povinné údaje jsou označeny tučným červeným popisem.
Jméno: <br />
Příjmení: <br />
Pohlaví: <br />
Notice: Undefined variable: Pohlavi in c:\program files\easyphp1-8\www\profifrm-kosek.php on line 51
>Muž
Notice: Undefined variable: Pohlavi in c:\program files\easyphp1-8\www\profifrm-kosek.php on line 54
>Žena
E-mail: <br />
WWW stránka: <br />

Předem děkuji za jakoukoli pomoc.
tiso
Profil
Knižka je to super, ale pre staré PHP a staré HTML... Takže sa aspoň viacej naučíš kým niečo rozbeháš... Ale doporučoval by som Ti učiť sa z novších knižiek, predsa len aj keď ošetríš PHP chytíš zlé návyky čo sa týka HTML...

Čo sa týka rady tak skript Ti funguje, len hlási warning (vďaka E_NOTICE) že premenná nie je definovaná, lebo ju zle testuješ. miesto:
if ($Odeslano):

napíš:
if (isset($Odeslano)):

a tak aj pre ďalšie premenné...

Ak chceš aby skript fungoval aj pri registr_globals: off, tak všetky premenné čo sú z formulára musíš POST-núť.. Ktoré sú to zistíš podľa NAME vo formulári...
Toto téma je uzamčeno. Odpověď nelze zaslat.

0