如果用户($ uid)在过去一小时内提交了一个条目,则下面的代码应该将用户重定向到索引文件。它不起作用。
知道为什么不呢?
提前致谢,
约翰
$queryuidcount = "select loginid from submission where datesubmitted > (NOW() - INTERVAL 1 hours) AND loginid = '$uid'";
$uidresult = mysql_query($queryuidcount);
if (mysql_num_rows($uidresult) >= 1)
{
session_write_close();
header("Location:http://www.domain.com/sample/index.php");
exit;
}
答案 0 :(得分:4)
首先,Location:
和http://someurl
之间应该有一个空格,否则它不是正确形成的HTTP标头(某些浏览器可以应对,有些会阻塞它):
Location: http://someurl
其次,您是否收到“已发送标头”警告?这意味着您已经在此行之前开始输出(例如文件开头的空格,UTF BOM标记等)
答案 1 :(得分:2)
您似乎忘记将session_start()
放在脚本之上,因为您正在使用下面的sessio相关功能。此外,无需指定整个域路径,只需文件名即可:
header("Location: index.php");
如果有任何错误,您可以通过将这些行放在脚本之上来了解它:
ini_set('display_errors', true);
error_reporting(E_ALL);
还要确保返回一些记录:
if (mysql_num_rows($uidresult) >= 1)
{
exit('found rows !!');
}
答案 2 :(得分:0)
代码是否甚至到达if语句中的代码?试试吧
var_dump("foo");
在那里,因为我认为标题看起来不错。
可能是出口;虽然干扰了重定向。
祝你好运!
答案 3 :(得分:0)
SQL代码似乎不正确。改为将小时改为小时。
(NOW() - INTERVAL 1 hour)
也许您可以使用TIMEDIFF吗?
mysql> select TIMEDIFF('2010-07-07 09:38:28',NOW());
+---------------------------------------+
| TIMEDIFF('2010-07-07 09:38:28',NOW()) |
+---------------------------------------+
| -01:03:38 |
+---------------------------------------+
1 row in set (0.00 sec)