Autor | Zpráva | ||
---|---|---|---|
Měsíček Profil |
#1 · Zasláno: 24. 5. 2008, 19:44:40 · Upravil/a: Měsíček
Chtěl bych upozornit na jednu chybu, která mě docela bije do očí - tato chyba je na stránce http://www.jakpsatweb.cz/heslo.html kde Yuhů přibližně ve prostřed ukazuje způsob zaheslování stránky pomocí PHP; skript, který podává je špatně napsán. Pokročilý mrkem oka uvidí co je špatně a sÁM si to opraví, ale na JPW obvykle chodí začátečníci, kteří o PHP neví zhola nic a tak ani nezjistí, že tohle je chyba, dále jsem zjistil, že mnoho lidí i na tuto chybnou stránku odvolávalo ve svých příspěvcích a obvykle s tím nakonec byly potíže, takže chybný skript:
<body> <? if($GET["heslo"] != "mellon"): ?> <!--přihlaąovací formulář --> <form> Zadej heslo: <input type=password name="heslo"> <input type=submit> </form> <? else: ?> <h1>Vítejte v Morii!</h1> ... daląí tajný text <? endif ?> </body> <body> <?php if($_GET["heslo"] != "mellon"){ ?> <!--přihlaąovací formulář --> <form action="" method="GET"> Zadej heslo: <input type="password" name="heslo"> <input type="submit"> </form> <?php } else { ?> <h1>Vítejte v Morii!</h1> ... daląí tajný text <?php } ?> </body> - Nechyba (přidány uvozovky) - Chyba (místo $GET přeměněno na $_GET) Jestliže toto vlákno Yuhů v brzké době nezpozoruje tak mu pošlu e-mail, dal jsem to tady také kvůli těm, kteří se na tuto stránku odvolávají a také pro začátečníky, kteří na tento skript natrefili a nefungoval jim. EDIT: tedy další nápad (od uživatele joe) rovnou celé předělat do možnosti posílání jako POST a ne přes GET tedy: <body> <?php if($_POST["heslo"] != "mellon"){ ?> <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="POST"> Zadej heslo: <input type="password" name="heslo"> <input type="submit"> </form> <?php } else { ?> <h1>Vítejte v Morii!</h1> ... daląí tajný text <?php } ?> </body> |
||
joe Profil |
#2 · Zasláno: 24. 5. 2008, 20:05:27
Možná by neškodilo posílat heslo pomocí POST, když už by došlo k těm úpravám.
|
||
Časová prodleva: 12 dní
|
|||
Str4wberry Profil |
#3 · Zasláno: 5. 6. 2008, 17:38:52
Zobrazovat „heslo“ v adrese (metoda GET) je pro pochopení (podle mě) lepší.
Reakce na Měsíčka: 1. „action="" method="GET"“ — je zbytečné 2. Proč jsi měnil styl zápisu té podmínky? |
||
Měsíček Profil |
#4 · Zasláno: 5. 6. 2008, 18:04:57
1. „action="" method="GET"“ — je zbytečné
A není tak čistě náhodou atribut action="" povinný? method="GET" je defaultní .. takže ten zbytečný je, jde o přehlednost. "2. Proč jsi měnil styl zápisu té podmínky?" Protože je to IMHO přehlednější .. osobně bych to udělal ještě jinak, ale snažil jsem se držet celkového vzoru toho skriptu. |
||
Časová prodleva: 8 dní
|
|||
Yuhů Profil |
#5 · Zasláno: 13. 6. 2008, 13:50:58
děkuju, opravím.
Typická lameřina. Upravoval jsem proměnné z tvaru $heslo a upsal jsem se. |
||
Časová prodleva: 16 let
|
0