PHP cookie правильный способ перенаправления? - PullRequest
0 голосов
/ 26 марта 2012

поэтому я сделал простой вход пользователя на веб-сайт, и я хочу установить cookie-файл, чтобы при возвращении на веб-сайт он передавал их в личный кабинет, а не на главную страницу, вроде «запомнить». me "функция, которая перенаправляет пользователей в область участников, если установлен cookie.

Проблема, с которой я сталкиваюсь: код php прямо перед HTML-кодом не перенаправляет на страницу member.php, даже если файл cookie установлен!

Примечание: я просто использую части кода, а не весь код / ​​другие файлы, чтобы упростить вопрос.

вот мой код:

main.php (это главная страница, а также форма входа в систему, но форма входа не отображается)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<?php 
     //Checks if there is a login cookie
     if(isset($_COOKIE["blablabla"]))  //if cookie is set
     {  
        header("Location: www.website.com/member.php"); //redirect to member.php
     }
    else
    {
        //otherwise, redirect to nocookiefound.php
        header("Location: www.website.com/nocookiefound.php"); 
    }
?>
<html>
    <body>
        <?php
            echo "Welcome " . $_COOKIE["blablabla"] . "!<br />";
            //I ran a echo test to see if cookie is still there, and it is.
        ?>
    </body>
</html>

Итак, мой вопрос, может ли мой редирект работать так, как он есть?

Я, должно быть, что-то делаю не так, потому что он не перенаправляет на member.php, даже если cookie отображает правильное значение.

Итак, если я изначально был на странице members.php после того, как я вошел в систему, затем вернитесь к main.php, он ДОЛЖЕН перенаправить меня на members.php, но это не так, он просто остается на main.php , Кто-нибудь знает, что происходит? Я был бы признателен за любую помощь, которую я могу получить. Спасибо

Ответы [ 3 ]

1 голос
/ 26 марта 2012

PHP-код должен быть первым на странице, так как вы отправляете перенаправление «Заголовок».Переместите его до объявления Doctype.

0 голосов
/ 26 марта 2012

В дополнение к другим ответам поставьте exit ();после строки заголовка.Можно написать сценарий, который игнорирует заголовки, следовательно, запускает другой код непреднамеренно.

Люди часто используют заголовки для защиты областей администратора, не осознавая этого.

0 голосов
/ 26 марта 2012

Как и то, что говорит @Dogbert, ваше перенаправление недействительно.Попробуйте:

header("Location: http://www.website.com/member.php");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...