php密码系统给出了错误

时间:2014-02-14 09:36:32

标签: php

我正在练习一些php,我正在创建这个密码系统。 我的代码不起作用。有没有人注意到错误? 我认为这只是一个愚蠢的错误,但我似乎无法找到它。

<?php
$passwords = array("name1"   =>"pass1", 
                   "name2"   =>"pass2");

if ($password = $passwords[$username]){
setcookie("username", $username, time()+1200);
echo "<H2>Access granted.</H2>";
}
else{
    setcookie("username", "", time()-3600);
    echo "<H2>Invalid user name or password: access denied.</H2>";
}
?>

谢谢大家! 我的愚蠢错误是我使用=而不是==检查$ password是否等于$ passwords [$ username]

6 个答案:

答案 0 :(得分:3)

<?php
$passwords = array("name1"   =>"pass1","name2"   =>"pass2");
if ($password == $passwords[$username]){
 setcookie("username", $username, time()+1200);
 echo "<H2>Access granted.</H2>";
}
else{
    setcookie("username", "", time()-3600);
    echo "<H2>Invalid user name or password: access denied.</H2>";
}
?>

你忘了=在这一行:

  if ($password == $passwords[$username]){

如果使用此'=',则定义此变量。但'=='它检查变量!

答案 1 :(得分:2)

您正在执行作业,而不是在if声明中进行比较。

应该像

if ($password == $passwords[$username]){

请注意==而不是=

答案 2 :(得分:0)

使用Double equal进行比较。如果你给单个等于它,它只会将右侧变量赋给左侧变量,那么,赋值将始终返回true

if ($password == $passwords[$username]){

答案 3 :(得分:0)

使用如下:

if ($password == $passwords[$username]){
//code
}

答案 4 :(得分:0)

您正在使用赋值运算符(=)而不是相等运算符(==)。替换为

if ($password == $passwords[$username])

答案 5 :(得分:0)

喜欢这个

if ($password == $passwords[$username])

在if语句中使用==而不是=。