我正在尝试检查用户是否尚未登录cart.php,是否没有将其重定向到login.php。
这不起作用,因此我尝试将其放在elseif语句中。如果它们已登录并在购物车页面上,请将其重定向到购物车页面,如果没有将其重定向到登录页面。
从某种意义上说,它可以重定向,但如果我登录,它仍会重定向到login.php。
我也不知道为什么所有的JS警报都不起作用。
if (isset($_SESSION['username'])){
header("Location: http://localhost/techiteasy/cart.php");
}
else if (!isset($_SESSION['username'])){
header("Location: http://localhost/techiteasy/login.php");
echo '<script language="javascript">';
echo 'alert("Please Login/Register")';
echo '</script>';
}
答案 0 :(得分:0)
您可以像下面这样简单地使用。无需再次检查阴性条件。只需使用if-else。
if (isset($_SESSION['username'])){
header("Location: http://localhost/techiteasy/cart.php");
}
else{
header("Location: http://localhost/techiteasy/login.php");
echo '<script language="javascript">';
echo 'alert("Please Login/Register")';
echo '</script>';
}
答案 1 :(得分:0)
重定向后,您将无法添加更多代码,新页面将被调用,新页面的脚本将运行。
您需要从一页转移到另一页。
通常,我使用时间较短(2-5秒)的cookie,新页面将调用检查cookie是否已设置,是否显示警报并取消设置cookie的功能。
在代码中,您可以看到我只在脚本触发标头位置时放置了if语句(不包含else或else if),导致下一个代码无法运行,并且将加载新页面。
if (!isset($_SESSION['username'])){
setcookie('notlogged', true, time() + 3;)
header("Location: http://localhost/techiteasy/login.php");
}
header("Location: http://localhost/techiteasy/cart.php");
在login.php中
if (isset($_COOKIE['notlogged']) && $_COOKIE['notlogged'] == true){
echo '<script language="javascript">';
echo 'alert("Please Login/Register")';
echo '</script>';
unset($_COOKIE['notlogged']);
}
尝试这个;)
您也不能设置过期时间,这只是为了避免错误,但每次都提醒您取消设置时间,否则,用户只有在未从购物车中通过的情况下登录才会显示警报。
答案 2 :(得分:-1)
在PHP5上尝试
if(isset($_SESSION['username'])){ header("Location: http://localhost/techiteasy/cart.php");
}
else{
if(!isset($_SESSION['username'])){
echo '<script>alert("Login with vaild user and pass");</script>';
header("Location: http://localhost/techiteasy/login.php");
exit;
}}
对于PHP7
if(isset($_SESSION['username'])){ header("Location: http://localhost/techiteasy/cart.php, true, 301");
}
else{
if(!isset($_SESSION['username'])){
echo '<script>alert("Login with vaild user and pass");</script>';
header("Location: http://localhost/techiteasy/login.php, true, 301");
exit;
}}