令人讨厌的是,我的登录检查脚本没有重定向到我告诉它的位置。 我知道它正确地击中了if语句,因为我放入了回声来检查它。 在第一种情况下,它是公然地跳过标题,它回应“ - 空白”,因为它应该“它甚至走得这么远?”
所以在这个基础上,我知道它击中了标题 - 它只是忽略了它,我不能为我的生活理解为什么。
我确定它很简单,我错过了一些非常明显的东西,但我无法看到它。 有什么建议吗?
// makes sure they filled it in
if($_POST['frmLogin-username'] == "" || $_POST['frmLogin-password'] == ""){
echo " - blanks";
header('Location: ?page=landing&action=login&message=1');
echo "Did it even get this far?";
die;
}
else{
// checks it against the database
$query = mysql_query("SELECT * FROM shops WHERE shopUsername = '".$_POST['frmLogin-username']."'");
//Gives error if user dosen't exist
$count = mysql_num_rows($query);
if ($count == "0"){
echo " - no user";
header('Location: ?page=landing&action=login&message=2');
die;
}
else{
while($row = mysql_fetch_array( $query )){
//gives error if the password is wrong
if ($_POST['frmLogin-password'] != $row['shopPassword']){
echo " - wrong pass";
header('Location: ?page=landing&action=login&message=3');
die;
}
else{
// if login is ok then we add a cookie
$hour = time() + 3600;
setcookie(shopusername, $_POST['frmLogin-username'], $hour);
setcookie(shopid, $row['shopId'], $hour);
//then redirect them to the shop panel
header("Location: ?page=shop");
die;
}
}
}
}
编辑:问题与我通过调用包含我正在调查的包含在index.php中加载所有页面的方式有关 我已将此流程页面移动到其自己的php文件,现在它可以正常工作
答案 0 :(得分:2)
首先:在使用echo
输出任何内容后,你不能像Sam在评论中所说的那样发送标题。
其次,要发送重定向,Location:
之后的网址必须是绝对的,例如http://localhost/page/to/redirect/to.php
。
修改强>
Corbin实际上打了我大约10秒的答案; - )
答案 1 :(得分:2)
问题与我在index.php中加载所有页面的方式有关,通过调用我现在正在研究的包括我将这个进程页面移动到它自己的php文件,它现在工作正常
答案 2 :(得分:1)
您可以在PHP中使用window.location
,只需echo
。