Php 检查会话的密码

Php 检查会话的密码,php,Php,我试图将POST请求的一个变量存储到会话中,因此我不需要每次单击页面上的某个位置时都发出POST请求。 我得到以下错误: 未定义索引:第8、10、12行的密码 即使密码是正确的,也表示密码无效。 这是我的密码 session_start(); //error_reporting(0); //@ini_set('display_errors', 0); /* Checking for login */ if (!$_POST['pw'] == "") { $_SESSION['password'

我试图将POST请求的一个变量存储到会话中,因此我不需要每次单击页面上的某个位置时都发出POST请求。 我得到以下错误: 未定义索引:第8、10、12行的密码 即使密码是正确的,也表示密码无效。 这是我的密码

session_start();
//error_reporting(0);
//@ini_set('display_errors', 0);
/* 
Checking for login
*/
if (!$_POST['pw'] == "") {
$_SESSION['password'] = $_POST['pw'];
}
$pass = $_SESSION['password'];
$configpassword = "a random password";
$sessionpass = $_SESSION['password'];
if (!$pass == $configpassword) {
    echo "<title>ACCESS DENIED !</title><h2>ACCESS DENIED !</h2>";
    echo "<script>setTimeout(\"location.href = 'login.php';\",1500);</script>";
    session_destroy();
    die();
}
session_start();
//错误报告(0);
//@ini_集('显示错误',0);
/* 
检查登录名
*/
如果(!$\u POST['pw']==“”){
$_SESSION['password']=$_POST['pw'];
}
$pass=$\会话['password'];
$configpassword=“随机密码”;
$sessionpass=$\会话['password'];
如果(!$pass==$configpassword){
回显“拒绝访问!拒绝访问!”;
echo“setTimeout(\”location.href='login.php';\”,1500);”;
会话_destroy();
模具();
}

您的条件语句存在运算符优先级问题

if(!$\u POST['pw']==”)

这将评估
(!$\u POST['pw'])
是否等于
,后者将首先将
$\u POST['pw']
转换为布尔值,然后对其求反,然后将其与
的布尔值进行比较(该值为false)。这将使您的条件执行与您想要的相反的操作:
$_POST['pw']==“只有当
$\u POST['pw']
等于
(或任何其他假值,如
“0”
)时,POST['pw']==“才为真

如果(!$pass==$configpassword)

尝试将这些更改为:

if($\u POST['pw']!=”)


如果($pass!=$configpassword)

我们可以看到您的HTML,特别是密码字段吗?