Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Arcsinus Гость
|
Добавлено: Пт Авг 20 2004 16:29 Заголовок сообщения: Форма + PHP |
|
|
Есть страница form.php с функционирующей выпадающей формой, с помощью которой можно переходить на страницы 1.htm, 2.htm, 3.htm.
Однако на form.php выскакивает предупреждение:
Warning: main(): Failed opening '' for inclusion (include_path='.:/usr/local/lib/php') in /www/vhosts/mysite.ru/html/form.php on line 6
=Вот код form.php:=
<html>
<head>
<title>Форма</title>
</head>
<body>
<?php global $list; include $list; ?>
<form method=get>
<select name="list" size="1">
<option value="1.htm"> 1</option>
<option value="2.htm"> 2</option>
<option value="3.htm"> 3</option>
</select> <input type="submit" value="Go" border="0" align="top">
</form>
</body>
</html>
==Вопросы: 1)Скрипт что-то не может открыть?
2)Как избавиться от Warning? Ведь скрипт работает! |
|
Вернуться к началу |
|
|
Гость
|
Добавлено: Пт Авг 20 2004 18:05 Заголовок сообщения: |
|
|
Переменная $list (пустой string) по дефолту пустая, а ты ее include. Вот и орет. Даже показывает две кавычки между которыми нет ничего. А когда скрипт может подрубить файл например 1.htm ошибка (точнее "внимание") пропадает.
Избавится от warning как собственно и от notice можно по крайней мере двумя способами.
1. Это подправить php.ini, там нужно найти раздел
Error handling and logging
Далее увидишь директиву error_reporting=.... Перед этим там написано как и что.
Если доступа к php.ini нет, то можно блокировать все это используя функцию int error_reporting ([int level]));
Если не хочешь читать про нее, ниже кусок из мануала, тоже показывающий как и что. Функцию если будешь писать, то пиши желательно как можно выше в скрипте.
-------------------------
// Отключить все сообщения об ошибках
error_reporting(0);
// Сообщать о простых ошибках во время выполнения
error_reporting (E_ERROR | E_WARNING | E_PARSE);
// Сообщение E_NOTICE может быть очень кстати (для сообщения о неинициализированных
// переменных или для отлова неправильного ввода имён переменных)
error_reporting (E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
// Сообщать обо всех ошибках PHP (использовать битовое 63 в PHP 3)
error_reporting (E_ALL);
--------------------------
Есть 3 способ: - избавится от warning. Исправить ситуацию.
Поменять строчку: <?php global $list; include $list; ?>
на что то типа: <?php global $list; if (!isset($list)) {$list="index.htm";} include $list; ?>
То есть если переменная не определена, то грузить по дефолту index.
Или так:
<?php global $list;
if (isset($list)) {include $list;}
?>
Если переменная определена, то грузить, в противном случае нет. |
|
Вернуться к началу |
|
|
Almaz
Зарегистрирован: 13.08.2004 Сообщения: 45
|
Добавлено: Пт Авг 20 2004 18:08 Заголовок сообщения: |
|
|
На сабж ответил, залогинится забыл. Вот я балбес |
|
Вернуться к началу |
|
|
Arcsinus Гость
|
Добавлено: Пн Авг 23 2004 13:56 Заголовок сообщения: Php+форма |
|
|
Almaz:
Вылечил. Заменил прежний скрипт на :
<?php global $list; if(!empty($list))include $list; ?>
Спасибо за помощь. |
|
Вернуться к началу |
|
|
Scaramouch
Зарегистрирован: 11.01.2004 Сообщения: 143 Откуда: Столица нашей Родины
|
Добавлено: Чт Авг 26 2004 16:18 Заголовок сообщения: отвыкай так писать |
|
|
попадешь на хостинг с register_globals = off (как и должно быть) и не будет твой скрипт работать.
Уже несколько лет рекомендуется использовать суперглобальные массивы, а старые статьи висят.
Вот новички и верят, что переменные автоматически регистрируются _________________ Ноги - это две лишние руки. |
|
Вернуться к началу |
|
|
Гость
|
Добавлено: Пт Авг 27 2004 08:47 Заголовок сообщения: |
|
|
2Arcsinus
Scaramouch дело говорит - не будет это работать на нормальном хостинге. Правильный вариант:
Код: | <?php $list = $_GET['list']; if(!empty($list))include $list; ?> |
|
|
Вернуться к началу |
|
|
dAnIK SeNT
Зарегистрирован: 11.06.2004 Сообщения: 43 Откуда: Казань
|
Добавлено: Пт Авг 27 2004 08:48 Заголовок сообщения: |
|
|
Это я был... _________________ Cисадмин - образ жизни. Программист - диагноз... |
|
Вернуться к началу |
|
|
Scaramouch
Зарегистрирован: 11.01.2004 Сообщения: 143 Откуда: Столица нашей Родины
|
Добавлено: Пн Авг 30 2004 10:33 Заголовок сообщения: Да и вообще |
|
|
такие дырки....
<?php $list = $_GET['list']; if(!empty($list))include $list; ?>
такая система навигации - полный маразм _________________ Ноги - это две лишние руки. |
|
Вернуться к началу |
|
|
|