Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Проверять переменную, пока она не будет задана
Форумы портала PHP.SU » » Вопросы новичков » Проверять переменную, пока она не будет задана

Страниц (1): [1]
 

1. filkeith - 16 Ноября, 2011 - 09:35:54 - перейти к сообщению
Сделал вот такой обработчик ошибок (в каждом скрипте у меня после выполнения в $_SESSION[error]/[allright] записывается результат и потом с помощью jquery показывается.)
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.         session_start();
  3.  
  4.         if (isset($_SESSION[error]))
  5.                 {
  6.                 echo '<div class=\'error\'>'.$_SESSION[error].'</div>';
  7.                 unset($_SESSION[error]);
  8.                 }
  9.         elseif (isset($_SESSION[allright]))
  10.                 {
  11.                 echo '<div class=\'allright\'>'.$_SESSION[allright].'</div>';
  12.                 unset($_SESSION[allright]);
  13.                 }
  14. ?>

Проблема в том что у меня запускается какой либо скрипт и обработчик почти одновременно, в результате чего через раз, обработчик ошибок срабатывает быстрее основного скрипта, и соответственно результат не выводится. сначала думал сделать задержку между запуском скрипта в несколько секунд, НО разные скрипты работают с разной скорость, и вдруг работа скрипта привысит время выделенное на задержку, тогда ошибка тоже не будет показана. А ставить задержку большую глупо, ибо тогда отпадает нужда в js можно ж тогда просто страницу перезагрузить...
Вопрос: как в указанном выше скрипте сделать так что бы он так сказать "ждал" пока сесионные переменные не появятся и только потом срабатывал, т.е. в бесконенчм цикле проверял есть эта переменная или нет, и когда она появлялась то дальше уже выводил что надо. В голове так вроде всё ясно, а как не php сделать не могу допереть.
Заранее спасибо.
2. EuGen - 16 Ноября, 2011 - 10:26:11 - перейти к сообщению
filkeith пишет:
Проблема в том что у меня запускается какой либо скрипт и обработчик почти одновременно,

Сделайте так, чтобы не запускались одновременно, а ошибки и сообщения о них генерировались после ввода данных и их проверки.
3. filkeith - 17 Ноября, 2011 - 08:01:41 - перейти к сообщению
EuGen пишет:
Сделайте так, чтобы не запускались одновременно

Так я так и хочу, поэтому и спрашиваю как так сделать что бы не одновременно они запускались. Еще как вариант по окончанию каждого php скрипта вызывался js но пока не придумал как
4. EuGen - 17 Ноября, 2011 - 08:12:19 - перейти к сообщению
Делайте AJAX-запрос по событию, когда данные уже изменены.
5. filkeith - 17 Ноября, 2011 - 10:02:24 - перейти к сообщению
я сделал просто, во всех местах где формируется ошибка, поставил вызов JS функции проверки, вроде всё норм теперь работает

 

Powered by ExBB FM 1.0 RC1