Доброй времени суток=)Помогите пожалуйста...не знаю почему так происходит ...вроде всё как в учебнике==) Проблема вот в чём..Пхп ругаеться на сессию PHP: <? session_start(); if (isset($_GET['summa'])) { header("Content-type: text/html; charset=windows-1251"); $summa=$_GET['summa']; if ($summa==$_SESSION['c']) echo 'true'; else cobra() ;} else cobra(); function cobra(){ $a = rand(1,10); $b = rand(1,10); $c=$a+$b; function word($n) { if ($n==1) $s ='ОДИН'; else if ($n==2) $s ='ДВА'; else if ($n==3) $s ='ТРИ'; else if ($n==4) $s ='ЧЕТЫРЕ'; else if ($n==5) $s ='ПЯТЬ'; else if ($n==6) $s ='ШЕСТЬ'; else if ($n==7) $s ='СЕМЬ'; else if ($n==8) $s ='ВОСЕМЬ'; else if ($n==9) $s ='ДЕВЯТЬ'; else $s ='ДЕСЯТЬ'; return $s;} $_SESSION['c']=$c; //print $c+"<br>"; //echo $a."+".$b; echo word($a)."+".word($b);} ?> Но если пишу её вот здесь PHP: if (isset($_GET['summa'])) { session_start(); header("Content-type: text/html; charset=windows-1251"); $summa=$_GET['summa']; То всё работает.. тоже самое и с header("Content-type: text/html; charset=windows-1251"); всё бы ничего но надо начать её до ветвления...как быть?...выручите пожалуйста Зарание благодарю..
Щас позвонил телепату, он сказал, что примерно прочитал текст возникающей ошибки и рекомендовал http://phpfaq.ru/headers хотя он не уверен.
function cobra(){ $a = rand(1,10); $b = rand(1,10); $c=$a+$b; function word($n) { if ($n==1) $s ='ОДИН'; else if ($n==2) $s ='ДВА'; else if ($n==3) $s ='ТРИ'; else if ($n==4) $s ='ЧЕТЫРЕ'; else if ($n==5) $s ='ПЯТЬ'; else ..... незакрытая скобка, не возвращаеш значение. используй IDE с подсветкой синтаксиса
Может лучше PHP: <? function word($n){ words = array ("НОЛЬ", "ОДИН", "ДВА", "ТРИ", "ЧЕТЫРЕ", "ПЯТЬ", "ШЕСТЬ", "СЕМЬ", "ВОСЕМЬ", "ДЕВЯТЬ", "ДЕСЯТЬ"); if (isset(words[$n])) return words[$n]; return false; }
Сппасибо большое.. оказались руки кривые=) И функция да=) спасибо за решение....самому своё не нравилось. Ну тогда ещё один вопрос то есть вместо session_start(); пишем session_register ?
Можно и вместо нее писать. Если session_start() не была вызвана до session_register(), то session_start() будет вызвана неявно без параметров.
У меня таким макаром передается код для картинки с кодом PHP: <? session_register("img_code"); $_SESSION['img_code'] = rand(1000, 9999); И все работет. С удовольствием посмотрю на другие варианты=)
admyx оба варианта выдают одинаковый результат. Для меня ничего не изменилось от того что я изменил пару букв. Все равно сессии у меня используются только в этом месте
Зачем предварительно регистрировать каждую переменную сессии, если можно один раз объявить session_start и все переменные добавлять в массив?
Я полностью согласен с тобой=) но она у меня и так регистрировалась только один раз. видимо когда я делал этот участок кода мне попался старый мануал=)
Возможно прописать чтоб сесия уничтожалась.. когда пользователь уходит в офф...? Или это не к чему?..(просто зачем сервак засорять)