PHP: strefaphp.net
PHP: strefaphp.net



 
Czy odwiedziłeś już te strony? -
dodał: Vengeance

Temat: logowanie
Autor
Data: 12-06-2006 23:25
kowal

dołączył:
12-06-2006 
Witam, mam formularz, wyswietlany funkcją admin_panel:

echo '
<form action="'.$_SERVER['PHP_SELF'].'" method="post" enctype="multipart/form-data" name="admin_login" target="_self">
<input type="hidden" name="login_attempt" value="y">
<table width="700" border="0" cellspacing="0" cellpadding="2">
<tr><td colspan="2" align="center"><font style="font-size: 20px; font-weight: bold;">'.$cfg['title'].'<br /></font></td></tr>
<tr><td colspan="2" align="center"><font style="font-size: 16px; font-weight: bold;">Panel administracyjny<br />&nbsp;</font></td></tr>
<tr>
<td width="42%" align="right">Login:</td>
<td width="58%" align="left"><input name="login" type="text" maxlength="30" value=""></td>
</tr>
<tr>
<td width="42%" align="right">Hasło:</td>
<td width="58%" align="left"><input name="pass" type="password" maxlength="30" value=""></td>
</tr>
<tr><td colspan="2" align="center"><br />&nbsp;<input name="log_me_in" type="submit" value="Zaloguj mnie"></td></tr>
</table>
</form>';
}

za jego pomocą przeprowadzam logowanie. Tak wygląda plik, który wywołuje funkcję z formularzem:
--------------------------------------
<?
if(!isset($_SESSION['sid'])){
session_start();
$_SESSION['sid']=session_id();
}
?>

<!DOCTYPE HTML PUBLIC "-//W3C//Dtd HTML 4.0 transitional//EN">
<html>
<head>
<title><? require('./common_admin.php'); echo $cfg['title']; ?></title>
<meta http-equiv=content-type content="text/html; charset=iso-8859-2">
<link href="includes/style.css" type=text/css rel=stylesheet>
<script language=javascript1.2 type="text/javascript" src="includes/script.js"></script>

</head>
<body>
<table width="100%" height="100%" align="center" border="0" cellpadding="0" cellspacing="0">
<tr>
<td align="center" background="<?php echo $cfg['images_path'].'logo.gif'; ?>" style="background-repeat:repeat-y;background-position:center;">
<?
$logged_in=login();

if($logged_in==0 && !isset($_POST['login_attempt'])) admin_login_panel();
elseif($logged_in==0 && isset($_POST['login_attempt'])){
admin_login_panel();
echo '<font style="color: #ff0000; font-size: 12px; font-weight: bold;">Podano błędny Login lub Hasło!</font>';
}
elseif($logged_in==-1){echo '<font style="color: #ff0000; font-size: 12px; font-weight: bold;">Sesja straciła ważno&#182;ć. Zaloguj się ponownie!</font><br /><br />'.$cfg['slash'].'<strong><a href="'.$_SERVER['PHP_SELF'].'">Powrót do strony logowania.</a><strong>'.$cfg['backslash']; admin_login_panel();}
else echo '<br />zalogowany';
?>
</td>
<tr>
</table>
</html>
--------------------------------------
Wylogowuję się za pomocą funkcji:

function logout($sid){
if(isset($_COOKIE["user_data"]))
setcookie("user_data", "",time()-3600*24*365);

query('delete from tmpsession where t_sid="'.$sid.'"');
session_unset();
session_destroy();
$_SESSION=array();
unset($_SESSION);
unset($_POST);
}

Mam problem polegający na tym, że jak wyloguję się, a następnie odświeżę stronę, wartości z ttablicy POST są przesyłane znowu i sesja znowu jest ważna, ma to samo id i jestem zalogowany.

Czym to może być spowodowane??
Jeżeli napisałem niejasno, lub dostarczyłem zbyt mało informacji, powiedzcie co mam jeszcze wkleic.

Z góry dzięki za pomoc. 
Cytuj   Profil Email 

 

Polecamy
PHP: strefaphp.net
wyślij email informacje forum download skrypty katalog kursy porady artykuły home współpraca reklama kontakt