【发布时间】:2016-10-15 05:16:36
【问题描述】:
我的脚本是如何工作的:
- index.php 获取文件将其发送到 jscript 进行分析,然后将其发送到应该是会话的 upload.php。
但会话为空。 如果我去 upload.php 并打印变量,它会显示我的用户号 2(有效)
require_once("user/upload_session.php");
if (!isset($_SESSION)) { session_start();}
登录创建会话:
public function doLogin($uname,$umail,$upass)
{
try
{
$stmt = $this->conn->prepare("SELECT id, user_name, email, pass FROM accounts WHERE user_name=:uname OR email=:umail ");
$stmt->execute(array(':uname'=>$uname, ':umail'=>$umail));
$userRow=$stmt->fetch(PDO::FETCH_ASSOC);
if($stmt->rowCount() == 1)
{
if(password_verify($upass, $userRow['pass']))
{
$_SESSION['user_session'] = $userRow['id'];
$thatsmysession = $_SESSION['user_session'];
return true;
}
else
{
return false;
}
}
}
catch(PDOException $e)
{
echo $e->getMessage();
}
}
我正在使用这个:
if (empty($thatsmysession)) {
// Query if user is NOT logged in
$q = $db->prepare('INSERT INTO files (hash, originalname, filename, size, date, ' .
'expire, delid, ip) VALUES (:hash, :orig, :name, :size, :date, ' .
':exp, :del, :ip)');
} else {
// Query if user is logged in (insert user id together with other data)
$q = $db->prepare('INSERT INTO files (hash, originalname, filename, size, date, ' .
'expire, delid, user, ip) VALUES (:hash, :orig, :name, :size, ' .
':date, :expires, :delid, :user, :ip)');
$q->bindValue(':user', $thatsmysession, PDO::PARAM_INT);
}
只有在$q->bindValue(':user', $thatsmysession, PDO::PARAM_INT); 的会话是null 但如果我回显以测试变量是否正确,它可以工作
【问题讨论】: