我有一个PHP代码,如果他们获得正确的用户名和密码,则会将人们重定向到新页面。我使用了一个具有头位置功能的switch语句。问题是标题是针对两种情况执行的,也是默认关键字。我只想要为正确的用户名和密码之一执行标题
<?php
switch($_POST["username"] + "|" + $_POST["password"]) {
case"un1"|"pw1":
header("Location:http://MyFavWebsite.php");
break;
case"un2"|"pw2":
echo "hello";
break;
default:
echo "Go Away";
}
?>
我想知道这是否可以解决,我将非常感谢您解决此问题的任何帮助。
答案 0 :(得分:2)
case"un1"|"pw1":
因为这不是字符串的正确格式,它会破坏您的开关结构
case "un1|pw1":
时。
哦有人可能会问。 |
是一个按位OR
运算符,第一种情况的结果是TRUE
,这就是你总是得到重定向的原因。
答案 1 :(得分:1)
标头没有问题,但您的开关语法错误,请将两个参数用作一个条件 即
<?php
switch($_POST["username"].$_POST["password"]) {
case"un1pw1":
header("Location:http://MyFavWebsite.php");
break;
case"un2pw2":
echo "hello";
break;
default:
echo "Go Away";
}
//e.g
$un='un1';
$pass='pw1';
switch($un.$pass) {
case"un1pw1":
header("Location:http://MyFavWebsite.php");
break;
case"un2pw2":
echo "hello";
break;
default:
echo "Go Away";
}
?>
答案 2 :(得分:0)
尝试将案例“un1”|“pw1”更改为案例“un1 | pw1”