Autor | Zpráva | ||
---|---|---|---|
emissary Profil |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1250" /> <title>reg4.php</title> </head> <body> <?php if (isset($_POST['submit'])) { if ($_POST['meno'] == "") {echo "Chýba meno";} elseif ($_POST['heslo'] == "") {echo "Chýba heslo";} elseif ($_POST['overheslo'] == "") {echo "Chýba heslo";} elseif ($_POST['heslo'] != $_POST['overheslo']) {echo "Hesla musia byt rovnaké";} else { include "db1.php"; $query = "INSERT INTO uzivatelia SET meno='$meno', heslo=MD5('$heslo')"; $result = mysql_query ($query); if ($result) echo "Váš účet bol úspešne vytvorený"; else echo "Nebolo možné vytvoriť Váš účet, skúste neskôr";} } ?> <div align="center"> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> <table> <tr> <td>Login</td> <td><input type="text" name="meno" value="" size="20" /></td> </tr> <tr> <td>Heslo</td> <td><input type="password" name="heslo" value="" size="20" /></td> </tr> <tr> <td>Opakuj heslo</td> <td><input type="password" name="overheslo" value="" size="20" /></td> </tr> <tr> <td colspan="2"><input type="submit" name="submit" value="registruj" /></td> </tr> </table> </form> </div> </body> </html> Ahojte! 1. poradí mi niekto, prečo sa môj formulár správa ako keby bol odoslaný?Pri načítaní stránky sa hneď spustí skript. Veď ten skript sa má spustiť až potom, čo stlačím "registruj". Prečo to tak nie je? 2. a keď sa už tak správa, prečo sa nezastaví hneď na prvej podmienke. tj if ($_POST['meno'] == "") {echo "Chýba meno";} Do ($_POST['meno'] ) ($_POST['heslo'] ) ($_POST['overheslo'] ) Jediné čo ho zastaví je podmienka elseif ($_POST['heslo'] != $_POST['overheslo']) {echo "Hesla musia byt rovnaké";} keďže heslo a overheslo sa nerovnajú, tak vypíše "Hesla musia byť rovnaké" Keby, tam nie je táto podmienka, tak pri každom načítaní, vloží do databázy "meno" a "heslo". |
||
holi Profil |
#2 · Zasláno: 15. 1. 2011, 14:27:18
A co zkusit místo
<?php if ($_POST['meno'] == "") {echo "Chýba meno";} ?> Také isset <?php if (!isset($_POST['meno'])) {echo "Chýba meno";} ? |
||
denCo Profil |
#3 · Zasláno: 15. 1. 2011, 14:28:54
if ( !empty ( $_POST['submit'] ) ) { if ( empty ( $_POST['meno'] ) ) {echo "Chýba meno";} ..... toto by malo ísť |
||
shaggy Profil |
emissary:
A keď ti odpovieme, tak opäť zmažeš svoj príspevok tak, ako minule? V takom prípade nevidím dôvod, prečo by sme ti mali radiť. |
||
emissary Profil |
#5 · Zasláno: 15. 1. 2011, 18:52:39
shaggy:
Lenže ako si poradil, tak som prerobil celý kód. A dal som tu nový. A mám tu iný problém. Ty si mi nič konkrétne neporadil. Prepáč. |
||
shaggy Profil |
#6 · Zasláno: 15. 1. 2011, 19:26:21
emissary:
A preto si zmazal starú otázku, hej? Nebolo by jednoduchšie pokračovať v tej téme aj s novým kódom? Ja som ti poradil až moc dobre, ale ty si očividne rady nezaslúžiš. Prepáč. |
||
emissary Profil |
#7 · Zasláno: 15. 1. 2011, 19:34:26
shaggy:
Fešák, nemám 12 rokov, aby som sa tu naťahoval s Tebou. Pokiaľ poznáš odpoveď a nechceš mi ju povedať, tak si ju nechaj pre seba. Mňa to nezaujíma. Snáď sa tu nájdu inteligentní ľudia, ktorí veľmi radi poradia a poprípade mi vysvetlia, prečo sa if (isset($_POST['submit'])) pri načítaní stránky chová ako keby bol odoslaný formulár - teda stlačená tlačidlo "submit". |
||
holi Profil |
#8 · Zasláno: 15. 1. 2011, 22:22:43
Protože i žádné hodnota submitu něco odesílá tzn. nehodnota má svou hodnotu něco jako hodnota "null" nebo trua a false to samé s inputama, takže ty po načtení stejnak odešleš hodnotu submit false nebo jak se to dá říct, tím tvá podmínka se submitem je platná ... takže využíj empty jak ti radil denCo
|
||
Alphard Profil |
#9 · Zasláno: 15. 1. 2011, 22:52:12 · Upravil/a: Alphard
emissary:
„Pri načítaní stránky sa hneď spustí skript.“ To není možné. Radši jsem to zkoušel, kdyby se chtěl někdo hádat :-) Každopádně si vypište pole $_POST a bude to jasné. print_r($_POST);
Pokud jde o to |
||
emissary Profil |
#10 · Zasláno: 16. 1. 2011, 10:42:06 · Upravil/a: emissary
Ďakujem všetkým, na problém som nakoniec prišiel. Keď som zmenil niečo v kóde, uložil na servery a opätovne načítal stránku, tak to začalo blbnúť. Aj keď som zavrel stránku, ale len okno, nie celý prehliadač a znova otvoril. Takže som musel zavrieť celý prehliadač. Po tomto to už šlo normálne. Takže každú zmenu v kóde riešim reštartovaním prehliadača. Sorry, že som Vás tu zavádzal. Ale nečakal som takúto "zradu". Ďakujem...
|
||
denCo Profil |
#11 · Zasláno: 16. 1. 2011, 10:48:37
emissary:
Aj hej, tak stačí obyčajne refreshnúť stránku napr. F5, ale aj tak je to trošku blbé keď niečo nefunguje na prvý krát, tak hneď zakladať tému a nevyskúšať to viac krát a napr. iným prehliadačom. |
||
emissary Profil |
#12 · Zasláno: 16. 1. 2011, 13:07:08 · Upravil/a: emissary
denCo:
Ja som sa s tým narobil pol dňa. A toto ma nenapadlo. A refreshnúť stránku nestačilo.... po každé musím zavrieť prehliadač a znova ho spustiť. |
||
holi Profil |
#13 · Zasláno: 16. 1. 2011, 23:53:37
emissary:
„Ja som sa s tým narobil pol dňa. A toto ma nenapadlo. A refreshnúť stránku nestačilo.... po každé musím zavrieť prehliadač a znova ho spustiť.“ Co používáš za prohlížeš já si teto anomalie všiml u nejnovější Opery která nehodlá měnit ani změnu v HTML nebo CSS takže musíš držet cca déle jako 2-3 sekundy F5, na chvíly ti zbělá obrazovka a stránka se načte znova a zaktualizuje se. PS: Opera je výborný prohlížeč ale na tvorbu webu doporučuji mozilu nebo chrome ;) |
||
Časová prodleva: 13 let
|
0