Перейти к содержанию
СофтФорум - всё о компьютерах и не только

проблема с INCLUDE в php


Рекомендуемые сообщения

вот файл:

<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

помогите пожалуйста исправить.

Ссылка на комментарий
Поделиться на другие сайты

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. :g:

Ссылка на комментарий
Поделиться на другие сайты

отредактировал 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

а после них идет вложенная страница(та которая должна быть), вопрос, как убрать сообщения об ошибках?

Ссылка на комментарий
Поделиться на другие сайты

Сделай так:

<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>

Должно норм работать

Ссылка на комментарий
Поделиться на другие сайты

аа, если не сложно то можно обьяснить что значит и делает этот код по пунктам, а то хотелось бы понять, я в php начинающий.

я где то читал что както можно сделать так, что бы сообщения об ошибках ны выводидись пользователю, даже если они есть, а вот где никак найти не могу, может кто знает

Ссылка на комментарий
Поделиться на другие сайты

Отключить показ ошибок вобще просто! Есть пара вариантов:

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 - Файлы переданные в браузере

есть еще много чего, спрашивай, отвечу.

Изменено пользователем Gray Angel
Ссылка на комментарий
Поделиться на другие сайты

...Кроме $_GET есть еще 5 суперглобальных массивов:

$_POST - содержит переменные переданые методом post

$_COOKIE - куки переданые из браузера.

$_SERVER , $_ENVIRON - Серверные переменные

$_FILES - Файлы переданные в браузере

есть еще много чего, спрашивай, отвечу......

да есть ещё $_SESSION

и не $_ENVIRON а $_ENV

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...