Почему не работает session_start() в php-скрипте, вызываемом с помощью JavaScript?

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

zakiyanov

Новичок
Почему не работает session_start() в php-скрипте, вызываемом с помощью JavaScript?

Почему php-скрипты, загружаемые Ява-Скриптом, не хотят работать с текущими сессиями? :(

Как получить доступ к текущей сессии (имея session_id) в вызываемом php-скрипте ?????


php-скрипт вызываю таким кодом:
.......................................................
span = document.body.appendChild(document.createElement("SPAN"));//создаю элемент страницы, в котором буду вызывать php-скрипт для обработки событий
span.id="span";
span.style.display="none";
span.innerHTML = <s'+'cript id="myjava"></' + 'script>';
...
document.getElementById('myjava').src ="ОБРАБОТЧИК.php; //загруженный таким образом php-файл не выполняется, если в нем присутствует session_start()
.......................................................

Помогите, пожалуйста!
 

Фанат

oncle terrible
Команда форума
Как получить доступ к текущей сессии (имея session_id) в вызываемом php-скрипте ?????
точно так же, как в любом другом.
таким образом php-файл не выполняется, если в нем присутствует session_start()
ищи в нем ошибку
 

Фанат

oncle terrible
Команда форума
в session_start() ошибку искать!?
в скрипте.
без session_start() ПХП-скрипт выполняется прекрасно без ошибок.
и для чего ты мне это сообщаешь?

-~{}~ 23.02.07 14:36:

Дружочек.
Я одного не пойму - зачем ты мне все это рассказываешь.
Ты сам прекрасно в курсе, что session_start() вызывает в твоем скрипте, по твоим словам, какую-то ошибку.
И при этом наотрез отказываешься даже пытаться её обнаружить, не говоря уже о том, чтобы исправить.
Ты можешь как-то логически объяснить свое поведение?
 

zakiyanov

Новичок
Ты сам прекрасно в курсе, что session_start() вызывает в твоем скрипте, по твоим словам, какую-то ошибку.
И при этом наотрез отказываешься даже пытаться её обнаружить, не говоря уже о том, чтобы исправить.
Ты можешь как-то логически объяснить свое поведение?
Я не знаю,как понять, что за ошибка.
 

Фанат

oncle terrible
Команда форума
Запустить скрипт в браузере не пробовал?
лог ошибок веб-сервера для тебя - тайна за семью печатями?
 

zakiyanov

Новичок
Браузер ошибок не показывает. В error.log тоже никаких записей не добавляется.
 

dimagolov

Новичок
а что за такой хитрый метод загрузки?
Код:
document.getElementById('myjava').src ="ОБРАБОТЧИК.php;
таким образом очень извращенно эмулируется подгрузка дополнительного JS-скрипта в имеющийся документ, фактически можно было просто написать:
Код:
<script language="JavaScript" src="ОБРАБОТЧИК.php" type="text/javascript"></script>
да, если в нем были php - инструкции оно обработаются, но что касается сессии, то по-идее она останется той же, что и в главном документн, в который скрипт подгружается
 

zakiyanov

Новичок
Автор оригинала: dimagolov
а что за такой хитрый метод загрузки?
Код:
document.getElementById('myjava').src ="ОБРАБОТЧИК.php;
таким образом очень извращенно эмулируется подгрузка дополнительного JS-скрипта в имеющийся документ...
Таким способом без перезагрузки страницы и открытия дополнительных окон динамически подгружаются нужные ПХП-файлы, обрабатывающие действия пользователя сайта.

да, если в нем были php - инструкции оно обработаются, но что касается сессии, то по-идее она останется той же, что и в главном документн, в который скрипт подгружается
По идее, текущая сессия (видная на странице) должна быть видна также и в подгруженном на страницу ПХП-коде, но он ее не видит!!! А вызов таких функций, как session_start() или error_reporting(E_ALL) по непонятной и невидимой для меня причине блокируют выполнение подгружаемого ПХП-кода.
 

dimagolov

Новичок
Автор оригинала: zakiyanov
Таким способом без перезагрузки страницы и открытия дополнительных окон динамически подгружаются нужные ПХП-файлы, обрабатывающие действия пользователя сайта.
а почему надо извращаться, а не использовать AJAX или иные его реализации?
по крайней мере из проблем предложенного тобой решения я сразу вижу то, что:
1. php может генерировать только JS код, который потом на клиенте надо будет вызывать
2. не уверен будет ли у подгружаемого скрипта событие onload, а без этого можно только гадать когда он загрузится и будет готов к исполнению
 

zakiyanov

Новичок
>а почему надо извращаться, а не использовать AJAX или иные его реализации?
До этого момента мне казалось, что мой код проще и лучше AJAX.

>1. php может генерировать только JS код, который потом на клиенте надо будет вызывать

Совершенно верно, делается это так:
//функция удаляющая абзац на веб-странице
function deleteParagraph(paragraph_id){
updated=0;//флаг обновления. принимает значение 1, когда ПХП-скрипт загружен
createSpan();
document.getElementById('myjava').src=
"businesslogic/actions/paragraph_handler/delete_paragraph.php?paragraph_id="+paragraph_id;
interval=setInterval("deleteParagraph1("+paragraph_id+")", 5);
}
}
function deleteParagraph1(paragraph_id) {
if(updated==1) {//скрипт загружен
deleteParagraphInDatabase();//JS-функция из загруженного ПХП-скрипта
deleteSpan();
if(interval)clearInterval(interval);//останавливаю вызовы функции deleteParagraph1
}
}

