2012-03-30 3 views
0

Я использую функцию заголовка 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"); 
    } 
+0

Вы уверены, что 'if' условие оценивает значение 'true'? Возможно, что они этого не делают, и функция 'header()' никогда не вызвана. – NullUserException

+1

PS: Не обижайтесь, но код выглядит ** очень ** дилетантским. Это означает, что вы делаете что-то неправильно, например, не хешируете пароли или не избегаете ввода пользователем. – NullUserException

+0

отлаживать оператор if. $ ConEmail не пуст? если вы подставляете заголовок (..) в инструкцию печати, видите ли вы результат вывода печати? – Daxcode

ответ

0

Удостоверьтесь, что если утверждение является истинным. Поместите echo "Testing host=".$host; перед оператором заголовка и посмотрите, выполняется ли он. Если это так, убедитесь, что вы правильно установили значение $host.

Если вы все еще в недоумении, убедитесь, что сервер не делает некоторые фанки вещи, так что поставить это в верхней части страницы:

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

Ты Перенаправление линия должна иметь " Расположение "с верхним регистром" L " header (" Местоположение: http: // ". $ Host." Member.php ");

поскольку официальная спецификация не имеет заголовка «местоположение», а «местоположение».

способ, которым у вас есть, будет без каких-либо предупреждений.

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

расположение Поле заголовка отклика используется для перенаправления получателя в месте, отличном от Request-URI для завершения запроса или идентификации нового ресурса. Для ответов 201 (Создано) это местоположение нового ресурса, созданного запросом. Для ответов 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. 
+0

Это не обязательно так, должно работать нормально с нижним регистром. LOW –

+1

Зачем отрицать этот ответ? Это всегда хорошая идея следовать рекомендациям W3 или RFC, поскольку они соответствуют стандартам Интернета. –

0

Попробуйте поместить пробел после 'место:' так

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

становится

header("location: http://".$host."member.php"); 
Смежные вопросы