почему не работают относительные пути?

helpme

Новичок
а почему не работают относительные пути?

хотя в большинстве случаев и они работают.

у меня вот такая проблема:

Warning: main(): Failed opening '' for inclusion (include_path='.;c:\php4\pear') in f:\home\cms\www\index.php on line 31

php-код в index.php:
PHP:
 <?php
	$url="";
	$link="";
    if($link==1) $url="inc/menu.php";
    if($link==2) $url="inc/files.php";
    if($link==3) $url="inc/about.php";
	if($link==4) $url="inc/gb.php";
	if($link==5) $url="inc/contact.php";
  include($url);
  ?>
что не так?
 

Фанат

oncle terrible
Команда форума
ты указываешь неверный путь.
и вообще, почему переменная называется $url? при чём здесь урл? ты знаешь, что это такое?
 

Andreika

"PHP for nubies" reader
PHP:
    $link=""; 
    if($link==1) $url="inc/menu.php";
исполнение произвольной программы - 5 баллов )
 

helpme

Новичок
почему путь неверный?
например в этом же index.php слева есть такой код, с помощью которого вставлен файл с меню:
PHP:
  <?php
  include('inc/menu.php');
  ?>
почему тогда он работает?

переменная $url зарезервирована чтоли???
она называется так просто, потому что я так захотел

объясни в чем я не прав, пожалуйста
 

Фанат

oncle terrible
Команда форума
ты неправв том, что переменные надо называть осмысленно.
а не так, как левая пятка захочет
 

ksnk

прохожий
Попробуй выполнить такой код.
PHP:
<?php 
  include(''); 
  ?>
Идентичность сообщений об ошибке не наводит на мысли?
 

helpme

Новичок
Фанат
я знаю, но в данном случае это не играет роли, я ее мог назвать хоть $sdfslkj43k5lj345 ;)

то есть нужно изменить путь include_path и получается все?

и че за директория pear?
 

helpme

Новичок
Фанат
я просто спать хочу
Andreika
я передаю значения в адресной строке методом GET .../index.php?link=число

чуть код подправил и имя переменной сменил, чтоб Фанат не возмушался,

бошка совсем не варит:

PHP:
 <?php
	$link=$_GET['link'];
    if($link==1) $inc="inc/menu.php";
    if($link==2) $inc="inc/files.php";
    if($link==3) $inc="inc/about.php";
	if($link==4) $inc="inc/gb.php";
	if($link==5) $inc="inc/contact.php";
  include($inc);
  ?>
 

Фанат

oncle terrible
Команда форума
helpme
а зачем тебе вообще нужен этот код?
почему бы просто не писать a href="menu.php" вместо a href="index.php?link=1"?
 

Andreika

"PHP for nubies" reader
helpme
я просил комментарий к коду, а не с скрипту )

а вопрос теперь исчерпан? ) а инициализацию $inc зачем спрятал?
 

helpme

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

Фанат

oncle terrible
Команда форума
Ну так сдай этот учебник в макулатуру и постарайся думать своей головой.
 

helpme

Новичок
нет вопрос не исчерпан:

1 строка: тут все понятно
2 строка: если значение переменной $link равно 1, то присвоить переменной $inc строковое значение "inc/menu.php"
....
последняя строка: включить содержимое какого-то файла в зависимости от значения переменной $inc, которой и присвоен относительный путь до файла
 

Andreika

"PHP for nubies" reader
helpme
и что? в таком варианте не работает? а чем твой второй вариант отличается от первого?
 

helpme

Новичок

ничем почти....
ладно все не могу спать пошел
завтра со свежей головой все сделаю и сам вам поведаю в чем был не прав

-~{}~ 05.03.06 02:53:

привет всем
да, сейчас проверил - все работает :) вчера я был не в себе
 

Andreika

"PHP for nubies" reader
helpme
еще раз перечитай первую версию своего скрипта и вторую.. каждый знак.. и найди разницу
 

helpme

Новичок
я понял ошибки, нужно было брать значения переменной $link из массива $_GET...
просто я вчера настолько спать хотел, что.... вообщем я вчера затупил

всем спасибо
 

texrdcom

Новичок
Да фанат ты их не переспориш и вообще я удивляюсь как
вы заметили я давно не писала на форуме но здесь такие кадры возникают что мне жаль прожитой жизни :)
 
Сверху