>2. не уверен будет ли у подгружаемого скрипта событие onload, а без этого можно только гадать когда он загрузится и будет готов к исполнению [/QUOTE]
По идее, когда скрипт загрузится, он установит флаг updated==1, чем подтвердит готовность к исполнению
 

zakiyanov

Новичок
Кто подскажет, как в загружаемом скрипте получить доступ к текущей сессии, вышлю по Вебмани в благодарность 5 баксов (возможен торг)
 

Фанат

oncle terrible
Команда форума
Апокалипсис ты от него торможением заразился?
срочно таблетку какую-нибудь прими
 

zakiyanov

Новичок
Автор оригинала: Апокалипсис
zakiyanov
подскажу бесплатно. print_r($_SESSION);
Функция print_r($_SESSION); распечатывает данные сессии на главной странице. А загружаемый на эту страницу ПХП-файл сессии не видит и, соответственно, данных сессии тоже.
 

Фанат

oncle terrible
Команда форума
Браузер ошибок не показывает. В error.log тоже никаких записей не добавляется.
Вообще, мне нравится тональность этого ответа.
Напоминает,мля, ответ двоечника на вопрос учителя - учил?
- Учил!
Лишь бы отбрехаться!

НЕ ПОНИМАЮТ люди, что школа кончилась. что учителя, которому нужно было, чтобы балбес хоть что-то знал - БОЛЬШЕ НЕТУ. Что теперь, если ТЕБЕ что-то нужно, то НИКТО за тебя это не сделает.
Но нет. Человеку не нужно найти ошибку. Ему надо быстро отрапортовать. error.log пустой. при том, что пустым он не может быть по определению. при том, что дефолтное название у этого файла совсем другое. при том, что НИКОМУ вообще не интересно знать выводит ли пхп какие-то ошибки.

но эти люди не понимают.
они думают, что им велят посмотреть в еггор лог потому, что ошибка интересна кому-то на форуме.
они не понимают, что ошибка нужна ИМ САМИМ!

единственный способ что-то исправить в своей программе, который они знают - это вывалить кучку куда и задать самый гениальный вопрос всех времён "пачиму ниработаит?"
причём эти люди очень старательные. Скажешь посмотреть в лог ошибок - посмотрят. Скажешь поставить команду на вывод всех ошибок - поставят. И снова будут преданно смотреть в глаза С ЧУВСТВОМ ВЫПОЛНЕННОГО ДОЛГА! Он же честно сделал что дядя просил!
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху