![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
У меня есть файл в котором формируется код безопасности и выводится картинка. Всё отлично работает когда я этот файл просто вызываю.
Но я этот файл вызываю через Ajax (через JQuery $.get...), картинка формируется, а вот сессия не присваивается. Почему? -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
присваивается, к тебя скорее всего напутан порядок действий.
разбери пошагово, наверное найдёшь выпадающий этап Добавлено через 3 минуты да, как-то раз встретился с проблемой. на сайте выставлялось собственное имя сессии, и пока ты работал в пределах сайта - всё было ок. но стоило запустить скрипт, который не подключал стандартные библиотеки - как сессии уже не работали. проверь имя сессии |
|||
|
||||
| Gold Dragon |
|
||||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
при запуске скрипта если делаю это
и если обновлять страницу, видно что значение в сессии существует и меняется если подключаю файл через это
то ничего... вообще ничего.. Скрипт запускается, т.к. защитный код формируется и записывается постоянно новый в файл, но сессии нет. Т.е. ничего не меняется кроме способа подключения файла -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
||||
|
|||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
session_name() проверь. для скрипта, и для картинки
|
|||
|
||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
-------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
-------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| KIRINDORF |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 79 Регистрация: 11.2.2011 Репутация: 1 Всего: 1 |
Имя сессии везде должно быть одно и тоже. Вот что ты должен увидеть.
|
|||
|
||||
| Muerto |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1207 Регистрация: 23.9.2006 Репутация: 3 Всего: 4 |
Подозриваю что проблема в том что у тебя в том файле нету session_start();
Не достаточно просто в начале страницы вызвать, то куда отправляет гет это совершенно другая страница |
|||
|
||||
| Gold Dragon |
|
||||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
-------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
||||
|
|||||
| KIRINDORF |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 79 Регистрация: 11.2.2011 Репутация: 1 Всего: 1 |
Это сообщение отредактировал(а) KIRINDORF - 1.4.2011, 20:55 |
|||
|
||||
| Gold Dragon |
|
||||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
это ещё почему?
У меня есть основной файл index.php все остальные подключаются к нему в виде модулей, библиотек, классов.. в т.ч. и шаблоны тоже закачал сейчас то что наработал на сайт http://ооотигрис.рф/ --- меню Обратная связь Сайт полностью на Ajax, так что прямых ссылок нет.. Добавлено через 5 минут и 39 секунд внизу есть поле
сейчас если наживать на "обновить" код там должно появляться
Это сообщение отредактировал(а) Gold Dragon - 1.4.2011, 20:59 -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
||||
|
|||||
| KIRINDORF |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 79 Регистрация: 11.2.2011 Репутация: 1 Всего: 1 |
Я вижу у тебя перенаправление в файл ajax.php. Там сессия стартует?
|
|||
|
||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
так... в общем докумекал... Как же всё такие всё запутано получилось...
При нормальной работе, достаточно просто запустить в начале скрипта сессию.. А тут при условии что всё работает через Ajax получается что сессию нужно запускать в каждом файле который подгружается... KIRINDORF, изначально я подключал именно в файле который подгружал, но что-то сначала у меня не пошло.. Сейчас ещё раз попробовал и получилось. Т.е. если я подгружаю ajax.php и code.php то и там и там должен быть старт сессии... Не совсем грамотно получается.. нужно наверное все погрузки осуществлять через index.php с перенаправлением -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| KIRINDORF |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 79 Регистрация: 11.2.2011 Репутация: 1 Всего: 1 |
Рад за вас.
Это сообщение отредактировал(а) KIRINDORF - 1.4.2011, 21:41 |
|||
|
||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
KIRINDORF, ну что я могу сказать... просто невнимательность и просто не совсем осознал работу того что навертел
зы Как же всё на PHP просто, стоит только подключить Javascript и начинаются проблемы... Есть ошибка в коде, а сайт всё равно работает. На Php хоть видно что что-то сломано думаю вопрос решёл ;) -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| KIRINDORF |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 79 Регистрация: 11.2.2011 Репутация: 1 Всего: 1 |
Добавлено @ 22:03
Это сообщение отредактировал(а) KIRINDORF - 1.4.2011, 22:04 |
||||
|
|||||
| Muerto |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1207 Регистрация: 23.9.2006 Репутация: 3 Всего: 4 |
Таки в яблочко Это bad practice , создавать отдельные странички под get нисчем не связанные вроде forGet.php и отсылать на них... надеюсь вы так не делайте... Правильно будет MVC , где страница полноценный контроллер с моделями, и видом... Вид может быть хоть xml , а можно по большому счету и ничего не выводить... Сессия должна стартоватся по ло любому, потому что когда ты получаешь что то через get или Post, это отдельный instance И то что у тя там где то в индексе что то открыто - эт не важно... НО если у тя MVC и Front-Controller или раутер, ну или какая то точка через которую всё проходит - и там стартовать, то проблем не будет тоже... Хотя не знаю насколько такая практика будет верной... правильней будет иметь некий Helper Для сессией который будет выполнять всю черную работу когда надо Это сообщение отредактировал(а) Muerto - 1.4.2011, 23:20 |
|||
|
||||
| KIRINDORF |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 79 Регистрация: 11.2.2011 Репутация: 1 Всего: 1 |
Добавлено @ 00:38
Это сообщение отредактировал(а) KIRINDORF - 2.4.2011, 00:39 |
||||
|
|||||
| Muerto |
|
||||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1207 Регистрация: 23.9.2006 Репутация: 3 Всего: 4 |
Да на самом деле не имеет значения, нам здесь не платят Все молодцы Это сообщение отредактировал(а) Muerto - 2.4.2011, 01:38 |
||||||
|
|||||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
сегодня попытался переделать всё через index.php, но не покатило :(
пока не разобрался как всё это организовать и вернулся к прежнему варианту... Сайт-визитка и просто не хотелось супер-пупер всё наворачивать.. Да и первый раз делаю сайт полностью на технологии Ajax... ещё не до конца осознал структуру управления -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| KIRINDORF |
|
||||||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 79 Регистрация: 11.2.2011 Репутация: 1 Всего: 1 |
то есть приписал к
и не работает? Тогда надо запустить в режиме отладки и посмотреть, при исполнении jQery.get() и после session_start() в code.php, лежат ли для code.php в массиве $_SESSION данные, записанные в index.php. Они просто должны там быть! Ведь если все сделано как описано выше, то code.php получил доступ именно к index-ной сессии. Принцип работы http никто не отменял - get(url) это новый запрос на сервер, как ни крути. Следовательно id сессии надо передать запрошенному url. Самое важное, если использовать новое имя сессии для запрашиваемых скриптов, то и в вызывающем скрипте имя сессии должно быть тем же. Т.е. если в вышеописанном примере сессии дано имя session, то и в index.php должно быть:
Это сообщение отредактировал(а) KIRINDORF - 2.4.2011, 09:52 |
||||||||||
|
|||||||||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
нет, просто в файле ajax.php и code.php прописал session_start();
а имя сессии по умолчанию PHPSESSID -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| KIRINDORF |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 79 Регистрация: 11.2.2011 Репутация: 1 Всего: 1 |
Тебе же нужна не новая сессия в code и ajax, а доступ из этих скриптов к index-ной сессии. Для этого и нужно передать ид сессии в get(). Пусть имя сессии во всех трех скриптах стандартное. Но дописать ид сессии к url в jQuery.get() все равно надо, чтоб передать id сессии. Тогда session_start() для code и ajax стартует не новые сессии, а откроет им index-сессию. |
|||
|
||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
так...
т.е. я в index.php задаю имя сессии, потом в любой из подгружаемых файлов должен передавать с запросом имя и в файлах code и ajax создавать сессию именно с этим именем? что-то голова кругом... Вот я передал имя (id) сессии, а в файлах мне её как использовать без session_start() ? -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| Muerto |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1207 Регистрация: 23.9.2006 Репутация: 3 Всего: 4 |
Gold Dragon, Не изобретай велосипед, возьми CodeIgniter к примеру, он очень прост...
Единственная цель индекса это запустить раутер, и создать Instance ядра фреймворка |
|||
|
||||
| KIRINDORF |
|
||||||||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 79 Регистрация: 11.2.2011 Репутация: 1 Всего: 1 |
Если задано новое имя сессии:
в index.php
в code.php и ajax.php
Если имя сессии стандартное: в index.php
в code.php и ajax.php
|
||||||||||||
|
|||||||||||||
| Muerto |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1207 Регистрация: 23.9.2006 Репутация: 3 Всего: 4 |
KIRINDORF, А какая роль session name?
Это что то вроде namespace для сессий? Не приходилось такое использовать... чем плохо тупо session_start() ? |
|||
|
||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
А тут стоит конкретная задача KIRINDORF, а вообще, какой смысл передавать имя если по умолчанию всегда создаётся одно и тоже PHPSESSID -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| Muerto |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1207 Регистрация: 23.9.2006 Репутация: 3 Всего: 4 |
Gold Dragon, Ну с ваших слов я понял, что вы не хотите использовать монстров, делайте структуру где все идет через индекс, но есть отдельные файлы вроде getBlah.php которые просто страница которая держит в себе и логику и представление в одном флаконе
Так я хотел подметить что есть очень легкие фреймворки вроде ci (легкие в плане памяти и размера в первую очередь) Которые сделают для вас всю черную работу! И не важно пишем ли мы фейсбук, или личную страничку... Это сообщение отредактировал(а) Muerto - 2.4.2011, 11:25 |
|||
|
||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
Muerto, это простой сайт-визитка, пара страниц, пара форм отправки сообщений. Любой даже супер-пупер маленький фреймворк будет монстром для этого сайта ;) Да и задачу я уже озвучил.. Просто этот сайт я выбрал для своего развития и изучения, не совсем ещё понятной для меня, технологии Ajax (на основе JQuery)..
Тут действительно основной (почти) файл index.php, можно сказать управляющий.. А остальные это не отдельные страницы -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| KIRINDORF |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 79 Регистрация: 11.2.2011 Репутация: 1 Всего: 1 |
Общепринято в программировании, что имя переменной ассоциируется с ее значением.
PHPSESSID воспринимается как имя сессии, или любое другое, установленное при помощи session_name(). Имя сессии это переменная. В get(url) мы присвоили этой переменной значение, конкретно, идентификатор сессии. При отсылке запроса jQuery.get(url) мы отослали серверу эту переменную. Получив ее, сервер действует по принципу имя=значение, т.е. извлекает из переменной ее значение. В вашем случае это идентификатор сессии, стартованной для index.php - чего и добивались. Итак, к моменту запуска code.php сервер имеет для этого скрипта (code.php) идентификатор index-ной сессии. Исполняя code.php находит session_start(). Поскольку в запросе на code.php пришел id index-сессии то новая сессия стартована не будет - для code.php сервер откроет доступ к index-сессии. Вопрос всегда в том, получает ли сервер с запросом на ресурс идентификатор сессии. Если да, то для ресурса стартует сессия, сохраненная на сервере под пришедшим с запросом id. Если с запросом id не приходит, а ресурс требует старт сессии, серевер создает новую сессию. Это сообщение отредактировал(а) KIRINDORF - 2.4.2011, 11:47 |
|||
|
||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
KIRINDORF, механизм то я понял.. вопрос малость в другом.. если сейчас всё работает, то есть ли вообще смысл в передаче? Или при каких условия это не будет работать?
-------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| Muerto |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1207 Регистрация: 23.9.2006 Репутация: 3 Всего: 4 |
KIRINDORF, У вас на сервере php 4 или 3 что ли?
Вся процедура которую вы описывайте лишняя... (возможно я что то упускаю?) Возможно у вас так север настроен что обязано передавать идентификатор методом get... Тоже вариант, слышал о таком но не использовал, ибо смысла в этом не вижу. Это сообщение отредактировал(а) Muerto - 2.4.2011, 12:02 |
|||
|
||||
| KIRINDORF |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 79 Регистрация: 11.2.2011 Репутация: 1 Всего: 1 |
Теперь не понял я - так в get(url) передается id сессии или нет.
Т.е. дело идет так:
или все прекрасно вот так:
То что сессии в code и ajaz должны стартовать, похоже разобрались - должны. Это сообщение отредактировал(а) KIRINDORF - 2.4.2011, 12:05 |
||||
|
|||||
| KIRINDORF |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 79 Регистрация: 11.2.2011 Репутация: 1 Всего: 1 |
Muerto, дайте красивый, изящный пример (иначе я не понимаю, с чего ваши протесты), а мы порадуемся.
Это сообщение отредактировал(а) KIRINDORF - 2.4.2011, 12:55 |
|||
|
||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
хватит спорить у кого "пи..ська" больше
у меня пока всё работает на сервере.. и во всех браузерах (основных) -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| Muerto |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1207 Регистрация: 23.9.2006 Репутация: 3 Всего: 4 |
KIRINDORF, вот вам пример в page.php в самом верху
Больше ничего не нужно. Ваши гет-вопросы отсылайте просто как заходите на сайт без всяких Id Т.е.
|
||||
|
|||||
| KIRINDORF |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 79 Регистрация: 11.2.2011 Репутация: 1 Всего: 1 |
Полагаю, что есть когда куки выключены. Когда же куки включены, id пойдет в них. Т.е. все стандартно. |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |