PHP-запрос Session_ID внутри базы данных - PullRequest
0 голосов
/ 14 февраля 2012

Я пытался найти идентификатор сеанса на своем сайте, чтобы я мог использовать его для запроса к моей базе данных MySQL, но я получаю сообщение об ошибке «Неопределенная переменная: _SESSION in ...»

Вот мойкод:

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

И вот где я определил свой идентификатор сессии:

$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'];

Ответы [ 2 ]

2 голосов
/ 14 февраля 2012

Вы должны начать сеанс до того, как ваш sql-запрос: http://us.php.net/manual/en/function.session-start.php

session_start();

Затем вы должны получить текущий идентификатор сеанса с этим: http://us.php.net/manual/en/function.session-id.php

$current_session_id = session_id();
1 голос
/ 14 февраля 2012

Вы делаете session_start(), прежде чем пытаться писать в него? Также попробуйте поставить

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

прежде чем вы попытаетесь прочитать из него, чтобы увидеть, что на самом деле там. Таким образом, вы должны иметь:

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'";

Также мне интересно, можете ли вы сделать это с помощью $ this-> tablename:

$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'";
...