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

Форум PHP

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

 

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

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

тема: $_SESSION и include (не работает !)
 
 автор: dima2207   (18.01.2008 в 10:28)   письмо автору
 
 

Люди , подскажите другой способ передачи переменной между страницами .кроме сессий и глобальных переменных . Потому-что я ума не приложу почему у меня неработает ?
структура такова : в голове индексного файла регистрирую сессию , далее в случае удачной идентификации пользователя создается переменная $_SESSION ['user']=$_POST['login'];
А далее эта переменная должна жить на протяжении всего сеанса . но это не так . она почему-то умирает при подключении инклюдом файла .
особенности сессии таковы , что идентификатор передается в куках , но вот если передать идентификатор в ссылке гетом , то я думаю все бы работало , но как передать то я знаю , а вот как принять и обработать , нет .
подскажите пожалуйста выход из сложившийся ситуации .

   
 
 автор: yuk   (18.01.2008 в 10:35)   письмо автору
 
   для: dima2207   (18.01.2008 в 10:28)
 

Принять GET? Точно так же, как и POST.
$_GET['name']

   
 
 автор: dima2207   (18.01.2008 в 10:40)   письмо автору
 
   для: yuk   (18.01.2008 в 10:35)
 

Ну это все понятно . а что с идентификатором дальше делать ? Как извлечь информацию из него ?

   
 
 автор: Петр   (18.01.2008 в 10:45)   письмо автору
 
   для: dima2207   (18.01.2008 в 10:28)
 

Если объявить в начале файла $_SESSION ['user'] (до первого вывода в браузер), то все подключаемые файлы будут это видеть.
Единственное, что $_SESSION ['user']=$_POST['login']; надо делать только при передаче пост-запроса

<?php
start_session
();
if (
$_POST['login']) {
 
Запрос к БД или файлу...
 
$_SESSION ['user']=$_POST['login'];
}
?>

   
 
 автор: dima2207   (18.01.2008 в 11:05)   письмо автору
 
   для: Петр   (18.01.2008 в 10:45)
 

Всмысле обьявить до первого вывода в браузер ? у меня она обьявляется в подключаемом скрипте идентификации пользователя ( в случае его верных входных параметров), а вот когда я ухожу по ссылке в другой файл (котоорый тоже подключается инклюдом) , то там она теряется , хотя в индексном файле она еще присутсвует ! единственный выход по моему это передавать идентификатор в адресной строке , но что с ним делать потом , я незнаю ! зачем он вообще нужен ? и как скрипт может выудить инфу из $_GET['sid'] ?

   
 
 автор: Петр   (18.01.2008 в 11:08)   письмо автору
 
   для: dima2207   (18.01.2008 в 11:05)
 

тебе каждый раз нужно запускать сессию session_start();
если ты откроешь страницу, при загрузке которой не было этой функции, то она будет неопределена (не пропадет, она просто непрочитается из файла-сессии на сервере)

   
 
 автор: KPETuH   (18.01.2008 в 11:06)   письмо автору
 
   для: Петр   (18.01.2008 в 10:45)
 

немного неправильно.... до первого вывода в браузер нужно писать только

<?php
session_start
();


кстати обратите внимание как написано у меня и как у вас...

   
 
 автор: Петр   (18.01.2008 в 11:08)   письмо автору
 
   для: KPETuH   (18.01.2008 в 11:06)
 

ну да, наоборот, торопился :)

   
 
 автор: KPETuH   (18.01.2008 в 11:07)   письмо автору
 
   для: dima2207   (18.01.2008 в 10:28)
 

приведите код!

   
 
 автор: dima2207   (18.01.2008 в 11:11)   письмо автору
 
   для: KPETuH   (18.01.2008 в 11:07)
 

код очень большой что-бы его постить сдесь , вы мне обьясните пожалуйста как принять ( и главное что с ним дальше делать ) идентификатор сессии в адресной строке .

   
 
 автор: dima2207   (18.01.2008 в 11:20)   письмо автору
 
   для: dima2207   (18.01.2008 в 11:11)
 

Да , и еще вопрос : почему на одном сервере работает $GLOBALS ( по всему скрипту , песле ее обьявления ) а на другом нет , хотя на обоих регистр глобалс отключены !

   
 
 автор: KPETuH   (18.01.2008 в 12:38)   письмо автору
 
   для: dima2207   (18.01.2008 в 11:11)
 

зачем вам идентификатор сессии? код можно прикрепить файлом... без кода разговор безпредметен...

   
 
 автор: dima2207   (18.01.2008 в 13:24)   письмо автору
 
   для: KPETuH   (18.01.2008 в 12:38)
 

