Проблемы с установкой и чтением Cookie, PHP - PullRequest
0 голосов
/ 06 января 2011

Привет,

Ходил кругами, пытаясь понять, почему это не сработает.Создание системы входа с низким уровнем безопасности с использованием файлов cookie из-за проблемы с сеансами на используемом устройстве.Набор cookie работает сам по себе, но либо неправильно настроен в этом скрипте, либо неправильно читается в скрипте аутентификации.Кроме того, после того, как файл cookie должен быть установлен, его нет в браузере.Идеи ??

Логин

   <?php
    //If passwords match, a cookie is created
    if ($pw = $hashedpw) {
         $memberID = "1221"; //Pulled from DB
         setcookie('MDADMIN_SESS_ID',$memberID,'0','', '.somewhere.com');
        header('Location: http://somewhere.com/secure_page.php');
    }
    ?>

Auth

<?php
//Verify that cookie is present
$cookie = $_COOKIE['MDADMIN_SESS_ID'];
if(!isset($cookie)) {
        header("Location: http://somewhere.com/failed.php");
        exit();
}
?>

Процесс выглядит следующим образом: Форма входа -> Login Script -> Secure Page (если пароли совпадают) -> Auth Script проверен (через include) -> перенаправить на неудачный вход в систему, если cookie отсутствует.При запуске всегда используется файл cookie, который отсутствует, хотя скрипт входа в систему правильно указывает на защищенную страницу (успешно вошел в систему).

Ответы [ 2 ]

1 голос
/ 06 января 2011

1001 * попробовать *

<?php
//If passwords match, a cookie is created
    if ($pw = $hashedpw) {
        $memberID = "1221"; //Pulled from DB
        setcookie('MDADMIN_SESS_ID',$memberID,'0','/', '.somewhere.com');
        header('Location: http://somewhere.com/secure_page.php');
        exit();
    }
?>

Вам не хватает пути /.

Также убедитесь, что у вас есть функция exit(); после заголовка; потому что если вы позже удалите файл cookie в каком-либо месте, это также может повлиять.

0 голосов
/ 06 января 2011

попробуйте добавить / к этой строке (в переменной $ path) Если установлено значение '/', файл cookie будет доступен во всем домене

setcookie('MDADMIN_SESS_ID',$memberID,'0','/', '.somewhere.com');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...