Autor Zpráva
Anonymní
Profil *
pomozte prosim neviem kde mam chybu

<form action="zpracuj.php" method="post">
<b>vase meno:</b><input name="jmeno">
<p>
<b>vase jazykove znalosti su:</b><br>
<input type="checkbox" name="cj" value="cz"> cestina<br>
<input type="checkbox" name="aj" value="en"> anglistina<br>
<input type="checkbox" name="nj" value="de"> nemcina<br>
<input type="checkbox" name="fj" value="fr"> francuztina<br>
<input type="checkbox" name="sj" value="es"> spanielcina<br>
<input type="checkbox" name="ot" value="n/a"> iny
<input type="text" name="jj">
<p>
<input type="submit" name="ok" value="odoslat">
</form>

====================skript s nazvom zpracuj.php==================================


<?php
if $_POST["jmeno"]
exit("hej, to sa ani nevies predstavit");
if $_POST["cj"]
echo "to je vyborne ze $_POST["jmeno"] hovori cesky";
else
echo "skoda ze nevies cesky";
if $_POST["aj"] echo "hello $_POST["meno"]";
if $_POST["nj"] echo "hola $_POST["meno"]";
if $_POST["fj"] echo "salut $_POST["meno"]";
if $_POST["sj"] echo "hola $_POST["meno"]";
if $_POST["ot"] && $_POST["jj"] echo "bohuzial $_POST["jj"] neviem";
?>
pe4k
Profil
neviem či ti nechýbajú zátvorky pri podmienkach a množinové zátvorky pri ohraničení platnosti podmienok
gaminn
Profil *
No předně se raději nauč základní syntaxi PHP, protože v tomhle kousku kódu je tolik chyb, že jsem to ještě neviděl;)
Anonymní
Profil *
zatvorky v podmienke mi tam nechybaju lebo pretoze sutam lomene zatvorky a zlozene zatvorky sa tam nedavaju pokuial viem
Anonymní
Profil *
tak mi ich napis ja som to prepisal z knihy ten kod
gaminn
Profil *
if($prom), to je základ.

Potom , co se týče funkčnosti skriptu, očekával bych, že na druhém řádku bude if(!$_POST['jmeno']).
gaminn
Profil *
Jinak, co se týče knihy, řekl bych, že ta je velmi zastaralá, pokud se v ní ještě vyskytují v téhle době již nestandardní tagy <br>, <input> (bez uzavření <br />), tag <p> není uzavírán.
Anonymní
Profil *
ta kniha je z roku 2005 PHP -zaciname programovat
Anonymní
Profil *
co tam je este zle
<?php
if ($_POST['jmeno'])
exit("hej, to sa ani nevies predstavit");
if ($_POST['cj'])
echo "to je vyborne ze $_POST["jmeno"] hovori cesky";
else
echo "skoda ze nevies cesky";
if $_POST["aj"] echo "hello $_POST["jmeno"]";
if $_POST["nj"] echo "hola $_POST["jmeno"]";
if $_POST["fj"] echo "salut $_POST["jmeno"]";
if $_POST["sj"] echo "hola $_POST["jmeno"]";
if $_POST["ot"] && $_POST["jj"] echo "bohuzial $_POST["jj"] neviem";
?>
gaminn
Profil *
Promiň, ale neříkej, že takový kód je uveden v nějaké knížce, tomu se mi nechce moc věřit;) No ještě by tomu mohlo vadit třeba $_POST["jmeno"] přímo v řetězci - bez problémů bude "to je vyborne ze ".$_POST["jmeno"]." hovori cesky"; Pak samozřejmě ještě chybí další závorky u podmínek.
Raider
Profil
Tiež pochybujem že taký kód aký si uviedol by bol v nejakej knižke o PHP.

Ale k veci. Čo má za význam táto podmienka ?

if ($_POST['jmeno'])
exit("hej, to sa ani nevies predstavit");

Trochu som pozmenil celý ten kód, tak si ho dobre pozri.

<?php

if ($_POST['jmeno'] == "")
{
exit("hej, to sa ani nevies predstavit");
}
else
{
if ($_POST['cj'])
{
echo "to je vyborne ze " . $_POST["jmeno"] . " hovori cesky";
}
else
{
echo "skoda ze nevies cesky";;
}

if ($_POST["aj"]) echo "hello " . $_POST["meno"];
if ($_POST["nj"]) echo "hola " . $_POST["meno"];
if ($_POST["fj"]) echo "salut " . $_POST["meno"];
if ($_POST["sj"]) echo "hola " . $_POST["meno"];
if ($_POST["ot"] && $_POST["jj"]) echo "bohuzial " . $_POST["jj"] . " neviem";
}
?>
Anonymní
Profil *
tak si tu knihu kup a budes sa divit !!!!

<?php
if ($_POST['!jmeno'])
exit("hej, to sa ani nevies predstavit");
if ($_POST['cj'])
echo "to je vyborne ze ".$_POST["jmeno"]." hovori cesky";
else
echo "skoda ze nevies cesky";
if ($_POST["aj"]) echo "hello $_POST["jmeno"]";
if ($_POST["nj"]) echo "hola $_POST["jmeno"]";
if ($_POST["fj"]) echo "salut $_POST["jmeno"]";
if ($_POST["sj"]) echo "hola $_POST["jmeno"]";
if ($_POST["ot"]) && $_POST["jj"] echo "bohuzial $_POST["jj"] neviem";
?>

Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ',' or ';' in C:\dev\www\zpracuj.php on line 5
Raider
Profil
K tej podienke. Ak nebolo zadané meno, tak vyhodí to "hej, to sa ani.." alebo, ak meno zadané bolo, tak vykoná sa to, čo sa nachádza v zátvorkach v else.

if ($_POST['jmeno'] == "") // ak nebolo meno zadané
{
exit("hej, to sa ani nevies predstavit");
}
else // alebo, ak bolo zadané meno
{

}
gaminn
Profil *
Anonymní: S lítostí ti oznamuji, že jsi koupil pořádný šmejd. Ale popravdě - spíš se mi nechce věřit, ža mluvíš pravdu.
djlj
Profil
Anonymní
Chybí ti tam závorky { a }.
Anonymní
Profil *
Raider

dik za ten tvoj skript som ho skusil a ten uz ide ale v tom mojom predchadzajucom su kde chyby pocuvaj ked budes v knihkupectve tak si tu knihu pozrx hej
Anonymní
Profil *
gaminn

vies co mne je celkom jedno ci sa ti chce mi verit . Ja som len nevedel kde je chyba v tej knihe je to tak ako som to napisal hej ale kasli na to
Anonymní
Profil *
Raider
hej dik ale mne je jasna podmienka a jej casti ako else ale neslo mi to tak som nevedel preco
gaminn
Profil *
Anonymní Jen jsem se ti snažil naznačit, že podle takový knížky se nic nenaučíš a budeš častěji na tomto fóru než byses něco nového naučil.
Raider
Profil
Chyby si robil v tomto:

if ($_POST["aj"]) echo "hello $_POST["jmeno"]";

Je tam problém s úvodzovkami. Medzi úvodzovkami echo sú ďaľšie dve úvodzovky a to je problém. Pretože echo by akože vypísalo "hello $_POST[". Správne to je takto: if ($_POST["aj"]) echo "hello " . $_POST["jmeno"];

Potom táto podmienka ako som hovoril vyššie:
if ($_POST['!jmeno'])
exit("hej, to sa ani nevies predstavit");

Nemá zmysle. Znamená, že ak meno tak vyhoď hej, to sa ani nevies predstavit. Správne by malo byť
if ($_POST['jmeno'] == "") // ak nebolo meno zadané
{
exit("hej, to sa ani nevies predstavit"); // vyhoď upozornenie
}
else // alebo, ak bolo zadané meno
{
nejaký kód // pokračuj v kóde
}

A potom ešte ti tam chýbajú zátvorky { } medzi if a else nižšie v kóde.
Anonymní
Profil *
Raider

hej ale nie je mi celkom jasna hrubo vyltacena cast
if ($_POST['jmeno'] <b>==</b> "") // ak nebolo meno zadané
{
exit("hej, to sa ani nevies predstavit");
}
else // alebo, ak bolo zadané meno
{

}

preco su tam tie dve ==
Anonymní
Profil *
gaminn
sorry ale mam s toho trochu nervy nepacilo sa mi ked si napisal ze si myslis ze v knihe je to zle ze somto napisal zle ja takze tak
Raider
Profil
To == znamená, že sa niečo rovná niečomu . Vtedy sa používajú dve ==.

Jedno = sa používa vtedy, keď chceš niečo do premennej vložiť.
Anonymní
Profil *
Raider
hej pokial viem == su operatory porovnanvanie ale neni mi jasne aky zmysel maj v tom zmysle kde su napisane ale dik si mi pomohol kua z akej knihy si sa ucil php
Raider
Profil
ale neni mi jasne aky zmysel maj v tom zmysle kde su napisane

No znamená to, že premenná jmeno $_POST['jmeno'] neobsahuje nič, preto není to "nič" medzi úvodzovkami "".

Ak by si napríklad chcel, aby to "hej, to sa ani nevies predstavit" vyhodilo človeku menom Stano, tak by si provovnal či sa premenná $_POST['jmeno'] rovná Stano-vi.

if ($_POST['jmeno'] == "Stano")


Keď sa $_POST['jmeno'] nerovná ničomu, tak preto není nič medzi úvodzovkami "" -> "nič". To nič si odmysli a zostane iba "".

(Snáď to bolo aspoň trochu zrozumiteľné čo som teraz napísal ;-))
Toto téma je uzamčeno. Odpověď nelze zaslat.

0