Autor | Zpráva | ||
---|---|---|---|
milanbalog Profil |
Ahoj,
chtěl bych se zeptat chtěl bych si napsat jednoduchý přihlašovací script. <form action="administrace/phplog/log.php" method="post"> <fieldset> <legend>Přihlášení do administrace</legend> <label class="req">Nick:</label> <input type="text" name="nick" /> <label class="req">Heslo:</label> <input type="password" name="heslo" /> </fieldset> <input type="submit" name="submit" value="Odeslat" class="submit" /> </form> a vyhodnocuji to scriptem <?php $udaje=array("nick"=>"21232f297a57a5a743894a0e4a801fc3"); if(md5($_POST["heslo"])==$udaje[$_POST["nick"]]){ echo "Jste přihlášen"; } else{ echo "Nejste přihlášen"; } ?> teď bych potřeboval vědět jestli je to úplná blbost nebo ten kód stačí něčím doplnit, nebo poupravit protože nefunguje. Nechci použít db jelikož to bude jediný uživatel s přístupem do administrace. Díky za rady Milan |
||
IdemeNaHavaj Profil |
if(md5($_POST["heslo"])==$udaje[$_POST["nick"]]){ |
||
Alphard Profil |
#3 · Zasláno: 17. 2. 2013, 21:48:51
IdemeNaHavaj [#2]:
Proč blbost? milanbalog: Nevidím tam zásadní problém. Jak se projevuje nefunkčnost? |
||
peta Profil |
<input type="text" name="nick" value="nick"/> ... <?php $udaje=array("nick"=>"21232f297a57a5a743894a0e4a801fc3"); //???!!! if(md5($_POST["heslo"])==$udaje[$_POST["nick"]]){ ... ?> Pokud do policka s name="nick" zadas slovo "nick" , a heslo zvolis takove, aby md5($_POST["heslo"] odpovidala "21232f297a57a5a743894a0e4a801fc3" , pak to bude fungovat. ve vsech ostatnich pripadech ne.
|
||
milanbalog Profil |
#5 · Zasláno: 18. 2. 2013, 16:22:30
Problém vyřešen i při starém scriptu měl jsem špatně nastaven .htaccess.
Velmi se omlouvám a děkuji za rady |
||
milanbalog Profil |
#6 · Zasláno: 18. 2. 2013, 20:16:59
Ještě jsem teď narazil na jeden problém a to s odhlášením.
Jelikož jsem si teď login.php (soubor zpracovávající přihlášení) trochu upravil tak mi nejde odhlášení. <?php $udaje=array("admin"=>"21232f297a57a5a743894a0e4a801fc3"); session_start(); if((!empty($_POST["heslo"]))and (!empty($_POST["nick"]))) { if(md5($_POST["heslo"])==$udaje[$_POST["nick"]]) { $_SESSION['prihlasen']=1; header("location: /"); exit; } else { echo 'Litujeme, přihlašovací údaje nejsou platné.'; } } if ($_GET['odhlasit']==1) { session_destroy(); header("location: /"); exit; } ?> a na zjištění session a odhlášení používám <?php if($_SESSION['prihlasen']=1) { echo "<p>Jste přihlášen. <a style='color:black' href='administrace/phplog/login.php?odhlasit=1'>Odhlásit se</a></p>"; } else { echo "<p>Nejste přihlášen.</p>"; } ?> tak mě to po přihlášení hodí na index a vypíše <p>Jste přihlášen. <a style='color:black' href='administrace/phplog/login.php?odhlasit=1'>Odhlásit se</a></p> ale po odeslání odkazu mě to opět přesměruje na index, ale stále vypisuje že jsem přihlášen. Nevím kde jsem udělal chybu zjišťování session mám hned 1. na indexu Díky za rady |
||
Alphard Profil |
#7 · Zasláno: 19. 2. 2013, 00:30:44
Před session_destroy() ještě $_SESSION = array(); viz příklad v manuálu.
|
||
Syntey Profil * |
#8 · Zasláno: 19. 2. 2013, 21:24:10
if($_SESSION['prihlasen']=1) Pokud jsi to zkopíroval ze svého kódu, tak tu máš chybu..Máš tam operátor přirovnání pokud se nemýlím..
|
||
milanbalog Profil |
#9 · Zasláno: 20. 2. 2013, 15:52:14
Alphard:
díky pomohlo mi to Syntey: jj přepsal jsem to na session_start(); if((!empty($_SESSION['prihlasen']))and($_SESSION['prihlasen']===1)) { ... |
||
Časová prodleva: 11 let
|
0