Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Проблема с ссесиями
 
 автор: Artemy   (12.01.2005 в 16:09)   письмо автору
 
 

Чего то я не могу понять, допустим я установливаю ссесии в файле аутенфикации($_SESSION['login'] и $_SESSION['pass']), потом он перенаправляет на оснавную страницу, эта страница ссесии воспринемает нормально, но только стоит нажать на ссылку, сбиваеться $_SESSION['pass'] и становиться равным 0 , хотя session_start(); на ссылаемой странице присутствует

P.S. Sorry за повторенние

   
 
 автор: cheops   (12.01.2005 в 23:03)   письмо автору
 
   для: Artemy   (12.01.2005 в 16:09)
 

Возможно сервер не поддерживает работу с сессионными куками и идентификатор сессии придётся передавать через URL попробуйте добавить в строку запроса параметр SID=session_id()

   
 
 автор: Artemy   (19.01.2005 в 16:24)   письмо автору
 
   для: cheops   (12.01.2005 в 23:03)
 

Помогите пожалуйста...
Простите что так поздно, но всё же...
Я попробовал вставить SID в ссылку, т.е. вот так
print "<HTML><HEAD>\n";
print "<META HTTP-EQUIV='Refresh' CONTENT='0; URL=index.php?SID=".session_id()."'>\n";
print "</HEAD></HTML>\n";
exit();

И что дальше делать ? Если это всё, то всё по-старому!
Дело происходит на локальной машине, а такая беда происходит при нажатии на любую ссылку!

   
 
 автор: Akira   (13.01.2005 в 00:54)   письмо автору
 
   для: Artemy   (12.01.2005 в 16:09)
 

А на ссылку любую? или параметр какой-то передаеться?
PS Пожалуйста указывайте где у вас находиться сервер. На web или localhost. Это намного упростит выяснение ошибки.

   
 
 автор: Artemy   (13.01.2005 в 16:59)   письмо автору
 
   для: Akira   (13.01.2005 в 00:54)
 

Да на любую!
Как то странно сначала поработала, раза 3, а потом такую фигню выдает!

   
 
 автор: behrad   (19.01.2005 в 21:21)   письмо автору
 
   для: Artemy   (13.01.2005 в 16:59)
 

posmatry u tebya ba drugikh stranitsakh est session_start();
ili v opsiyakh appcha

   
 
 автор: cheops   (19.01.2005 в 22:31)   письмо автору
 
   для: behrad   (19.01.2005 в 21:21)
 

А вообще говоря да, проверьте, на всех ли страницах вызывается функция session_start().

   
 
 автор: Artemy   (20.01.2005 в 15:37)   письмо автору
 
   для: cheops   (19.01.2005 в 22:31)
 

У меня в ссесии регистрируеться логин и пароль, и я не как не могу понять почему логин остаёться, в любом случае, а пароль становиться равным 0!

   
 
 автор: cheops   (20.01.2005 в 19:02)   письмо автору
 
   для: Artemy   (20.01.2005 в 15:37)
 

Хм... а воспроизводится ситуция... может на каком-то этапе затирается - никак нельзя локализовать проблему? Вообще во многих ли метах $_SESSION['пароль'] что-либо присваивается и нет ли где-нибудь ошибки вроде
<?php
  
if($_SESSION['пароль'] = "")
?>

Т.е. использование = вместо ==?

   
 
 автор: Artemy   (21.01.2005 в 00:10)   письмо автору
 
   для: cheops   (20.01.2005 в 19:02)
 

Только вот это
 <? 
 $passwd 
md5($_SESSION['pass']);
?>

А вообще проверка осуществляеться так
<?
$pass 
mysql_query("SELECT * FROM users WHERE login='".$_SESSION['login']."' and password='$passwd' and type IN (1,5,0);");
?>

