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

Форум PHP

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

 

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

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

тема: Переменную GET сохранить в сессию
 
 автор: sullus   (14.12.2007 в 23:31)   письмо автору
 
 

Здравствуйте! У меня такой вопрос: с одной и тойже страницы передаю и получаю значение от $var = $_GET['var'] и сохраняю ее в переменную сессии $_SESSION['var_1'] = $var_1 , $var выводится, на той же странице выполняю передачу и прием другой переменной $_GET['var_2'], и при этом переменная сессии $var_1 изчезает, подскажите что можно предпринять?

   
 
 автор: Trianon   (14.12.2007 в 23:32)   письмо автору
 
   для: sullus   (14.12.2007 в 23:31)
 

$var_1 это не переменная сессии.
переменная сессии - $_SESSION['var_1']

   
 
 автор: sullus   (14.12.2007 в 23:36)   письмо автору
 
   для: Trianon   (14.12.2007 в 23:32)
 

я имел ввиду $var_1 = $_SESSION['var_1'], вобщем даже если $_SESSION['var_1'] ничего не присваевать то после другой передаче переменной $_GET, сессия теряется

   
 
 автор: Trianon   (14.12.2007 в 23:41)   письмо автору
 
   для: sullus   (14.12.2007 в 23:36)
 

надо смотреть код.

   
 
 автор: sullus   (14.12.2007 в 23:53)   письмо автору
 
   для: Trianon   (14.12.2007 в 23:41)
 

есть Index.php к которому прикреплено меню

<?
include"http://mysite.ru/body/menu.php";
<
ul>
<
li id="foldheader" class="n">Недвижимость</li>
<
ul id="foldinglist">
<
li><a href="http://2bulky.ru/index.php?kind=var_0"
 
class="n"><font size="2">Дом
</font></a></li>
<
li><a href="http://2bulky.ru/index.php?kind=var_1" 
class="n"><font size="2">Квартира</font></a></li>
<
li><a href="http://2bulky.ru/index.php?kind=var_2" class="n"><font size="2">Офис</font></a></li>
<
li><a href="http://2bulky.ru/index.php?kind=var_3"
 
class="n"><font size="2">Магазин</font></a></li>
<
li><a href="http://2bulky.ru/index.php?kind=var_4" 
class="n"><font size="2">Дача</font></a></li>
<
li><a href="http://2bulky.ru/index.php?kind=var_5" 
class="n"><font size="2">Гараж</font></a></li>
</
ul>
?>

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

<?
    $radio 
$_GET['what_do'];
        if(
$radio==0)
            {
            
$action='buy';
            }
        if(
$radio==1)
            {
            
$action='sell';
            }
        if(
$radio==2)
            {
            
$action='return';
            }
        if(
$radio==3)
            {
            
$action='take';
            }
        if(
$radio==4)
            {
            
$action='exchange';
            }
               
$var $_GET['kind']
               
$_SESSION ['anyvareble'] = $var

echo$_SESSION ['anyvareble'];- //пропадает 
//при нажати на другие ссылки навигации

        
$select mysql_query("SELECT  
* FROM  realty, town, reg_user WHERE town.
id_town = realty.id_town AND realty.id_reg 
= reg_user.id_reg AND realty.action = 
'
$action'  AND realty.kind = 'house'  ORDER 
BY realty.id_realty DESC   ;"
);
if (!
$select)
{
  echo(
mysql_error());
}
else
{
?>
<table align="center" width="100%" 
cellpadding="0" cellspacing="1" class="n1" 
border="0">
<tr>
<td align="center" bgcolor=<?if 
(
$radio==0){echo"#C1D1BE";}
else{echo
"#CADBC7";}?> style="height: 2em">
<a href=http://2bulky.ru/index.php?what_do=0 
style="color:#6699CC; cursor:hand"  
onMouseOver="this.style.color='silver'" 
onMouseOut="this.style.color='#6699CC'" 
align="center" class='n1'>
<font size='2'>
Продать
</font>
</a>
</td>
<td align="center" bgcolor=<?if ($radio==1)
{echo
"#C1D1BE";}else{echo"#CADBC7";}?>>
<a href=http://2bulky.ru/index.php?what_do=1 
style="color:#6699CC; cursor:hand"  
onMouseOver="this.style.color='silver'" 
onMouseOut="this.style.color='#6699CC'" 
align="center" class='n1'>
<font size='2'>
Купить
</font>
</a>
</td>
<td align="center" bgcolor=<?if 
(
$radio==2){echo"#C1D1BE";}
else{echo
"#CADBC7";}?>>
<a href=http://2bulky.ru/index.php?what_do=2 
style="color:#6699CC; cursor:hand"  
onMouseOver="this.style.color='silver'" 
onMouseOut="this.style.color='#6699CC'" 
align="center" class='n1'>
<font size='2'>
Сдать
</font>
</a>
</td>
<td align="center" bgcolor=<?if 
(
$radio==3){echo"#C1D1BE";}
else{echo
"#CADBC7";}?>>
<a href=http://2bulky.ru/index.php?what_do=3 
style="color:#6699CC; cursor:hand"  
onMouseOver="this.style.color='silver'" 
onMouseOut="this.style.color='#6699CC'" 
align="center" class='n1'>
<font size='2'>
Снять
</font>
</a>
</td>
<td align="center" bgcolor=<?if 
(
$radio==4){echo"#C1D1BE";}
else{echo
"#CADBC7";}?>>
<a href=http://2bulky.ru/index.php?what_do=4 
style="color:#6699CC; cursor:hand"  
onMouseOver="this.style.color='silver'" 
onMouseOut="this.style.color='#6699CC'" 
align="center" class='n1'>
<font size='2'>
Обмен
</font>
</a>
</td>
</tr>
<? while ($table mysql_fetch_array($select))
{
print
'
<tr>
<td colspan="1" bgcolor="silver" align="center" 
style="height: 2em" class="b1">
Автор
</td>
<td colspan="1" 
bgcolor="silver" align="center" 
style="height: 2em" class="b1">
'
.wordwrap$table['login'], 12"\n"1).'
</td>
<td colspan="1" 
bgcolor="silver" align="center" 
style="height: 2em" class="b1">
Дата:
</td>
<td colspan="2" 
bgcolor="silver" align="center" 
style="height: 2em" class="b1">
'
.wordwrap$table['ndate'], 12"\n"1).'
</td>
</tr>
<tr>
<td colspan="1" 
bgcolor="#D9D9D9" align="center" 
style="height: 3em" class="b1">
Объявление № '
.wordwrap$table['id_realty'], 12"\n"1).'
</td>
<td colspan="4" 
bgcolor="#CADBC7" align="center" 
style="height: 3em" class="b1">
'
.wordwrap$table['info'], 12"\n"1).'
</td>
</tr>
<tr>
<td colspan="3" 
bgcolor="#D9D9D9" align="center" 
style="height: 3em" class="b1">
Стоимость: '
.wordwrap$table['cost'], 50"\n").'тыс. рублей
</td>
<td colspan="2" 
bgcolor="#CADBC7" align="center" 
style="height: 3em" class= "b1">
Звони: '
.wordwrap$table['phone'], 50"\n").'
</td>
</tr>'
;
}
}

может я порядок перепутал?

   
 
 автор: Trianon   (14.12.2007 в 23:56)   письмо автору
 
   для: sullus   (14.12.2007 в 23:53)
 

в приведенном фрагменте полно несущественного кода, и нет ни слова ни про передаваемые по ссылке параметры $_GET['kind'] ни про сессию ($_SESSION)
И код приведен так, что форум после этого невозможно читать. Всё вправо уезжает

   
 
 автор: sullus   (15.12.2007 в 00:05)   письмо автору
 
   для: Trianon   (14.12.2007 в 23:56)
 

Я чуть чуть исправил код, правда с местом не подрасчитал, виноват. Скажите впринципе это же реально передать переменную $_GET в $_SESSION? И по какой причине эта переменная может исчезать?

   
 
 автор: Trianon   (15.12.2007 в 00:08)   письмо автору
 
   для: sullus   (15.12.2007 в 00:05)
 

включите вывод ошибок.
У Вас тут синтаксический бред
$var = $_GET['kind']
$_SESSION ['anyvareble'] = $var

   
 
 автор: sullus   (15.12.2007 в 00:14)   письмо автору
 
   для: Trianon   (15.12.2007 в 00:08)
 

Хорошо, так мне эту переменную надо запомнить, я ее и заношу в
$_SESSION ['anyvareble']
.

   
 
 автор: Trianon   (15.12.2007 в 00:19)   письмо автору
 
   для: sullus   (15.12.2007 в 00:14)
 

не заносите.

   
 
 автор: sullus   (15.12.2007 в 00:26)   письмо автору
 
   для: Trianon   (15.12.2007 в 00:19)
 

Пробую как вы советуете, не заношу, пишет:
Notice: Undefined index: kind in ....

   
 
 автор: sim5   (15.12.2007 в 07:15)   письмо автору
 
   для: sullus   (15.12.2007 в 00:26)
 

Нет такого, вот и говорит. У вас $var = $_GET['kind'] прописывается без всякой проверки получили ли вы $_GET['kind'] или нет, а если нет, то вас и предепреждают "Неопределенный индекс...". А зачем он вообще на этой странице, если не видно его дальнейшего использования? Или я не заметил - у вас HTML код перегружен встроенными стилями, вынесите их в подключаемую таблицу стилей.

   
 
 автор: sullus   (15.12.2007 в 12:17)   письмо автору
 
   для: sim5   (15.12.2007 в 07:15)
 

я в дальнейшем его собираюсь использовать в MySQL запросе, для сортировки таблицы
$select = mysql_query("SELECT  * FROM  realty, town, reg_user WHERE 
realty.action = '$action'  AND realty.kind = $var ");

а для себя для проверки, я просто выводил его на экран, поэтому в предыдущем примере не указал где он будет использоваться.

   
 
 автор: mihdan   (15.12.2007 в 12:41)   письмо автору
 
   для: sullus   (14.12.2007 в 23:31)
 


<?
session_start
();
$SESSION['array'] = $_GET;
?>

   
 
 автор: sullus   (15.12.2007 в 13:03)   письмо автору
 
   для: mihdan   (15.12.2007 в 12:41)
 

так и сделал, первый раз при пересылки работает, а когда нажимаю на другую ссылку использующею тот же $_GET но от другой с другой переменной, то что было в сессии исчезает, наверно, наверно значение $_GET , переданное сначала становится пустым, и в сессию записывается " пусто ".

   
 
 автор: sullus   (15.12.2007 в 13:23)   письмо автору
 
   для: sullus   (15.12.2007 в 13:03)
 

все получилось, прав был Trainon, нужно делать проверку на то установлена переменная или нет, если нет то незаписывать ее в сессию

                    if(isset($_GET['kind']))
           {    
            $_SESSION['vareble']= $_GET['kind'];
            echo $_SESSION['vareble'];
           }
        else
           {
                  echo("$_GET[kind] неустановлен");
             echo $_SESSION['vareble'];
           }

   
Rambler's Top100
вверх

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