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

Форум PHP

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

 

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

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

тема: параметры get
 
 автор: Spenser   (05.12.2007 в 20:57)   письмо автору
 
 

Всем привет!
вот какая ситуация:
есть файл index.php в нем подключается файл first.php (include('first.php');)
а в файле first.php подключается файл second.php (include('second.php');)
и в последнем вывожу переменную $_GET ( echo $_GET['temp_max']) а на странице выдается сообщение: Notice: Undefined index: temp_max

почему так происходит???

   
 
 автор: bronenos   (05.12.2007 в 21:09)   письмо автору
 
   для: Spenser   (05.12.2007 в 20:57)
 

нет такой переменной значит в адресе

   
 
 автор: Spenser   (05.12.2007 в 21:12)   письмо автору
 
   для: bronenos   (05.12.2007 в 21:09)
 

да в том то и дело что переменная точно есть.
а вот если выводить переменную в first.php то она нормально выводиться.

может тут чтото с уровнем вложенности? или чтото в этом роде?

   
 
 автор: Spenser   (05.12.2007 в 21:20)   письмо автору
 
   для: Spenser   (05.12.2007 в 20:57)
 

вот реальный код
index.php

<?php

include("includes/first.php");

?>


first.php


//какой то еще код
elseif (isset($_GET['action']) && ($_GET['action'] == 'get_result') && (isset($_GET['lab'])) && ($_GET['lab']) > 0)
{
    
    include("labs/lab_2/result.php");
    
}


result.php


<?
echo $_GET['temp_max'];
?>


а вот урл ?temp_max=20&temp_step=10&action=get_result&lab=2

   
 
 автор: Spenser   (05.12.2007 в 23:34)   письмо автору
 
   для: Spenser   (05.12.2007 в 21:20)
 

никто не может подсказать???

   
 
 автор: bronenos   (05.12.2007 в 23:52)   письмо автору
 
   для: Spenser   (05.12.2007 в 23:34)
 

хз-хз...

   
 
 автор: sim5   (06.12.2007 в 09:02)   письмо автору
 
   для: Spenser   (05.12.2007 в 23:34)
 

В result.php - print_r($_GET);, что получите?

   
 
 автор: Spenser   (06.12.2007 в 21:46)   письмо автору
 
   для: sim5   (06.12.2007 в 09:02)
 

выдает:

Array ( )

   
 
 автор: sim5   (07.12.2007 в 02:28)   письмо автору
 
   для: Spenser   (06.12.2007 в 21:46)
 

А должно быть Array ( [temp_max] => 20 [temp_step] => 10 [action] => get_result [lab] => 2 ), если
в result.php кроме echo $_GET['temp_max']; более ничего нет.

   
 
 автор: Spenser   (08.12.2007 в 14:46)   письмо автору
 
   для: sim5   (07.12.2007 в 02:28)
 

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

   
 
 автор: sim5   (08.12.2007 в 14:56)   письмо автору
 
   для: Spenser   (08.12.2007 в 14:46)
 


elseif (isset($_GET['action']) && ($_GET['action'] == 'get_result') && (isset($_GET['lab'])) && ($_GET['lab']) > 0) 

    //если входим значит массив $_GET не пустой  
    include("labs/lab_2/result.php");
   //вопрос, куда могу пропасть значения массива
   //если в result.php кроме его вывода ничего нет  
 }

У меня ничего не пропадает, не по собственной же инициативе $_GET сбрасывает свои значения. У вас точно не происходит перехода, например, до вывода переменной?

   
 
 автор: Spenser   (08.12.2007 в 15:17)   письмо автору
 
   для: sim5   (08.12.2007 в 14:56)
 

перехода нет. этот урл с данными передается из флеш. т.е. после выполнения флеш ролика идет переадресация по данному урлу.

   
 
 автор: sim5   (08.12.2007 в 15:23)   письмо автору
 
   для: Spenser   (08.12.2007 в 15:17)
 

Даже не знаю, если только принудительно не очистить массив. У вас ведь только подключение файла произошло, причем по условию наличия переменных этого массива, почему он у вас пропадает именно в это время? Значит причина в подключаемом файле.

   
 
 автор: Spenser   (08.12.2007 в 15:31)   письмо автору
 
   для: sim5   (08.12.2007 в 15:23)
 

понятно.но я даже не знаю что тут можно сделать.

   
 
 автор: sim5   (08.12.2007 в 15:34)   письмо автору
 
   для: Spenser   (08.12.2007 в 15:31)
 

А что у вас в этом файле? И если вывод этой переменной до подключения - она ведь существует еще?

   
 
 автор: Spenser   (08.12.2007 в 15:42)   письмо автору
 
   для: sim5   (08.12.2007 в 15:34)
 

не совсем понял. вы о каком файле? result.php? я сделал специально чтобы проверить перенес вывод переменных temp_max temp_step во втором файле, но они все равно не выводятся. т.е. получается что данные переданые флешом не передаются. вернее не все, action и lab нормально передаются и обрабатываются потому что срабатывает условие.

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

   
 
 автор: sim5   (08.12.2007 в 15:54)   письмо автору
 
   для: Spenser   (08.12.2007 в 15:42)
 

Ну проверте сразу до подключений - что вы в массиве GET получаете. Возможно ее значение пустое.

   
 
 автор: гость   (08.12.2007 в 16:57)   письмо автору
 
   для: sim5   (08.12.2007 в 15:54)
 

+1

Скорее всего переменная и правда не определенна, или просто где-то намудрлии с названиями.
Если переменная из первого файла видна попробуйте в первом фале сделать что-то вроде

<? $temp_max'=$_GET['temp_max']; ?>

И в последнем уже запросить $temp_max;

   
 
 автор: Spenser   (08.12.2007 в 20:26)   письмо автору
 
   для: sim5   (08.12.2007 в 15:54)
 

вот какая штука получается:
в первом файле сделал так

if (isset($_GET['action']) && ($_GET['action'] == 'get_result') && (isset($_GET['lab'])) && ($_GET['lab']) > 0)
{
    $sql = mysql_query("SELECT * FROM ".$prefix."_labs WHERE id_lab='".$_GET['lab']."'");
    $lab = mysql_fetch_array($sql);
    print_r($_GET);
    include($baseurl."labs/lab_2/result.php");
    
}


тут print_r выводит Array ( [temp_max] => 20 [temp_step] => 10 [action] => get_result [lab] => 2 )
т.е. так как надо. а вот в файле result.php выводиться Array ( ) как и раньше
вот весь файл result.php:

<?
print_r
($_GET);
echo 
$_GET['temp_max'];
?>

почему в него не передаються параметры????

   
 
 автор: sim5   (09.12.2007 в 07:18)   письмо автору
 
   для: Spenser   (08.12.2007 в 20:26)
 

Повторил один в один. Создал html файл, в котором:
<A HREF="index.php?temp_max=20&temp_step=10&action=get_result&lab=2">Flesh</A>
Далее все как и у вас (даже пути ваши), кроме $baseurl (т.е. "labs/lab_2/result.php") - все на месте и никуда не пропадает, да оно и не может пропасть. Может разгадка в $baseurl?

   
 
 автор: mihdan   (09.12.2007 в 23:19)   письмо автору
 
   для: Spenser   (08.12.2007 в 20:26)
 


<?
$baseurl 
dirname(__FILE__);
?>

   
Rambler's Top100
вверх

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