Autor | Zpráva | ||
---|---|---|---|
lesiak307 Profil |
#1 · Zasláno: 19. 1. 2011, 21:57:48
Dobrý večer,
prosím Vás prečo to nefunguje? Prvá podmienka jednoducho nejde. $no_meno = 0; $no_email = 0; $no_text = 0; if (!empty($_POST)) { if(empty($meno)) { $no_meno = 1; echo "Meno je prazdne a premenna ma hodnotu: ".$no_meno."<br>"; } else{ echo "Meno je: ".$meno.", hodnota premennej no_meno je: ".$no_meno."<br>"; } if(empty($email)) { $no_email = 1; echo "Mail je prazdy a premenna ma hodnotu: ".$no_email."<br>"; } else{ echo "Email je: ".$email.", hodnota premennej no_email je: ".$no_email."<br>"; } if(empty($text)) { $no_text = 1; echo "Text je prazdny a premenna ma hodnotu: ".$no_text."<br>"; } else{ echo "Text je: ".$text.", hodnota premennej no_text je: ".$no_text."<br>"; } } |
||
pcmanik Profil |
#2 · Zasláno: 19. 1. 2011, 22:07:31
skus namiesto empty s vykricnim pouzit isset
|
||
lesiak307 Profil |
#3 · Zasláno: 19. 1. 2011, 22:08:01
skusal som, nejde
|
||
jenikkozak Profil |
#4 · Zasláno: 19. 1. 2011, 22:13:02
lesiak307:
Hádám, že proměnná meno byla poslána formulářem. Je k ní nutno přistupovat jako k prvku pole $_POST: if(empty($_POST["meno"])) |
||
lesiak307 Profil |
#5 · Zasláno: 19. 1. 2011, 22:16:47
[#4] jenikkozak
Áno, to viem, ja by som skôr potreboval všeobecnú podmienku, či bolo aspoň jedno pole vo formulári vyplnené. |
||
lesiak307 Profil |
#6 · Zasláno: 19. 1. 2011, 22:18:37
pre úplnosť:
<form action="kontrola.php" method="post"> <table border="0"> <tr><td>Meno a priezvisko:</td> <td><input type="text" name="meno" size="40"></td></tr> <tr><td>Adresa:</td> <td><input type="text" name="adresa" size="40"></td></tr> <tr><td>Mesto</td> <td><input type="text" name="mesto" size="40"></td></tr> <tr><td>PSČ</td> <td><input type="text" name="psc" size="40"></td></tr> <tr><td>Telefón:</td> <td><input type="text" name="telefon" size="40"></td></tr> <tr><td>Email:</td> <td><input type="text" name="email" size="40"></td></tr> <tr><td>Text:</td> <td><textarea name="text" cols="50" rows="10"></textarea></td></tr> <tr><td></td> <td style="text-align: right;"><input type="submit" value="Ddoslať"></td> </tr> </table> </form> $meno = $_POST["meno"]; $adresa = $_POST["adresa"]; $mesto = $_POST["mesto"]; $psc = $_POST["psc"]; $telefon = $_POST["telefon"]; $email = $_POST["email"]; $text = $_POST["text"]; echo "Skuska<br><br>"; $no_meno = 0; $no_email = 0; $no_text = 0; if (!empty($_POST)) { if(empty($meno)) { $no_meno = 1; echo "Meno je prazdne a premenna ma hodnotu: ".$no_meno."<br>"; } else{ echo "Meno je: ".$meno.", hodnota premennej no_meno je: ".$no_meno."<br>"; } if(empty($email)) { $no_email = 1; echo "Mail je prazdy a premenna ma hodnotu: ".$no_email."<br>"; } else{ echo "Email je: ".$email.", hodnota premennej no_email je: ".$no_email."<br>"; } if(empty($text)) { $no_text = 1; echo "Text je prazdny a premenna ma hodnotu: ".$no_text."<br>"; } else{ echo "Text je: ".$text.", hodnota premennej no_text je: ".$no_text."<br>"; } } |
||
Alphard Profil |
#7 · Zasláno: 19. 1. 2011, 22:36:26
Ta podmínka je zapsaná správně. Po odeslání formuláře se ten blok musí vykonat. Pro lepší přehlednost tam dejte
print_r($_POST); .
lesiak307: „$meno = $_POST["meno"];“ Má tohle smysl? Nejdříve takováto samoúčelná přiřazení a až pak testujete, jestli byl formulář odeslán. |
||
lesiak307 Profil |
#8 · Zasláno: 19. 1. 2011, 22:50:30
Takže už len to, že odošlem nevyplnený formulár je táto podmienka pravda?
lesiak307: „if (!empty($_POST))“ Neviem, či tomu dobre rozumiem. S PHP robím veľmi málo... Ako by som potom mohol skontrolovať, či nebol odoslaný prázdny, nevyplnený formulár? Ďakujem |
||
xmark Profil |
#9 · Zasláno: 19. 1. 2011, 22:54:23
lesiak307:
Jestli byl odeslán formulář, testuješ na ř. 14. Ale už na řádcích 1-7 se snažíš načítat data z něj. |
||
lesiak307 Profil |
#10 · Zasláno: 19. 1. 2011, 22:59:33
xmark:
„Ale už na řádcích 1-7 se snažíš načítat data z něj.“ Ma to nejaký vplyv na vyhodnotenie podmienky? |
||
xmark Profil |
#11 · Zasláno: 19. 1. 2011, 23:06:07 · Upravil/a: xmark
lesiak307:
„Ma to nejaký vplyv na vyhodnotenie podmienky?“ Nemá, jen to ukazuje nedostatek programátorského citu. if (!empty($_POST)) jsem nikdy nezkoušel použít, nevím, jestli to může fungovat. Testoval bych if (isset($_POST["meno"])) |
||
Alphard Profil |
#12 · Zasláno: 19. 1. 2011, 23:10:42
lesiak307:
Také jsem psal něco o print_r(), kdybyste mě poslechl a zamyslel se nad tím, co vidíte, tak je vám to jasné. |
||
lesiak307 Profil |
#13 · Zasláno: 19. 1. 2011, 23:20:54
Alphard:
„kdybyste mě poslechl a zamyslel se nad tím“ spravil som to už vtedy ako ste mi poradili a vysledok bol: Array ( [meno] => [adresa] => [mesto] => [psc] => [telefon] => [email] => [text] => ) takže po odoslaní formulára $_POST nebude nikdy "prázdny"? |
||
lesiak307 Profil |
#14 · Zasláno: 19. 1. 2011, 23:23:30
Resp. $_POST["memo"] sa dá skontrolovať ale samotný $_POST nie?
|
||
lesiak307 Profil |
#15 · Zasláno: 19. 1. 2011, 23:31:11
xmark:
„to ukazuje nedostatek programátorského citu“ no, to je pravda... PHP sa zaoberám len okrajovo a ani sa nepokladám za programátora :) |
||
lesiak307 Profil |
#16 · Zasláno: 19. 1. 2011, 23:33:27
Prosím Vás, ešte raz moja otázka:
Ako by som potom mohol skontrolovať, či bol odoslaný prázdny - nevyplnený formulár a návštevníka na to upozorniť? Ďakujem |
||
Alphard Profil |
#17 · Zasláno: 19. 1. 2011, 23:35:09
Sám jste si vypsal to pole. Existují tam klíče, takže pole není prázdné.
„Ako by som potom mohol skontrolovať, či bol odoslaný prázdny“ Kontrolovat podle jednotlivých klíčů. Teoreticky lze projít cyklem $_POST. Zkuste prosím seskupovat své myšlenky do ucelenějších postů (lze je i editovat) a nepsat tady monolog 4 příspěvky za 10 minut. |
||
lesiak307 Profil |
#18 · Zasláno: 19. 1. 2011, 23:41:33
ďakujem za rady, už mi je to jasne.
Alphard: „nepsat tady monolog 4 příspěvky za 10 minut.“ málo miesta na serveri? :) |
||
panther Profil |
#19 · Zasláno: 20. 1. 2011, 00:26:59
lesiak307:
„málo miesta na serveri? :)“ ne, hrozba smazání druhého a každého dalšího příspěvku v řadě. Jsi na diskusi, nikoliv na chatu. A když už máš možnost jako registrovaný své příspěvky editovat, čiň tak. |
||
lesiak307 Profil |
#20 · Zasláno: 20. 1. 2011, 09:33:23
panther:
hej, len kľud. v noci bol spln, asi ste z toho podráždení |
||
Časová prodleva: 13 let
|
0