Первый раз всё нормально, а потом пароль теряеться! :-((

   
 
 автор: cheops   (21.01.2005 в 00:32)   письмо автору
 
   для: Artemy   (21.01.2005 в 00:10)
 

Это безобразие происходит на локальной машине?

   
 
 автор: Artemy   (21.01.2005 в 10:22)   письмо автору
 
   для: cheops   (21.01.2005 в 00:32)
 

Да, причём даже на двух, дома и на работе!

   
 
 автор: cheops   (21.01.2005 в 12:32)   письмо автору
 
   для: Artemy   (21.01.2005 в 10:22)
 

Попробуйте прописать директорию для хранения сессий, как это описано по ссылке http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=104 - после этого гораздо удобнее отслеживать регистрацию сессий и их содержимое.

   
 
 автор: Artemy   (23.01.2005 в 22:49)   письмо автору
 
   для: cheops   (21.01.2005 в 12:32)
 

Странно как то!
Как Вы сегодня написали, у меня не работает всёравно!
Но вот сейчас "тыркал, пыркал", и обнаружил такую вещь!
Если в ссесии отправлять пароль со значением pass, т.е. так
<?
$_SESSION
['pass']
?>
, то происходить старая песня, а если , например так
<?
$_SESSION
['pass22']
?>
, тогда все нормально работает!

Чем это может быть вызванно?

   
 
 автор: cheops   (23.01.2005 в 23:25)   письмо автору
 
   для: Artemy   (23.01.2005 в 22:49)
 

У вас в добавлении позиции имеется строчка
<?php
$_SESSION
['pass'] = $_POST['passwd'];
?>

Она не может быть виновницей обнуления пароля... с 90% вероятностью дело в этом - попробуйте закомментарить.

   
 
 автор: Artemy   (24.01.2005 в 00:13)   письмо автору
 
   для: cheops   (23.01.2005 в 23:25)
 

Нет, это происходить однажды, при аутенфикации пользователя и всё!
Вот почему-то не работает, если переменную в ссесиях назвать pass
<?
echo $_SSESION['pass'];
?>
, но стоит ее изменить на одну букву все работает, почему именно с pass не получаеться?

   
 
 автор: cheops   (24.01.2005 в 00:19)   письмо автору
 
   для: Artemy   (24.01.2005 в 00:13)
 

Эх ты забыл название файла написать... я имею ввиду не enter.php, а addrec.php строка 157 - там такое присвоение нужно?

   
 
 автор: Artemy   (24.01.2005 в 00:23)   письмо автору
 
   для: cheops   (24.01.2005 в 00:19)
 

Хахаха...:-))
Про addrec.php не идет речь , она вообще не рабочая!
Я говорил про index.php и enter.php, и в index.php такой строчки нет!
Все работает!!!
Почему ?(Вопрос выше)

   
 
 автор: cheops   (24.01.2005 в 00:29)   письмо автору
 
   для: Artemy   (24.01.2005 в 00:23)
 

А... у вас же в скрипте используется переменная $pass - это дескриптор запроса MySQL - строка 156 enter.php. Если register_globals включены сессии затираются так как $_SESSION['pass'] это и есть переменная $pass.

   
 
 автор: Artemy   (24.01.2005 в 00:35)   письмо автору
 
   для: cheops   (24.01.2005 в 00:29)
 

Да, вроде бы!
Да...статья "PHP Хороший стиль программирования" прочитана для меня мимо! :-))
Надо быть поокуратней с названиями переменных!
>$_SESSION['pass'] это и есть переменная $pass.
Я такого не знал, меня правда вссегда удивляло, что на одной странице можно использовать и $var и $_POST['var'] и они будут одинаковы, хотя переменной $var и не было присвоенно значение $_POST['var'] !!!

   
 
 автор: cheops   (24.01.2005 в 00:47)   письмо автору
 
   для: Artemy   (24.01.2005 в 00:35)
 

На самом деле они будут разными только если register_globals = Off.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования