Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не присваивается значение в сессии 
:(
    Опции темы
KIRINDORF
Дата 1.4.2011, 21:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 79
Регистрация: 11.2.2011

Репутация: 1
Всего: 1



Цитата(Gold Dragon @ 1.4.2011,  21:42)
 Есть ошибка в коде, а сайт всё равно работает. На Php хоть видно что что-то сломано smile
Может в такой ситуации использовать инструмнты отладки? Голова не резиновая, в уме все не удержишь.


Добавлено @ 22:03
Цитата(Gold Dragon @ 1.4.2011,  21:42)
Спасибо за простые решения...
Отдадим должное bars80080, он подтолкнул нас в правильное направление.

Это сообщение отредактировал(а) KIRINDORF - 1.4.2011, 22:04
PM MAIL   Вверх
Muerto
Дата 1.4.2011, 23:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



Цитата(Muerto @ 1.4.2011,  20:18)
Подозриваю что проблема в том что у тебя в том файле нету session_start();
Не достаточно просто в начале страницы вызвать, то куда отправляет гет это совершенно другая страница

Таки в яблочко   smile 
Это bad practice , создавать отдельные странички под get нисчем не связанные вроде forGet.php и отсылать на них... надеюсь вы так не делайте...

Правильно будет MVC , где страница полноценный контроллер с моделями, и видом...
Вид может быть хоть xml , а можно по большому счету и ничего не выводить...

Сессия должна стартоватся по ло любому, потому что когда ты получаешь что то через get или Post, это отдельный instance 
И то что у тя там где то в индексе что то открыто - эт не важно...

НО если у тя MVC и Front-Controller или раутер, ну или какая то точка через которую всё проходит - и там стартовать, то проблем не будет тоже...

Хотя не знаю насколько такая практика будет верной... правильней будет иметь некий Helper Для сессией который будет выполнять всю черную работу когда надо

Это сообщение отредактировал(а) Muerto - 1.4.2011, 23:20


--------------------
user posted image
PM MAIL   Вверх
KIRINDORF
Дата 2.4.2011, 00:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 79
Регистрация: 11.2.2011

Репутация: 1
Всего: 1



Цитата(Muerto @ 1.4.2011,  23:19)
Таки в яблочко
 Вообще-то первым куда копать, указал bars80080.

Добавлено @ 00:38
Цитата(Muerto @ 1.4.2011,  23:19)
Это bad practice , создавать отдельные странички под get нисчем не связанные вроде forGet.php и отсылать на них... 
Советую не торопиться с выводами, а дождаться комментариев автора темы. Полной картиной владеет только он.

Это сообщение отредактировал(а) KIRINDORF - 2.4.2011, 00:39
PM MAIL   Вверх
Muerto
Дата 2.4.2011, 01:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



Цитата(KIRINDORF @ 2.4.2011,  00:36)
Цитата(Muerto @ 1.4.2011,  23:19)
Таки в яблочко
 Вообще-то первым куда копать, указал bars80080.

Добавлено @ 00:38
Цитата(Muerto @ 1.4.2011,  23:19)
Это bad practice , создавать отдельные странички под get нисчем не связанные вроде forGet.php и отсылать на них... 
Советую не торопиться с выводами, а дождаться комментариев автора темы. Полной картиной владеет только он.

Да на самом деле не имеет значения, нам здесь не платят  smile 
Все молодцы  smile 

Это сообщение отредактировал(а) Muerto - 2.4.2011, 01:38


--------------------
user posted image
PM MAIL   Вверх
Gold Dragon
Дата 2.4.2011, 07:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



сегодня попытался переделать всё через index.php, но не покатило :(
пока не разобрался как всё это организовать и вернулся к прежнему варианту...

Сайт-визитка и просто не хотелось супер-пупер всё наворачивать.. Да и первый раз делаю сайт полностью на технологии Ajax... ещё не до конца осознал структуру управления


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
KIRINDORF
Дата 2.4.2011, 09:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 79
Регистрация: 11.2.2011

Репутация: 1
Всего: 1



Цитата(Gold Dragon @ 2.4.2011,  07:49)
сегодня попытался переделать всё через index.php, но

то есть приписал к 
Код

$.get("code.php", function(data)
 id сессии и вышло, к примеру так 
Код

$.get("code.php?session=session_id()", function(data) ...
в  самом code.php 
Код

session_name('session');
session_start();

 и не работает?

Тогда надо запустить в режиме отладки и посмотреть, при исполнении jQery.get() и после session_start() в code.php, лежат ли для code.php в массиве $_SESSION данные, записанные в index.php. Они просто должны там быть! Ведь если все сделано как описано выше, то code.php получил доступ именно к index-ной сессии.

 Принцип работы http никто не отменял - get(url) это новый запрос на сервер, как ни крути. Следовательно id сессии надо передать запрошенному url.

Самое важное, если использовать новое имя сессии для запрашиваемых скриптов, то и в вызывающем скрипте имя сессии должно быть тем же. Т.е. если в вышеописанном примере сессии дано имя session, то и в index.php должно быть:
Код

session_name('session');
session_start();


Это сообщение отредактировал(а) KIRINDORF - 2.4.2011, 09:52
PM MAIL   Вверх
Gold Dragon
Дата 2.4.2011, 09:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



нет, просто в файле ajax.php и code.php прописал session_start();
а имя сессии по умолчанию PHPSESSID


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
KIRINDORF
Дата 2.4.2011, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 79
Регистрация: 11.2.2011

Репутация: 1
Всего: 1



Цитата(Gold Dragon @ 2.4.2011,  09:52)
нет, просто в файле ajax.php и code.php прописал session_start();
так этого не достаточно. 

Тебе же нужна не новая сессия в code и ajax, а доступ из этих скриптов к index-ной сессии. 

Для этого и нужно передать ид сессии в get().

Пусть имя сессии во всех трех скриптах стандартное.
Но дописать ид сессии к url в jQuery.get()  все равно надо, чтоб передать id сессии. Тогда session_start()  для code и ajax стартует не новые сессии, а откроет им index-сессию.
PM MAIL   Вверх
Gold Dragon
Дата 2.4.2011, 10:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



так...
т.е. я в index.php задаю имя сессии, потом в любой из подгружаемых файлов должен передавать с запросом имя и в файлах code и ajax создавать сессию именно с этим именем? 

что-то голова кругом... Вот я передал имя (id) сессии, а в файлах мне её как использовать без session_start() ?


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Muerto
Дата 2.4.2011, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



Gold Dragon, Не изобретай велосипед, возьми CodeIgniter к примеру, он очень прост...
Единственная цель индекса это запустить раутер, и создать Instance ядра фреймворка  smile 


--------------------
user posted image
PM MAIL   Вверх
KIRINDORF
Дата 2.4.2011, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 79
Регистрация: 11.2.2011

Репутация: 1
Всего: 1



Если задано новое имя сессии:
в index.php
Код

session_name('твое_новое_имя_сессии');
session_start();

Код

$.get("code.php?твое_новое_имя_сессии=session_id()", function(data) ...

в code.php и ajax.php
Код

session_name('твое_новое_имя_сессии');
session_start();


Если имя сессии стандартное:
в index.php
Код

session_start();

Код

$.get("code.php?PHPSESSID=session_id()", function(data) ...


в code.php и ajax.php
Код

session_start();

PM MAIL   Вверх
Muerto
Дата 2.4.2011, 11:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



KIRINDORF, А какая роль session name?
Это что  то вроде namespace для сессий?
Не приходилось такое использовать... чем плохо тупо session_start() ?



--------------------
user posted image
PM MAIL   Вверх
Gold Dragon
Дата 2.4.2011, 11:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



Цитата(Muerto @  2.4.2011,  11:46 Найти цитируемый пост)
Не изобретай велосипед, возьми CodeIgniter к примеру, он очень прост...
Без обид, но это к чему в этой теме? Если ты предлагаешь мне воспользоваться фремворком, то я отлично программирую на Joostina`е, хорошо знаю её код и свободно могу написать практически любой нужный мне компонент. smile

А тут стоит конкретная задача smile

KIRINDORF, а вообще, какой смысл передавать имя если по умолчанию всегда создаётся одно и тоже PHPSESSID


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Muerto
Дата 2.4.2011, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



Gold Dragon, Ну с ваших слов я понял, что вы не хотите использовать монстров, делайте структуру где все идет через индекс, но есть отдельные файлы вроде getBlah.php которые просто страница которая держит в себе и логику и представление в одном флаконе

Так я хотел подметить что есть очень легкие фреймворки вроде ci (легкие в плане памяти и размера в первую очередь)
Которые сделают для вас всю черную работу!

И не важно пишем ли мы фейсбук, или личную страничку... 


Это сообщение отредактировал(а) Muerto - 2.4.2011, 11:25


--------------------
user posted image
PM MAIL   Вверх
Gold Dragon
Дата 2.4.2011, 11:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



Muerto, это простой сайт-визитка, пара страниц, пара форм отправки сообщений. Любой даже супер-пупер маленький фреймворк будет монстром для этого сайта ;) Да и задачу я уже озвучил.. Просто этот сайт я выбрал для своего развития и изучения, не совсем ещё понятной для меня, технологии Ajax (на основе JQuery).. 

Тут действительно основной (почти) файл index.php, можно сказать управляющий.. А остальные это не отдельные страницы smile Есть класс для управления шаблонами, есть языковой класс, есть класс с необходимыми мне функциями... и всё ;) Ну и ещё конечно несколько типа формирования защитного кода


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0997 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.