我有一个带PDO的登录系统,它存储用户登录cookie时的用户名.这意味着当它们到达重定向页面时,cookie可用于获取该用户的更多数据(例如,名字和名字).
这是在index.php文件中设置cookie的代码:
setcookie('username',$username,time() + (86400 * 7));
这是我想使用cookie的值获取数据的代码:
$username = $_COOKIE['username'];
$query = $handler->query('SELECT * FROM users WHERE username ='$username' ');
while($r = $query->fetch(PDO::FETCH_OBJ)){
echo $r->firstname, '<br>';
echo $r->secondname, '<br>';
}
Run Code Online (Sandbox Code Playgroud)
每次运行代码时,都会返回以下错误消息:
解析错误:语法错误,第17行的C:\ xampp\htdocs\web\home.php中的意外'$ username'(T_VARIABLE)
更改:
('SELECT * FROM users WHERE username ='$username' ')
Run Code Online (Sandbox Code Playgroud)
至:
("SELECT * FROM users WHERE username ='$username' ")
Run Code Online (Sandbox Code Playgroud)
这解释了语法错误.
编辑以增加安全性:
$username = $_COOKIE['username'];
$query = $handler->prepare(" SELECT * FROM users WHERE username =:username");
$query->execute(array(
':username' => $username
));
while($r = $query->fetch(PDO::FETCH_OBJ)){
echo $r->firstname, '<br>';
echo $r->secondname, '<br>';
Run Code Online (Sandbox Code Playgroud)