Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Notice: Undefined variable: PHP_SELF in .... Как побороть сыпящиеся ошибки 
:(
    Опции темы
клоп
Дата 28.2.2006, 10:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 28.2.2006
Где: г. Череповец

Репутация: нет
Всего: нет



Есть кусок кода (файл test.php)

Код

<?PHP
 
if(!$PHP_SELF){
       if($HTTP_GET_VARS)          {extract($HTTP_GET_VARS, EXTR_PREFIX_SAME, "get_");}
       }
if($PHP_SELF == ""){ $PHP_SELF = $HTTP_SERVER_VARS[PHP_SELF]; }
 
?>
<html>
<BODY>
 
<center><a href="?do=link"><b>Ссылка2</b></a></center><br><br>
<?PHP
if($do == "link"){  echo"<br><center><b>Вы в ссылке2</b></center>";}
else{  echo"<br><center><b>Вы на главной</b></center>"; }
?>

<br>
<center><a href="?"><b>В начало</b></a></center><br><br>
</body>
</html>


Не могу понять как побороть сыпящиеся ошибки:


Notice: Undefined variable: PHP_SELF in c:\program files\apache group\apache\htdocs\test.php on line 3
Notice: Undefined variable: PHP_SELF in c:\program files\apache group\apache\htdocs\\test.php on line 6
Notice: Use of undefined constant PHP_SELF - assumed 'PHP_SELF' in c:\program files\apache group\apache\htdocs\test.php on line 6


Соответственно если в php.ini ставлю error_reporting = E_ALL & ~E_NOTICE то ничего не видно но в errorlog Апача они все равно пишуться, раздувая размер файла.

Это сообщение отредактировал(а) клоп - 28.2.2006, 10:48
--------------------
Всякая чепуха посещает голову, когда она пуста ....
PM MAIL WWW   Вверх
Ivushka
Дата 28.2.2006, 10:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 28.10.2005
Где: Москва

Репутация: 2
Всего: 2



клоп
есть кнопка КОД
и поиск рулит
http://forum.vingrad.ru/index.php?showtopi...mp;#036;_server
--------------------
Программист - это диагноз!
PM MAIL ICQ   Вверх
клоп
Дата 28.2.2006, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 28.2.2006
Где: г. Череповец

Репутация: нет
Всего: нет



Цитата(Ivushka @ 28.2.2006, 10:22)
клоп
есть кнопка КОД
и поиск рулит
http://forum.vingrad.ru/index.php?showtopi...mp;#036;_server

Поиск рулит!

Я видел этот топик и пытался менять $PHP_SELF на $_SERVER['PHP_SELF'], но тогда ссылки переставали работать smile
--------------------
Всякая чепуха посещает голову, когда она пуста ....
PM MAIL WWW   Вверх
Guedda
Дата 28.2.2006, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: 13
Всего: 78



Напиши, как ты использовал
Код

$_SERVER['PHP_SELF']

???


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
Ivushka
Дата 28.2.2006, 11:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 28.10.2005
Где: Москва

Репутация: 2
Всего: 2



клоп
объясни что ты хочеш сделать
для обычного перехода по ссылкам не нужен этот код
Код

<?PHP
 
if(!$PHP_SELF){
       if($HTTP_GET_VARS)          {extract($HTTP_GET_VARS, EXTR_PREFIX_SAME, "get_");}
       }
if($PHP_SELF == ""){ $PHP_SELF = $HTTP_SERVER_VARS[PHP_SELF]; }
 
?>


--------------------
Программист - это диагноз!
PM MAIL ICQ   Вверх
клоп
Дата 28.2.2006, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 28.2.2006
Где: г. Череповец

Репутация: нет
Всего: нет



Цитата(Ivushka @ 28.2.2006, 11:13)
клоп
объясни что ты хочеш сделать
для обычного перехода по ссылкам не нужен этот код
Код

<?PHP
 
if(!$PHP_SELF){
       if($HTTP_GET_VARS)          {extract($HTTP_GET_VARS, EXTR_PREFIX_SAME, "get_");}
       }
if($PHP_SELF == ""){ $PHP_SELF = $HTTP_SERVER_VARS[PHP_SELF]; }
 
?>


Хочу чтобы скрипт отслеживал действия пользователя и согласно им выводил на страницу ту или иную инфу. Грубо говоря сайт в одной странице, отслеживается переменная переданная методом GET и выводиться инфа соответствующая значению этой переменной. В моем примере (1-й пост) все это работает но сыпятся ошибки которые я не могу побороть. Может быть я делаю все не так, есть другие проверенные методы .. smile
Добавлено @ 11:49
Цитата(Guedda @ 28.2.2006, 10:52)
Напиши, как ты использовал
Код

$_SERVER['PHP_SELF']

???

Я просто тупо вставлял $_SERVER['PHP_SELF'] вместо $PHP_SELF, в следствии чего ссылки переставали работать.
--------------------
Всякая чепуха посещает голову, когда она пуста ....
PM MAIL WWW   Вверх
smartov
Дата 28.2.2006, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 7
Всего: 259



клоп, ну ты приколист smile Нельзя же так через задницу делать.

Зачем по-твоему есть массив $_GET? Именно для того чтобы получать переменные get (точно так же есть массив $_POST).
И весь твой код сводится к
Код

<html>
<BODY>
 
<center><a href="?do=link"><b>Ссылка2</b></a></center><br><br>
<?PHP
if($_GET['do'] == "link"){  echo"<br><center><b>Вы в ссылке2</b></center>";}
else{  echo"<br><center><b>Вы на главной</b></center>"; }
?>
<br>
<center><a href="?"><b>В начало</b></a></center><br><br>
</body>
</html>

PM MAIL   Вверх
Ivushka
Дата 28.2.2006, 11:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 28.10.2005
Где: Москва

Репутация: 2
Всего: 2



клоп
ты когда делаеш ссылку с параметрами то значения параметров передаються на страницу и не надо их ловить GET или POST

при передачи параметров ссылкой их просто ловят
Код

zsp_trips.php?str=asidlijsdfkl&Id_Pr=0

echo $str." ".$Id_Pr;

выведет "asidlijsdfkl 0"

Это сообщение отредактировал(а) Ivushka - 28.2.2006, 11:55
--------------------
Программист - это диагноз!
PM MAIL ICQ   Вверх
клоп
Дата 28.2.2006, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 28.2.2006
Где: г. Череповец

Репутация: нет
Всего: нет



Цитата(smartov @ 28.2.2006, 11:52)
клоп, ну ты приколист smile Нельзя же так через задницу делать.

И весь твой код сводится к
Код

<html>
<BODY>
 
<center><a href="?do=link"><b>Ссылка2</b></a></center><br><br>
<?PHP
if($_GET['do'] == "link"){  echo"<br><center><b>Вы в ссылке2</b></center>";}
else{  echo"<br><center><b>Вы на главной</b></center>"; }
?>
<br>
<center><a href="?[color=red]do=#[/color]"><b>В начало</b></a></center><br><br>
</body>
</html>

smartov огромное спасибо!!! Все работает без малейших ошибок. Правда пришлось еще определить както переменную перехода по ссылке =В начало= (пытался пометить красным в цитате).

А кусок кода

Код

<?PHP
 
if(!$PHP_SELF){
       if($HTTP_GET_VARS)          {extract($HTTP_GET_VARS, EXTR_PREFIX_SAME, "get_");}
       }
if($PHP_SELF == ""){ $PHP_SELF = $HTTP_SERVER_VARS[PHP_SELF]; }
 
?>


Я выловил его в инете про который было написано что если в php.ini - register_globals = Off то вставляй его и все заработает. Задумываться сильно не стал. Попробывал, получилось. Даже создал сайт www.severstalbasket.ru применив эту непонятную уже сейчас затею, которую нужно будет переделывать, благо у хостера error_log не пишется.
--------------------
Всякая чепуха посещает голову, когда она пуста ....
PM MAIL WWW   Вверх
клоп
Дата 28.2.2006, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 28.2.2006
Где: г. Череповец

Репутация: нет
Всего: нет



Код

<html>
<BODY>
 
<center><a href="?do=link"><b>Ссылка2</b></a></center><br><br>
<?PHP
if($_GET['do'] == "link"){  echo"<br><center><b>Вы в ссылке2</b></center>";}
else{  echo"<br><center><b>Вы на главной</b></center>"; }
?>
<br>
<center><a href="?do=#"><b>В начало</b></a></center><br><br>
</body>
</html>


smartov как уже писал все работает без ошибок, но при первом запуске файла test.php пока не была нажата ни одна ссылка, выкидывается предупреждение-ошибка:


Notice: Undefined index: do in c:\program files\apache group\apache\htdocs\test.php on line 6
--------------------
Всякая чепуха посещает голову, когда она пуста ....
PM MAIL WWW   Вверх
Ivushka
Дата 28.2.2006, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 28.10.2005
Где: Москва

Репутация: 2
Всего: 2



Код

if(isset($_GET['do']))

--------------------
Программист - это диагноз!
PM MAIL ICQ   Вверх
krulik
Дата 28.2.2006, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 132
Регистрация: 14.1.2006
Где: Украина, Житомир

Репутация: 2
Всего: 4



Может так написать:
Код

if(isset($_GET['do']) && $_GET['do']== "link")


ЗЫ: пока я писал этот пост то уже появилось сообщение от Ivushka.Сорри

Это сообщение отредактировал(а) krulik - 28.2.2006, 13:35
--------------------
Каждый день несет в себе частицу вечности (Паоло Коэльо)Если вам плюют в спину, значит вы в переди! (Конфуций)Все, что имеет форму, может исчезнуть в одно мгновение (Харуки Мураками)
PM MAIL ICQ   Вверх
CyClon
Дата 28.2.2006, 14:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 3.12.2005

Репутация: 3
Всего: 4



Код
<?php

switch ($_GET['go']) {
    case stories:
    include("mods/stories/index.php");
    break;
    case account:
    include("mods/account/index.php");
    break;
    case about:
    include("mods/about/index.php");
    break;
    case default:
    include("mods/news/index.php");
    break;
}

?>


ИМХО самый красивый и безопасный вариант для навигации.


--------------------
user posted image
PM   Вверх
клоп
Дата 28.2.2006, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 28.2.2006
Где: г. Череповец

Репутация: нет
Всего: нет



Я сейчас попарился и сваял законченный (благодаря Вам мои коллеги) вариант навигации. Ошибок и сообщений нет вообще. При желании можно сделать проверку, где если юзер в уже на данной ссылке то эта ссылка на странице превращается в обычный раскрашенный текст.

Код (берите на здоровье):

Код

<html>
<BODY>
<center><b>

<a href="?">В начало</b></a><br><br> 
<a href="?do=link">Ссылка1</a><br><br>
<a href="?do=link2">Ссылка2</a><br><br>
<a href="?do=link3">Ссылка3</a></b><br><br>



<?PHP
if(isset($_GET['do'])){
if($_GET['do'] == "link"){  echo"<br><b>Вы в ссылке1</b>";}
elseif($_GET['do'] == "link2"){  echo"<br><b>Вы в ссылке2</b>";}
elseif($_GET['do'] == "link3"){  echo"<br><b>Вы в ссылке3</b>";}
}
else{  echo"<br><b>Главная страница</b>";}
?>
<br>
</center>
</body>
</html>


Насчет безопасности не знаю, может кто знающий поделится в этом плане.
--------------------
Всякая чепуха посещает голову, когда она пуста ....
PM MAIL WWW   Вверх
Ivushka
Дата 28.2.2006, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 28.10.2005
Где: Москва

Репутация: 2
Всего: 2



Зачепятельно что работает)

только я бы всеже сделала через case)))

--------------------
Программист - это диагноз!
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0579 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.