我正在练习一些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]
答案 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语句中使用==而不是=。