Проверьте сессию и куки не работает в PHP - PullRequest
0 голосов
/ 27 июля 2010

У меня есть этот код, который гарантирует, что вы вошли в систему, а затем убедитесь, что вы находитесь на правильной странице, проверив файл cookie, установленный при входе в систему. Этот код работает на странице в каталоге под именем входа в скрипте, однако на странице в каталоге ниже, что всегда приводит вас к accessdenied. Есть идеи?

<?php

session_start();

if(!isset($_SESSION['SESS_MEMBER_ID']) || (trim($_SESSION['SESS_MEMBER_ID']) == '')) {
    header("location: http://mywebsite.com/member/accessdenied.html");
    exit();
}


 $_COOKIE["verify"] = $verify;
 if( $verify != file_get_contents("name.txt")) { 
  header("location: http://mywebsite.com/member/accessdenied.html");
 } else {  }

 ?>

И кажется, что только нижняя часть, часть, которая проверяет куки, не работает. Опять какие-нибудь идеи?

Ответы [ 4 ]

4 голосов
/ 27 июля 2010

Я думаю, у вас задание на печенье задом наперед:

$_COOKIE["verify"] = $verify;

Должно быть

$verify = $_COOKIE["verify"];

И это должно быть:

$verify = isset($_COOKIE["verify"])?$_COOKIE["verify"]:false;

Как будто cookie не был ранее установлен, ну, это выдаст ошибку уведомления.

1 голос
/ 27 июля 2010
<?php

 $verify = $_COOKIE["verify"];

 if( $verify == file_get_contents("name.txt")) { 
     echo $verify . 'is equal to the content of name.txt'
 } else {  
     echo $verify . 'is NOT equal to the content of name.txt'
 }

 ?>

Попробуйте отладить код с этим.Посмотрите, является ли содержимое вашей переменной тем, что вы хотите.Но я нахожу необычным, что переменная будет файлом .

0 голосов
/ 27 июля 2010

Другая идея: куки могут быть установлены, чтобы быть релевантными только для определенного каталога. Я просто понимаю, что нам здесь не хватает, это та часть, где вы устанавливаете куки в первую очередь.

0 голосов
/ 27 июля 2010

Вы уверены, что всегда получаете контент из file_get_contents? Я мог предположить, что это найдено в одном каталоге, но не в другом!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...