Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Php 5 Помогите!

8.5K
29 июля 2006 года
Zmevius
34 / / 09.01.2006
Я только начал работать с 5ой версией, и решил оттестировать мой чат (Php 4.3) и он не за работал! выдает много ошибок. Потом я поставил тэст:
Код:
switch($mode)
{
case 'index':
    echo "Server:  http://".$_SERVER['HTTP_HOST'];
    echo " <br>Php self: ".$_SERVER['PHP_SELF'];
    $server =  "http://".$_SERVER['HTTP_HOST'];
    $phpself = $_SERVER['PHP_SELF'];
    $url = $server.$phpself;
    echo "<br>Url:  ".$url;
    echo "<a href=$url?mode=test>Go</a>";
break;
   
case 'test':
    echo "Ok!";
break;
   
 default:
    $mode = 'index';
 break;
}

при компиляции пишет что оно незнает переменной mode
Notice: Undefined variable: mode in z:\home\destroyer\www\test.php on line 4

Помогите пожалуста.

[COLOR="DarkRed"]==============
Оформляйте код!!!!![/COLOR]
10K
29 июля 2006 года
ChesnoK
57 / / 18.07.2006
Хм... может я конечно ошибаюсь, но по ходу дела у тебя переменной "mode" присвоено значение после switch'a, т.ев тот момент, когда ты проверяешь чему она равна она по сути дела ещё не существует. Абъяви её в начале сценария.
17K
29 июля 2006 года
Сиреневый Ежик
9 / / 01.06.2006
А mode передается в скрипт снаружи или объявляется где то внутри? Если снаружи, то возможно выключен RegisterGlobals (и правильно сделано), в таком случае нужно перед свитчем тебе вручную его вынуть, в данном случае из строки запроса, т.е. перед свитчем написать

$mode = $_GET['mode'];
304
29 июля 2006 года
Fenyx
707 / / 26.01.2005
[QUOTE=Сиреневый Ежик]А mode передается в скрипт снаружи или объявляется где то внутри? Если снаружи, то возможно выключен RegisterGlobals (и правильно сделано), в таком случае нужно перед свитчем тебе вручную его вынуть, в данном случае из строки запроса, т.е. перед свитчем написать

$mode = $_GET['mode'];[/QUOTE]
Согласен, первая же мысль об этом....
8.5K
30 июля 2006 года
Zmevius
34 / / 09.01.2006
 
Код:
$mode = $_GET['mode'];

Помогло, немного .. теперь он хоть выводит точто в пункте test.
Но ошибку выдает всеравно. Это что ж теперь придеться ссылки писать на разнае Php файлы со скриптами?
8
30 июля 2006 года
mfender
3.5K / / 15.06.2005
[QUOTE=Zmevius]
 
Код:
$mode = $_GET['mode'];

Помогло, немного .. теперь он хоть выводит точто в пункте test.
Но ошибку выдает всеравно. Это что ж теперь придеться ссылки писать на разнае Php файлы со скриптами?[/QUOTE]
А теперь о чём ошибка?
Вобщем-то в PHP5 есть структура try...catch... для обработки ошибок. Но по-старинке, если уж очень хочется (судя по твоим словам, с PHP4 ты знаком), эта строка должна выглядеть так:
 
Код:
$mode = isset($_GET['mode']) ? $_GET['mode'] : null;
8.5K
30 июля 2006 года
Zmevius
34 / / 09.01.2006
Большое спасибо! :-) тепрь никаких ошибок не выдает, непонимаю только почему они были, на 4,3 такого небыло просто по умолчанию показывало стартовую,а при ссылке показывало ту часть на которую идет ссылка. Может это ошибка в ДНК ;)
Еще раз спасибо.
8
31 июля 2006 года
mfender
3.5K / / 15.06.2005
Цитата:
тепрь никаких ошибок не выдает, непонимаю только почему они были, на 4,3 такого небыло


Вероятно, разные настройки уровня error_reporting.

1.8K
01 августа 2006 года
Валериус
190 / / 14.07.2006
Кстати, а зачем отключают RegisterGlobals? Безопасности для?
10K
02 августа 2006 года
ChesnoK
57 / / 18.07.2006
Кстати у меня подобная проблема только наоборот, я работаю с пятой версией, а на серванте установлена 4-ая. Так вот в чём проблема: у меня есть ф-ия
Код:
function link($i,$p,$b,$locate)
{
$site_adress = $GLOBALS['site_adress'];
 $link_index[0] = "";
 $link_index[1] = "<TD HEIGHT='30' WIDTH='180'><A CLASS='menu_link' HREF='$site_adress/index.php'>| На главную страницу |</A></TD>";
 $link_pred[0] = "";
 $link_pred[1] = "<TD WIDTH='210'><A CLASS='menu_link' HREF='java script:history.back();'>| На предыдущую страницу |</A></TD>";
 $link_back[0] = "";
 $link_back[1] = "<TD WIDTH='55'><A CLASS='menu_link' HREF='$site_adress/$locate'>| Взад |</A></TD>";
 print "<BR><BR><CENTER><TABLE BORDER='0'>
<TR ALIGN='center'>
$link_index[$i]
$link_pred[$p]
$link_back[$b]
</TR>
</TABLE></CENTER><BR><BR>"
;
}

потом я вызываю эту ф-ию, предаю ей параметры и на моём компе всё отлично, залил на сервант, а он пишет что-то типа "функция не вызвана".
8.5K
02 августа 2006 года
Zmevius
34 / / 09.01.2006
[QUOTE=mfender]Вероятно, разные настройки уровня error_reporting.[/QUOTE]
ага так оно и было я сравнил php.ini от 5ой и 4.3 там в Error handling and logging
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог