Кука есть а доступа к ней нет. Почему?

Статус
В этой теме нельзя размещать новые ответы.

Dima_A

Новичок
Кука есть а доступа к ней нет. Почему?

Регистрирую куку.
PHP:
define("COOKIE_NAME", "site");
define("COOKIE_PATH", "users");
$this->login='1111';
$this->pass='1';
$cookie_str = $this->login.chr(31).base64_encode($this->pass);
setcookie($this->cookie_name, $cookie_str, $expire, $this->cookie_path);
Открываю ее в Temporary Internet Files, там:
site
1111%1FYzRjYTQyMzhhMGI5MjM4MjBkY2M1MDlhNmY3NTg0OWI%3D
www.site.comusers
1536
2331355392
29907698
966280928
29904882
*
Данные есть

Теперь проверяю:
PHP:
if (isset($_COOKIE[$this->cookie_name])) {			
 echo "NNN";
}
Ничего не выводится. Почему?
 

m.pontus

Новичок
Ты задаешь константы:
PHP:
define("COOKIE_NAME", "site"); 
define("COOKIE_PATH", "users");
Был ли $this->cookie_path задан заранее?
Значения "site" и "users" находятся в константах COOKIE_NAME и COOKIE_PATH получаются соответственно.
 

Dima_A

Новичок
PHP:
class access() {
var $cookie_name = COOKIE_NAME;
var $cookie_path = COOKIE_PATH; 
#потом уже в методе:
function access_user()
{
 $cookie_str = $this->login.chr(31).base64_encode($this->pass); 
setcookie($this->cookie_name, $cookie_str, $expire, $this->cookie_path);

}
 

Dima_A

Новичок
Я поставил IEHTTPHeaders и действительно, серверу не отправляются куки-заголовки
похожие проблемы еще имеются с сессиями..
Интересно почему
 

Dima_A

Новичок
PHP:
$value='df';
setcookie("TestCookie", $value, time()+3600);   
var_dump($_COOKIE);

array(1) { ["TestCookie"]=> string(2) "df" }
 

Dima_A

Новичок
POST /ru/auth/ HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/msword, */*
Referer: http://www.site.com/
Accept-Language: uk
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; MRA 4.10 (build 01952); .NET CLR 2.0.50727)
Host: www.site.com
Content-Length: 90
Connection: Keep-Alive
Cache-Control: no-cache

PHPSESSID=tipkjr71egkg3qmqfudaktvu06&login=1111&password=1&remember=yes&Submit=OK&do=login

HTTP/1.1 200 OK
Date: Sun, 06 Jan 2008 01:22:12 GMT
Server: Apache/1.3.33 (Win32)
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Pragma: no-cache
X-Powered-By: PHP/5.2.4
Set-Cookie: site=1111%1FYzRjYTQyMzhhMGI5MjM4MjBkY2M1MDlhNmY3NTg0OWI%3D; expires=Sun, 20-Jan-2008 01:22:12 GMT
Keep-Alive: timeout=15, max=95
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html
-~{}~ 06.01.08 04:40:

Может я приведу свой код, наверное где-то в нем ошибка:

PHP:
$page_protect = new Access_user;
if($page_protect->access())
	{
		echo "Мы Вас узнали. привет";
	}
else 	
  {
	echo "Мы Вас не узнали. Авторизация не прошла";
  }

class Access_user {
	
#сдесь описываются переменные. Я их не привожу

function access() {
if( $this->login_reader())				
{
  return true;
}
if(isset($_SESSION['loged']))	//Ставлю в функции login_user
{
  return true;
}
else 
{
  return false;
}
}

function login_reader() {
  if (isset($_COOKIE[$this->cookie_name])) {			
	$cookie_parts = explode(chr(31), $_COOKIE[$this->cookie_name]);
	$this->login = $cookie_parts[0];
	$this->pass = base64_decode($cookie_parts[1]);
	if ($this->check_user()) {
		$this->is_cookie = true;				
		session_register("loged");
		$this->loged=$this->login;
		return true;
	} else {
		unset($this->login);
		unset($this->pass);
		return false;
	}
   }
}

function login_user($login, $pass) {
  if ($login != "" && $pass != "") {
	$this->login = $login;
	$this->pass = md5($pass);
	if ($this->check_user()) {
		$this->login_saver();
		if ($this->count_visit) {
			$this->reg_visit($login, $this->pass);
		}				
		session_register("loged");
		$this->loged=$login;
		return true;
		} else {
				$this->the_msg = $this->messages(10);
		}
	} else {
			$this->the_msg = $this->messages(11);
	}
}

function login_saver() {
if ($this->save_login == "no") {
	if (isset($_COOKIE[$this->cookie_name])) {
		$expire = time()-3600;
	} else {
		return;
	}
} else {
	$expire = time()+1209600;
}	
$cookie_str = $this->login.chr(31).base64_encode($this->pass);
setcookie($this->cookie_name, $cookie_str, $expire, $this->cookie_path);
}
 

Фанат

oncle terrible
Команда форума
Дима. Не мог бы ты делать лицо попроще?
Т.е., если работаешь с куками, то и код чтобы состоял ровно из двух строчек - установка куки и чтение значения куки?
Без констант, переменных, кодировок и прочего
 

Dima_A

Новичок
Ок. Попробую еще раз.
Cтавлю куку:
PHP:
#Файл auth.php
$cookie_str = "1111".chr(31).base64_encode("1");
setcookie('site', $cookie_str, time()+1209600, '/');

#________Идет вывод страницы______
#В ней встречается ссылка:
?><a href="<a href=site.com/index.php">Перейти на главную</a><?
var_dump($_COOKIE);
#Вот она моя кука
array(1) { ["site"]=> string(49) "1111YzRjYTQyMzhhMGI5MjM4MjBkY2M1MDlhNmY3NTg0OWI=" }
Теперь когда перехожу по ссылке на index.php, а в нем:
var_dump($_COOKIE);

, то ничего не выводит: array(0) { }
 

kode

never knows best
PHP:
session_register("loged"); 
$this->loged=$this->login;
Улыбнул код :) Типа я есть всё и всё есть я :)
 

Фанат

oncle terrible
Команда форума
Dima_A
твои проблемы от невнимательности.
и от упорного нежелания делать нормальные тестовые скрипты.
ты все так же пытаешься тестировать на большом скрипте.

тему я закрою, за бессмысленностью - ты не делаешь то, что тебе говорят.
тем более, что разу набежали гадалки.

-~{}~ 06.01.08 16:39:

Разве только скажу, что нельзя пользоваться функциями session_register и иже с ней.
но, боюсь, ты это точно так же пропустишь мимо ушей.

здесь профессиональный форум. здесь всегда дадут четкий и конкретный ответ.
но не все, к сожалению, соответствуют такому профессиональному уровню, и могут рекомендации точно так же черко и конкретно выполнить. рекомендую поискать другой форум, пониже уровнем.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху