Quidle
Полноценный новичок
PHP + SESSION + REXX
И ещё раз добрый день!
У меня возникла одна интересная проблема:
Мне надо было связать PHP с неким DOS-овским языком REXX.
Справился я с ней следующим образом:
создавал в PHP динамический rexx-файл, записывал туда строки кода, а затем exec-ом запускал, получал результаты и их обрабатывал.
Собственно, с помощью rexx обрабатывались только запросы к БД.
И всё бы ничего - всё замечательно работает...
До тех пор, пока мы не открываем сессию...
Далее следует интересная вещь:
если нажать на ссылку два или более раз (пока браузер не успел догрузить страницу) - весь проект вешается.
При разборе выяснилось, что вешается либо на session_start, либо на вызове функции, создающей и запускающей rexx-файл.
А вот причина этого для меня до сих пор остаётся загадкой.
Вот пример работы с сессией
-~{}~ 19.04.04 12:38:
Ах да, совсем забыл добавить:
В списке процессов остаётся висеть cmd.exe.
И ещё раз добрый день!
У меня возникла одна интересная проблема:
Мне надо было связать PHP с неким DOS-овским языком REXX.
Справился я с ней следующим образом:
создавал в PHP динамический rexx-файл, записывал туда строки кода, а затем exec-ом запускал, получал результаты и их обрабатывал.
Собственно, с помощью rexx обрабатывались только запросы к БД.
И всё бы ничего - всё замечательно работает...
До тех пор, пока мы не открываем сессию...
Далее следует интересная вещь:
если нажать на ссылку два или более раз (пока браузер не успел догрузить страницу) - весь проект вешается.
При разборе выяснилось, что вешается либо на session_start, либо на вызове функции, создающей и запускающей rexx-файл.
А вот причина этого для меня до сих пор остаётся загадкой.
Вот пример работы с сессией
PHP:
session_start ();
if ($user_id && $user_pass)
{
$arr = rexx (...)); //здесь передаю параметры функции, возвращаются результаты запроса.
if (md5 ($user_pass) == $arr[0][0])
{
$_SESSION['user_id'] = $user_id;
$_SESSION['user_pass'] = $user_pass;
$_SESSION['user_mode'] = 1;
}
else
echo '<font color=#FF0000>incorrect login or password</font><br>';
}
Ах да, совсем забыл добавить:
В списке процессов остаётся висеть cmd.exe.