Big session problem (login)
| From: | pag | Date: | Sun, 27 Apr 2003 21:55:02 +0000 |
| Subject: | Big session problem (login) | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-145437@lists.php.net to get a copy of this message | ||
The problem is i'm not logged in anymore when i click on a link on my page.
just when i visit the page it says: welcome , last login 01.01 - 01:00AM -
normally it should say welcome pag, last login 25.04 - 01:22AM
index.php:
check_uids();
if(isset($cookie_uid)) {
session_id($cookie_uid);
}
session_start();
setcookie('cookie_uid',session_id(),time()+999999, "/");
if(!$_SESSION['User']) {
$_SESSION['User'] = "User";
}
$uid = session_id();
if(check_uid($uid)) {
update_uid($uid);
}
else {
add_online($uid);
set_hits();
}
if(!($USER['id'] > '0')) {
if(isset($cookie_name) and isset($cookie_pass)) {
if($i=check_login($cookie_name, $cookie_pass)) {
$USER = get_user($i);
set_online($uid,$i);
}
else {
$USER =
array('id'=>'0','name'=>'anonym','level'=>'0');
}
}
else {
if(get_online($uid) == '0') {
$USER =
array('id'=>'0','name'=>'anonym','level'=>'0');
}
else {
$USER = get_user(get_online($uid));
}
}
}
case 'login':
if($params[1] == 'save') {
if($i=check_login($post_name, $post_pass)) {
$USER = get_user($i);
set_online($uid,$i);
setcookie('cookie_name',$post_name,time()+3600, "/");
setcookie('cookie_pass',$post_pass,time()+3600, "/");
$page = 'news.php';
$section = 'news';
}
else {
$page='nologin.php';
}
}
else {
$page='login.php';
}
break;
case 'logout':
setcookie('cookie_name','youarenotauthed',1);
setcookie('cookie_pass','youarenotauthed',1);
set_online($uid,0);
$user = get_user_sys($USER['id']);
$welcome = 'welcome ' . $user['name'] . ', last login ' .
date('d.m -
h:iA',time_sql_unix($user['lastlogin']));
session.php
<?
session_start();
$_SESSION['zaehler'] = lol;
$zaehler++;
echo $zaehler."<br>";
echo session_id()."<br>";
echo strlen(session_id())."<br>";
echo "<a href=\"session.php?".SID."\">weiter</a>";
?>
functions:
function check_login($name,$pass) {
global $sql_id;
$result = mysql_query("UPDATE rs_users SET lastlogin=NULL WHERE
name='$name' AND pass='".md5($pass)."'",$sql_id);
$result = mysql_query("SELECT id FROM rs_users WHERE name='$name' AND
pass='".md5($pass)."'",$sql_id);
$row = mysql_fetch_array($result);
return $row['id'];
}
function check_uid($uid) {
global $sql_id;
$result = mysql_query("SELECT id FROM rs_online WHERE
uid='$uid'",$sql_id);
if($row = mysql_fetch_array($result)) {
return true;
}
return false;
}
function check_uids() {
global $sql_id;
$time = time_unix_sql(time()-900);
$result = mysql_query("DELETE FROM rs_online WHERE
timeout<'$time'",$sql_id);
return true;
}
function update_uid($uid) {
global $sql_id;
$result = mysql_query("UPDATE rs_online SET timeout=NULL WHERE
uid='$uid'",$sql_id);
return $id;