Короче , я пришол к выводу что механизм сессии очень несовершенен ! И без записи в куки браузера пользователя переменной идентифицирующей его (пока страница не будет закрыта) в моем случае невозможно !
с радостью выслушаю все за и против такого сметода иденфикации пользователя !
на сколько это безопасно ?

   
 
 автор: KPETuH   (18.01.2008 в 14:18)   письмо автору
 
   для: dima2207   (18.01.2008 в 13:24)
 

хм сессия и так работает пока браузер не будет закрыть чем она вам не нравиться я не пойму :)

   
 
 автор: dima2207   (18.01.2008 в 14:27)   письмо автору
 
   для: KPETuH   (18.01.2008 в 14:18)
 

Нестабильно работает , хочет работает , хочет нет !
(смотрите выше)

   
 
 автор: dima2207   (18.01.2008 в 14:30)   письмо автору
 
   для: dima2207   (18.01.2008 в 14:27)
 

да , но меня волнует вот какой вопрос - не у всех пользователей включены куки !
как тут быть ?

   
 
 автор: KPETuH   (18.01.2008 в 15:03)   письмо автору
 
   для: dima2207   (18.01.2008 в 14:27)
 

мне некуда смотреть код вы так и не привели :) у меня очень прекрасно все работает с сесиями всегда :)

   
 
 автор: mihdan   (18.01.2008 в 15:09)   письмо автору
 
   для: dima2207   (18.01.2008 в 14:27)
 

dima2207, это от того что криво скрипт написали - сессии работают стабильно.
Если куки отключены то ID сессии передается через адресную строку и скрытыми полями форм.

Прочитайте в мануале по РНР - там все написано с кучей примеров. Вопросов не возникнет я думаю

   
 
 автор: dima2207   (18.01.2008 в 16:08)   письмо автору
 
   для: mihdan   (18.01.2008 в 15:09)
 

вопрос стоит не о сессиях в куках , а о куках как таковых ! а по поводу скрипта - то все очень просто , при нажатии на кнопку вход идет проверка на пасс и логин , и в случае если все ок , то в сессию записывается логин пользователя , с которым он идет дальше по сайту ! так вот проблемма заключается в том что при подключении инклюдом файла( к индексному файла в котором сессия еще жива ) , скажем , музыка , в музыке я ее (сессию) уже не наблюдаю , как это понимать ? нафиг она вообще нужна (простите за резкость) эта сессия ! по моему куки ( как таковые ) более надежные , единственная проблемма что они не у всех включены !я разочарован !

   
 
 автор: KPETuH   (18.01.2008 в 17:29)   письмо автору
 
   для: dima2207   (18.01.2008 в 16:08)
 

честное слово я не знаю как с вами разговаривать... вы не приводите свой скрипт и хотите чтоб вам помогли... мы не волшебники и гадать не умеем не хотите привести скрипт как хотите!!!!! но никто вам не поможет.... У МЕНЯ ЛИЧНО куча скриптов с сесиями прекрасно работает с инклюдами или нет... и если у вас не работает то 100% у вас кривой скрипт!

   
 
 автор: dima2207   (18.01.2008 в 17:57)   письмо автору
 
   для: KPETuH   (18.01.2008 в 17:29)
 

Публикую кусок сайта .
так вот , все работает норма , до тех пор пока не подключается файл show_con.php в нем сессия теряется !

   
 
 автор: KPETuH   (18.01.2008 в 21:10)   письмо автору
 
   для: dima2207   (18.01.2008 в 17:57)
 

скажите вы и в обычной жизни так же общаетесь? я даже не знаю как с вами еще разговаривать... вы предлагаете просмотреть все файлы каторые вы закинули в архив? или вам нужна конкретная помощь? как вы думаете я наверно должен с первого взгляда оценить где вы используете show_con.php?

просмотрел я ваши скрипт местами с чего вы взяли что у вас не работает Сессия... пожалуйста можно побольше подробностей, все таки это вам нужна помощь а не мне :)

следующее замечание: как минимум
в начале show_con.php
у вас в запрос в базу в котором используется $_GET['op'] лучше проверять а передан ли этот параметр. Ищите ошибку в скриптах так как сесии у вас прекрасно работают проверить просто присвойте в index.php сессионной переменной некую константу например
<?
$_SESSION
['q']='PRIVET';

а выведите ее в приинклюденном файле!

   
 
 автор: Thrasher   (18.01.2008 в 17:37)   письмо автору
 
   для: dima2207   (18.01.2008 в 16:08)
 

У вас ошибка в коде. Если не умеете правильно работать с сессиями, не надо разочарововаться.

   
Rambler's Top100
вверх

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