Autor | Zpráva | ||
---|---|---|---|
Musilda Profil |
#1 · Zasláno: 28. 9. 2008, 20:13:22
Dobrý den,
potřebuji poradit se scriptem, pro přihlášení uživatelů. Učím se a postupuji podle knihy, ale bohužel nejsem schopen nalézt chybu. Při zadání platného username a password, se nevypíše proměná. <?php session_start(); $_SESSION['username'] = $_POST['user']; $_SESSION['userpass'] = $_POST['pass']; $_SESSION['authuser'] = 0; if (isset ( $_SESSION['username']) && ( $_SESSION['userpass']) ) { $_SESSION['authuser'] = 1; } else {$_SESSION['authuser'] = 0; } //připojení k databázi include "spojeni.php"; //head dokumentu html include "head.php"; ?> <body> <p>Přihlášen jako: <b> <?php $dotaz=" SELECT username,password " . " FROM users "; $vysledek = mysql_query($dotaz) or die ( mysql_error() ); while($zaznam = mysql_fetch_array($vysledek)){ extract ( $zaznam ); } $username = $zaznam["username"]; $password = $zaznam["password"]; if ( ($_SESSION['username'] == $username ) && ( $_SESSION['userpass'] == $password ) ) { $loginname = $username; } if ( $_SESSION['authuser'] == 0 ){ echo "nepřihlášen"; } else{ if ( $_SESSION['authuser'] == 1 ){ echo $loginname; } } ?> </b></p> <h4>Přihlášení uživatele</h4> <form method="post"> <p>Přihlašovací jméno<br> <input type="text" size="10" name="user"><br> Přihlašovací heslo<br> <input type="text" size="10" name="pass"><br> <input type="submit" value="Přihlásit"><br> </form> </body> </html> Díky za radu. |
||
RAmses Profil |
#2 · Zasláno: 28. 9. 2008, 20:22:26 · Upravil/a: RAmses
A co se tedy vypíše? Vypíše se nepřihlášen?
if (isset ( $_SESSION['username']) && ( $_SESSION['userpass']) ) tady ti zřejmě chybí jeden isset Vůbec je to celé nějaké divné. Vytahuješ všechny uživatele zbytečně, stačí si vytáhnout uživatele, kterému odpovídá zadané jméno a heslo, pokud ti dotaz vrátí 0 záznamů, vypíšeš Uživatelské jméno nebo heslo je chybné, jinak vypíšeš jméno uživatele |
||
Alphard Profil |
#3 · Zasláno: 28. 9. 2008, 20:29:04
Musilda
takhle většinou neodpovídám, ale tento kód není ideální (nechci použít slovo prasácký), jestli je to podle nějaké knihy, doporučuji vyhodit ji z okna podívejte se sem http://php.vrana.cz/prihlasovani-uzivatelu.php kvalitně, jednoduše, bez zbytečností v tom výše uvedeném ani nemá cenu hledat chybu |
||
Musilda Profil |
#4 · Zasláno: 28. 9. 2008, 21:16:01
„A co se tedy vypíše? Vypíše se nepřihlášen?“
„if (isset ( $_SESSION['username']) && ( $_SESSION['userpass']) )“ „tady ti zřejmě chybí jeden isset“ „Vůbec je to celé nějaké divné. Vytahuješ všechny uživatele zbytečně, stačí si vytáhnout uživatele, kterému odpovídá zadané jméno a heslo, pokud ti dotaz vrátí 0 záznamů, vypíšeš Uživatelské jméno nebo heslo je chybné, jinak vypíšeš jméno uživatele“ Nevypíše se nic. |
||
RAmses Profil |
#5 · Zasláno: 28. 9. 2008, 21:50:49
Přikláním se k Alphardovi
|
||
Musilda Profil |
#6 · Zasláno: 28. 9. 2008, 22:23:49
RAmses + Alphard
Díky za tip |
||
BetaCam Profil |
#7 · Zasláno: 30. 9. 2008, 11:42:24
Musilda
Jinak jen ze zvědavosti z které že to knihy si čerpal?? |
||
Musilda Profil |
#8 · Zasláno: 30. 9. 2008, 21:25:38
BetaCam
PHP5,MySQL,Apache Vytváříme webové aplikace. Musím sebekriticky přiznat, že to spíše bylo nepochopením dané problematiky. Díky linku od Alpharda jsem už na tom podstatně lépe. Ale ve scriptech v té knize jsem už několik chyb našel a dokonce se tady už někdo ptal, proč mu nejde script z té knihy. |
||
Časová prodleva: 16 let
|
0