PHP查询的Session_ID在数据库中

PHP查询的Session_ID在数据库中

问题描述:

我一直在试图找到我的网站上的会话ID,所以我可以用它来查询我的MySQL数据库,但我不断收到错误“未定义的变量:在_SESSION ......”PHP查询的Session_ID在数据库中

这里是我的代码:

if (mysql_num_rows(mysql_query("SELECT * FROM users WHERE _id = " . $_SESSION['_id_of_user']))) 

而且这里是我定义我的会话ID:

$qry = "Select name, email, username, _id from $this->tablename where username='$username' and password='$pwdmd5' and confirmcode='y'"; 

$result = mysql_query($qry,$this->connection); 

if(!$result || mysql_num_rows($result) <= 0) 
{ 
    $this->HandleError("Error logging in. The username or password does not match"); 
    return false; 
} 

$row = mysql_fetch_assoc($result); 

$_SESSION['name_of_user']  = $row['name']; 
$_SESSION['email_of_user'] = $row['email']; 
$_SESSION['username_of_user'] = $row['username']; 
$_SESSION['_id_of_user']  = $row['_id']; 

您必须登录你的SQL查询之前,室温会话: http://us.php.net/manual/en/function.session-start.php

session_start(); 

那么你应该获取当前会话ID与此: http://us.php.net/manual/en/function.session-id.php

$current_session_id = session_id(); 
+0

然后,如果你想使用一个数据库来存储会话,阅读这里给出的示例/类:http://us.php.net/manual/en/function.session-set-save-handler.php – djot 2012-02-14 15:38:10

你试图写它之前做session_start()? 也可以尝试把

var_dump("<PRE>", $_SESSION); 

你attemptd从中读取看到这里居然什么了。 所以你会:

session_start(); 
$_SESSION['name_of_user']  = $row['name']; 
$_SESSION['email_of_user'] = $row['email']; 
$_SESSION['username_of_user'] = $row['username']; 
$_SESSION['_id_of_user']  = $row['_id']; 

和:

var_dump("<PRE>", $_SESSION); 
$qry = "Select name, email, username, _id from $this->tablename where username='$username' and password='$pwdmd5' and confirmcode='y'"; 

此外,我想知道,如果你能做到这一点用$这个 - >表名:

$qry = "Select name, email, username, _id from $this->tablename where username='$username' and password='$pwdmd5' and confirmcode='y'"; 

尝试:

$qry = "Select name, email, username, _id from ".$this->tablename." where username='$username' and password='$pwdmd5' and confirmcode='y'";