Autor | Zpráva | ||
---|---|---|---|
Michales Profil |
Ahoj vážení,
můžete mi někdo zkontrolovat můj kod na přihlášení? Ikdyž mám zaškrtnuté tlačítko pamatovat si mě tak mě to stejně po nějaké době odhlásí. Formulář: <form class="clearfix" action="login_zpracuj.php" method="post"> <h1>Přihlášení<br> Login</h1> <label class="grey" for="log">Nick:</label> <input class="field" type="text" name="jmeno" id="log" value="" size="23" /> <label class="grey" for="pwd">Password:</label> <input class="field" type="password" name="heslo" id="pwd" size="23" /> <label><input name="rememberMe" id="rememberMe" type="checkbox" checked="checked" value="1" /> Pamatovat si mě?</label> <input type="submit" name="submit" value="Login" class="bt_login" /> </form> login_zpracuj: <?php ob_start(); /* * Tetno soubor zjisti zda se takovy uzivatel s takovym heslem v databazi nachazi. * Pokud ano, do sessions o tom ulozime informaci. * Jinak se samozrejme presmerujeme zpet a dame uzivateli vedet, ze zadal spatne udaje */ session_start(); // Budeme pracovat se session, musíme je nastartovat. if(isset($_POST['jmeno'])){ require_once 'settings_2.php'; $name = $_POST['jmeno']; $pass = md5($_POST['heslo']); $remember = $_POST['rememberMe']; $query = mysql_query("SELECT * FROM `uzivatele` WHERE `jmeno` = '$name' and `heslo` = '$pass'") or die (mysql_error()); // Vybereme uživatele se zadaným jménem a heslem $Vysledek = mysql_fetch_array($query); if($Vysledek['jmeno']){ // pokud tato proměnná obsahuje data, bylo zadané správné jméno a heslo // Do sessions si uložíme pár informací o přihlášeném $_SESSION['prihlasen'] = 1; $_SESSION['login'] = $Vysledek['jmeno']; $_SESSION['UserId'] = $Vysledek['id']; $_SESSION['UserMail'] = $Vysledek['mail']; $_SESSION['ip'] = $Vysledek['ip']; if(isset($_POST['remember'])){ setcookie("cookname", $_SESSION['login'], time()+60*60*24*100, "/"); setcookie("cookid", $_SESSION['UserID'], time()+60*60*24*100, "/"); } $ip=$_SERVER["REMOTE_ADDR"]; $tm=date("Y-m-d-H-i-s"); $query = mysql_query("UPDATE uzivatele SET ip = '$ip', tm = '$tm' WHERE `jmeno` = '$name' ") or die (mysql_error()); $bl=$_SERVER['HTTP_REFERER']; header("location: $bl"); // přesměrujeme na index exit; }else{ $bl="index.php"; echo "<p class=data> <center>Špatně zadané údaje</center>"; print "<script>"; print " parent.location='$bl';"; // Comment this line if you don't want to redirect print "</script>" ; exit; } mysql_free_result($query); }else{ echo "Zde nic není."; } ob_end_flush(); ?> Tak našel jsem chybu v tomto if(isset($_POST['remember'])){ mělo by tam být if(isset($_POST['rememberMe'])){ Ale nevím jestli je to právě to co to může způsobovat. Tak to asi nebude tím, jakmile tu stránku na chvíli zavřu v prohlížeči tak mě to odhlásí. Prosím další nápady? |
||
Taps Profil |
#2 · Zasláno: 30. 12. 2012, 21:43:24
Michales:
viz http://pecan.cz/index.php?id=42&n=prace-s-cookies |
||
Časová prodleva: 11 let
|
0