问题描述
||
我必须根据用户名和日期将其重定向到网页。如果他的名字不匹配或他的ID已经过期,我需要将他发送到其他页面。如果他通过了这两个条件,我需要将他重定向到一个网页,例如。 www.google.com
$name_value=$_GET[\'query\'];
$fh = fopen(\'db.csv\',\'r\');
$Now = date();
$data=fgetcsv($fh);
$name=$data[0];
$date=$data[1];
$url=$data[2];
if($name_value == $name)
{
if($date==$Now)
{
header(\"Location:\".$data[2]);
}
}
else
{
echo(\"not successful\");
}
exit;
这是CSV文件的内容
merch,26.06.2011,http://www.google.com
我的问题是页眉没有重定向到网页。任何帮助将不胜感激。
解决方法
date(),不带任何参数,在我的服务器上生成:
Warning: date() expects at least 1 parameter,0 given in test.php on line 1
我建议您出于测试目的而打开错误报告:
error_reporting(E_ALL|E_STRICT);
ini_set(\"display_errors\",\"On\");
要匹配CSV文件中的格式,您需要:
$now = date(\"d.m.Y\");
, 首先,您的警告是否打开?这不应默默地失败。
其次,您可能指的是date(\"m.d.Y\");
,而不是date();
。
, 这样做的肮脏方法是使用元刷新来重定向到所需的站点(但不要打败我:D)。
也:
if($name_value == $name && $date==$now)
您不需要使用两个if语句。将两个条件与逻辑“ 8”绑定。
, 在将其他任何内容发送给用户之前,必须指定标题位置。否则,标题将不会重定向。
, 您不带任何参数调用date()
,这意味着ѭ10to设置为false
,并且将仅匹配$now
的值,这些值也被认为是错误的。
返回格式化的日期字符串。如果一个
非数字值用于
时间戳,则返回FALSE,
发出E_WARNING级错误。
资源
, 您在此csv文件中列出了多个用户吗? fgetcsv()一次只能读取一行,因此对于多个用户,您必须使用循环才能首先找到该用户所在的行,然后检查过期日期。
对于多个用户,您需要执行以下操作:
$fh = fopen(\'db.csv\',\'rb\');
while(list($name,$date,$url) = fgetcsv($fh)) {
if (($name === $name_value) && ($date === $now))
header(\"Location: $url\");
exit();
}
}
echo \"not successful\";