Maikl Korleone Опубликовано 12 января, 2006 Жалоба Поделиться Опубликовано 12 января, 2006 вот файл: <html><head><title>Страница</title><meta http-equiv="Content-Type" content="text/html; charset=windows-1251"></head><body><img src="images/otstop.gif" width="20%" height="3" align="left"> <table width="60%" border="1" cellspacing="0" bordercolor="#85BCF3"> <tr> <td width="70%" height="100" align="center" valign="top"><img src="images/head.jpg" width="492" height="100"></td> </tr> <tr> <td width="70%" height="32" align="right" valign="bottom"><img src="images/fil.gif" width="112" height="32"><img src="images/act.gif" width="89" height="32"><img src="images/wal.gif" width="64" height="32"><img src="images/sound.gif" width="131" height="32"> </td> </tr> <tr> <td width="70%">[color=#FF0000]<?php$url = "";if ($link == 1) { INCLUDE("name1.html");}if ($link == "") { INCLUDE("in.htm");}?>[/color]</td> </tr> <tr> <td width="70%"></td> </tr></table></body></html> переменная $link должна считываться из строки браузера и в звисимости от значения вкладывать одну из страниц, но почемуто всегда выводится вторая страница, даже когда в строке http://localhost/saints/index.php?link=1, и еще выводятся сообщения об ошибках: Notice: Undefined variable: link in z:\home\localhost\www\saints\index.php on line 22 Notice: Undefined variable: link in z:\home\localhost\www\saints\index.php on line 23 помогите пожалуйста исправить. Ссылка на комментарий Поделиться на другие сайты Поделиться
LifeOnNet Опубликовано 12 января, 2006 Жалоба Поделиться Опубликовано 12 января, 2006 Notice: Undefined variable: link in z:\home\localhost\www\saints\index.php on line 22 для произведения действий со значением EGPCS (Environment, GET, POST, Cookie, Server) переменной как с глобальной нужно в php.ini установить register_globals в значение on. Начиная с версии PHP 4.2.0, значением по умолчанию для этой директивы является off. Ссылка на комментарий Поделиться на другие сайты Поделиться
Darhazer Опубликовано 12 января, 2006 Жалоба Поделиться Опубликовано 12 января, 2006 Замени $link на $_GET['link'] Ссылка на комментарий Поделиться на другие сайты Поделиться
Maikl Korleone Опубликовано 12 января, 2006 Автор Жалоба Поделиться Опубликовано 12 января, 2006 отредактировал php.ini и заменил $link на $_GET['link'], теперь вложения работают нормально, но если ввсети адрес файла без параметра то выводятся строки: Notice: Undefined variable: link in z:\home\localhost\www\saints\index.php on line 22 Notice: Undefined variable: link in z:\home\localhost\www\saints\index.php on line 23 а после них идет вложенная страница(та которая должна быть), вопрос, как убрать сообщения об ошибках? Ссылка на комментарий Поделиться на другие сайты Поделиться
Gray Angel Опубликовано 12 января, 2006 Жалоба Поделиться Опубликовано 12 января, 2006 Сделай так: <html><head><title>Страница</title><meta http-equiv="Content-Type" content="text/html; charset=windows-1251"></head><body><img src="images/otstop.gif" width="20%" height="3" align="left"> <table width="60%" border="1" cellspacing="0" bordercolor="#85BCF3"> <tr> <td width="70%" height="100" align="center" valign="top"><img src="images/head.jpg" width="492" height="100"></td> </tr> <tr> <td width="70%" height="32" align="right" valign="bottom"><img src="images/fil.gif" width="112" height="32"><img src="images/act.gif" width="89" height="32"><img src="images/wal.gif" width="64" height="32"><img src="images/sound.gif" width="131" height="32"> </td> </tr> <tr> <td width="70%"><?php$url = "";if (isset($_GET['link']) && $_GET['link'] == 1){ INCLUDE("name1.html");}else INCLUDE("in.htm");?></td> </tr> <tr> <td width="70%"></td> </tr></table></body></html> Должно норм работать Ссылка на комментарий Поделиться на другие сайты Поделиться
Maikl Korleone Опубликовано 13 января, 2006 Автор Жалоба Поделиться Опубликовано 13 января, 2006 аа, если не сложно то можно обьяснить что значит и делает этот код по пунктам, а то хотелось бы понять, я в php начинающий. я где то читал что както можно сделать так, что бы сообщения об ошибках ны выводидись пользователю, даже если они есть, а вот где никак найти не могу, может кто знает Ссылка на комментарий Поделиться на другие сайты Поделиться
Gray Angel Опубликовано 13 января, 2006 Жалоба Поделиться Опубликовано 13 января, 2006 (изменено) Отключить показ ошибок вобще просто! Есть пара вариантов: 1) поставить в начале пхп кода строку error-reporting(0); в этом случае все ошибки твоего кода будут скрываться. 2) перед командой которая потенциально может вызвать ошибку нужно поставить знак собаки @ тогда ошибки в этой команде отображаться не будут. Так же тебе может понадобиться отлов ошибок на команду: После команды точка с запятой не ставится, ставится or через пробел и ОДНА команда, чаще die //Попробуем открыть фаил:$fhandle = @fopen("file_path","r") or die("Ошибка открытия файла");if (!$fhandle) die("Не удалось открыть фаил");//Тут выполняем операции с файлом//По окончании работы фаил лучше закрыть:@fclose($fhandle); Функция die выходит из обработки файла и следующая информация (даже если она не пхп) НЕ выводится в браузер. Есть функция exit() , но начиная с версии пхп 4.2 эти две функции действуют абсолютно одинаково. И у обоих в параметре можно передать завершающую строку, а можно не передовать. Объясняю код: $url = ""; //Было у тебя, в подфайлах думаю нужно...//Проверяем условиеif (isset($_GET['link']) //isset() проверяет переменную на то что она существует. Противоположная функция ей empty()&& //Оператор логическое И в пхп логическое ИЛИ пишется ||$_GET['link'] == 1) //$_GET Это суперглобальный масив содержит переменные переданые в строке браузера{ INCLUDE("name1.html");}else INCLUDE("in.htm"); Кроме $_GET есть еще 5 суперглобальных массивов: $_POST - содержит переменные переданые методом post $_COOKIE - куки переданые из браузера. $_SERVER , $_ENV - Серверные переменные $_FILES - Файлы переданные в браузере есть еще много чего, спрашивай, отвечу. Изменено 13 января, 2006 пользователем Gray Angel Ссылка на комментарий Поделиться на другие сайты Поделиться
Dimon#ic Опубликовано 13 января, 2006 Жалоба Поделиться Опубликовано 13 января, 2006 ...Кроме $_GET есть еще 5 суперглобальных массивов: $_POST - содержит переменные переданые методом post $_COOKIE - куки переданые из браузера. $_SERVER , $_ENVIRON - Серверные переменные $_FILES - Файлы переданные в браузере есть еще много чего, спрашивай, отвечу...... да есть ещё $_SESSION и не $_ENVIRON а $_ENV Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти