Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как передать переменную в код подключаемый INCLUDE()
 
 автор: Sergmust   (26.10.2006 в 19:00)   письмо автору
 
 

Добрый день!

есть такой код

<?php
$test='TEST';
include ("other.php");
?>

файл other.php такой

<?php
echo ($test);
?>

Ничего не выводит.

Как мне добиться передачи этой переменной в код, подключаемый таким образом?

Спасибо!

   
 
 автор: DEM   (26.10.2006 в 19:03)   письмо автору
 
   для: Sergmust   (26.10.2006 в 19:00)
 

ну во первых, не echo ($test);, а echo "$test"; (вы забыли кавычки), а во вторых, я понмю на каком-то форуме уже спрашивали тако (давно), так пользователь загружал other.php, а не файл в котором он инклюдится...

   
 
 автор: Sergmust   (26.10.2006 в 19:13)   письмо автору
 
   для: DEM   (26.10.2006 в 19:03)
 

>ну во первых, не echo ($test);, а echo "$test"; (вы забыли кавычки),

Во первых echo ($test) будет работать, если есть что-нибудь в $test . :-)

> а во вторых, я понмю на каком-то форуме уже спрашивали тако (давно), так пользователь загружал other.php, а не файл в котором он инклюдится...

а из этого я ничего не понял...

Может я путано обьяснил
Не выводит ничего на экран код
<?php
$test='TEST';
include ("other.php");
?>

   
 
 автор: Alph[p]a   (26.10.2006 в 19:31)   письмо автору
 
   для: Sergmust   (26.10.2006 в 19:13)
 

Напиши свою функиция если дела совсем плохи...
А чё ты хочешь сделать?

   
 
 автор: elenaki   (26.10.2006 в 20:23)   письмо автору
 
   для: Alph[p]a   (26.10.2006 в 19:31)
 

если выключены register_globals в php.ini, то просто по имени нельзя вызывать переменную.
ее надо сделать глобальной $GLOBALS["test"] или сохранять ее в сессиях (механизм сессий
специально придуман для передачи переменных между файлами) или в куках, что может не
сработать, если у юзера они отключены или (сейчас в меня полетят тухлые помидоры) -
"включить" выключенные register_globals (а на серверах они частенько выключаются из
соображений безопасности) поставив вот это в конфигурационный файл:

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



### register_globals = off ### +++
//HTTP_GET_VARS
while (list($key, $val) = @each($_GET)) {
       $GLOBALS[$key] = $val;
}
//HTTP_POST_VARS
while (list($key, $val) = @each($_POST)) {
       $GLOBALS[$key] = $val;
}
//HTTP_POST_FILES
while (list($key, $val) = @each($_FILES)) {
       $GLOBALS[$key] = $val;
}
//$HTTP_SESSION_VARS
while (list($key, $val) = @each($_SESSION)) {
       $GLOBALS[$key] = $val;
}
### register_globals = off ### ---


почему у вас не работает, непонятно. а PHP стоит? проверяли?

   
 
 автор: Sergmust   (26.10.2006 в 21:56)   письмо автору
 
   для: elenaki   (26.10.2006 в 20:23)
 

Точно... Совсем стыдно... На моем хосте все заработало.. а там действительно register_globals = off было... Может еще какие камушки, завтра разберусь. А я уже совсем расстроился...

А нужно, чтобы в зависимости от внешнего условия запускать одну или другю часть включаемого кода. Все из-за роботов этих самых нехороших...

Спасибо большое!

   
 
 автор: Sergmust   (26.10.2006 в 22:06)   письмо автору
 
   для: elenaki   (26.10.2006 в 20:23)
 

Да , дело было именно в переменной.
Вот неожиданно...
Включил, больше ничего не менял - пошло.
Значит она для включаемого текста является глобальной.

   
 
 автор: Sergmust   (26.10.2006 в 22:41)   письмо автору
 
   для: Sergmust   (26.10.2006 в 22:06)
 

Фенька вот какая

Если пишу

<?php
$test='TEST';
include ("other.php");
?>

то работает

а если

<?php
$test='TEST';
include ("http://mysite/other.php");
?>

то код исполняется, а переменная не передается...
спасите...

   
 
 автор: Sergmust   (27.10.2006 в 11:05)   письмо автору
 
   для: Sergmust   (26.10.2006 в 22:41)
 

Полезно бывает и поспать:-)

Когда включение происходит по абсолютному пути, то включается не ИСХДНЫЙ код, а его РЕЗУЛЬТАТ.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования