我有这个PHP脚本,无法检测到会话变量是否存在。我一直在寻找堆栈溢出一段时间,我还没有找到任何解决我的问题。这里是代码:isset(SESSION ['user'])not working
<?php
session_start();
if(isset($_SESSION['user'])){
?>
<html>
<head>
</head>
<body>
it exists
</body>
</html>
<?php
}
else{
?>
<html>
<head>
</head>
<body>
nope
</body>
</html>
<?php
}
}
else{
?>
<html>
<head>
</head>
<body>
it doesn't
</body>
</html>
<?php
}
?>
这里是设置会话代码:
<?php
session_start();
$dsn = 'mysql:host=localhost;dbname=noterate';
$usernameForSQL = '*******';
$passwordForSQL = '*********';
$db = new PDO($dsn, $usernameForSQL, $passwordForSQL);
function checkLogin($usrn, $pswd, $database){
$query = "SELECT * FROM accounts WHERE username='$usrn' and userpassword='$pswd'";
$statement = $database->prepare($query);
$statement->execute();
if($statement->rowcount() > 0){
return true;
}
else{
return false;
}
}
if(isset($_POST['username']) && isset($_POST['password'])){
$username = $_POST['username'];
$password = $_POST['password'];
if(checkLogin($username, $password, $db, 'accounts')){
$_SESSION['user'] = $username;
?>
SQL注入警报。如果你是PHP的新手,那么现在就学习使用MySQLi或PDO和预先准备好的语句/绑定变量,然后再用旧的,不推荐使用的MySQL接口学习太多的不良习惯 – 2014-10-19 22:18:35
可能是'if(checkLogin($ username,$ password ,$ db,'accounts'))'永远不会满足? – Cheery 2014-10-19 22:18:44
你的脚本甚至没有解析,有''''比'{'s'更多。 – jeroen 2014-10-19 22:19:34