标头功能出错

时间:2012-03-30 20:20:35

标签: php

我正在使用php头函数进行重定向,但它无法正常工作。我正在使用以下代码。

  $sql=mysql_query("select * from password where username='$email' and password1 = '$pwd'");
  //echo "selct * from password where username='$email' and password = '$pwd'";
  $row=mysql_fetch_row($sql);
  $fieldset=mysql_num_rows($sql);
  $host=$_SERVER['HTTP_HOST']."/beta/";
  if($fieldset>0 && $conEmail !="")
   {
     $_SESSION['email']=$email;
     $_SESSION['Email']=$email;
     $_SESSION['memberID']=$id;
     $_SESSION['status']='Admin'; 
     header("location:http://".$host."member.php");
   } 

3 个答案:

答案 0 :(得分:0)

确保if语句的评估为true。在header语句之前放置echo "Testing host=".$host;并查看它是否执行。如果是这样,请确保正确设置$host的值。

如果您仍处于亏损状态,请确保服务器没有做一些时髦的事情,所以请将其放在页面顶部:

header( "Location: http://www.stackoverflow.com" );

答案 1 :(得分:0)

您的重定向行需要具有大写“L”的“位置” 标题( “位置:http://”。$主机 “member.php”);

因为官方规范没有“location”标题,而是“Location”。

你的方式会在没有任何警告的情况下失败。

自: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html

Location response-header字段用于将收件人重定向到Request-URI以外的位置,以完成请求或标识新资源。对于201(已创建)响应,Location是请求创建的新资源的位置。对于3xx响应,位置应该应该指示服务器自动重定向到资源的首选URI。字段值由单个绝对URI组成。

   Location       = "Location" ":" absoluteURI

一个例子是:

   Location: http://www.w3.org/pub/WWW/People.html
  Note: The Content-Location header field (section 14.14) differs
  from Location in that the Content-Location identifies the original
  location of the entity enclosed in the request. It is therefore
  possible for a response to contain header fields for both Location
  and Content-Location. Also see section 13.10 for cache
  requirements of some methods.

答案 2 :(得分:0)

尝试在'location:'后面加一个空格

header("location:http://".$host."member.php");

变为

header("location: http://".$host."member.php");