Autor Zpráva
zdenek26
Profil *
Zdravim, potreboval bych poradit kde delam chybu kdyz chci docilit toho aby si cookie pamatovala urcenou dobu existene prihlaseneho uzivatele kdyz vytne okna prohlizece, cookie se odesle ale po uzavreni prohlizece musim znovu odeslat prihlasovaci formular, potrebuju aby si prihlaseneho uzivatele cookie pamatovala jen pokud si odskrtne automaticke prihlasovani.

muj zdrojak vypada takto:

function CheckLogin(){
if (isset($_SESSION['login']) &&
isset($_COOKIE['remember'])): return true;

else: return false; endif;
}

function LoginProces(){
dbconnect();
if (isset($_POST['submit'])):
if (!empty($_POST['jmeno']) && (!empty($_POST['heslo']))):

$jmeno = htmlspecialchars($_POST['jmeno']);
$heslo = md5(htmlspecialchars($_POST['heslo']));

$query = mysql_query("SELECT * FROM login WHERE jmeno='$jmeno' and heslo='$heslo'");
$count = mysql_fetch_array($query);

if (mysql_num_rows($query) == 1):

session_start();
session_register('login');
session_register('heslo');

$_SESSION['login'] = $count['jmeno'];
$_SESSION['heslo'] = $count['heslo'];

if ($_POST['remember'] == 'on'):
setcookie("remember", $_SESSION['login'] . ".SEPARATOR." . $_SESSION['heslo'], time()+3600, "/"); endif;

header ('Location: index.php');

else: $login_error = '<div class"error">'.l('login_error').'</div>'; endif;
else: $empty_login = '<div class"error">'.l('empty_login').'</div>'; endif; endif;

$login = checklogin();

if ($login):
echo l('is_login') .$_SESSION['login'];
echo '<a href="?id=logout">'.l('logout').'</a>';

else: if (isset($login_error) or isset($empty_login)):
echo $login_error; echo $empty_login; endif;
echo '<form method="post" action="'.$_SERVER["PHP_SELF"].'">';
echo '<p><label for="jmeno">'.l('name').'</label>:<br />';
echo '<input type="text" name="jmeno" id="jmeno" /></p>';
echo '<p><label for="heslo">'.l('password').'</label>:<br />';
echo '<input type="password" name="heslo" id="heslo" /></p>';
echo '<input type="submit" name="submit" id="submit" value="'.l('login').'" />';
echo '<p><input type="checkbox" name="remember" id="remember" />';
echo '<label for="remember">'.l('remember_me').'</label></p>';
echo '</form>'; endif;
}

function LogOut(){
session_start();
session_unset();
session_destroy();
setcookie('remember', '', time()-3600);
header ('Location: index.php');
}
djlj
Profil
cookie se odesle ale po uzavreni prohlizece musim znovu odeslat prihlasovaci formular
Možná to tak máš nastavené v prohlížeči.
zdenek26
Profil *
pouzivam firefox a nemam tam nic zakazany, zkousel jsem vice moznosti u funkce CheckLogin(); kde se mi povedlo udrzet prihlaseni po vypnuti prihlizece ale problem byl zase v tom ze kdyz jsem odeslal formular tak mi tam porad zustal a po aktualizaci stranky jsem byl uz teda prihlaseny i kdyz jsem vypnul vsechny okna prohlizece, nekde mi zrejme neco chyby u te zminene funkci.
zdenek26
Profil *
tak jsem si to uz opravil sam, pokud nekdo odskrtne autologin a ma povoleny cooke bude si ho to pamatovat na urcenou dobu ktera je nastavena v setcookie, jinak bude prihlasen jen do konce relace.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0