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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> $_SESSION и $_GET 
V
    Опции темы
Serebrus
Дата 12.11.2008, 09:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 333
Регистрация: 22.5.2007
Где: Ташкент

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



Привет друзья.

Код:
Код

if(isset($_GET['ord_fld']))
{
 $_SESSION['ofld']=$_GET['ord_fld']; //имя поля сортировки (ORDER BY ...)
 $_SESSION['otyp']=$_GET['ord_typ']; //тип сортировки (ASC или DESC)
}
else
{
 $_SESSION['ofld']='id'; //по умолчанию
 $_SESSION['otyp']='ASC'; //по умолчанию
}


($_GET['ord_fld'] и $_GET['ord_typ'] отправляются одновременно)

Проблема в том что при отправке других переменных $_SESSION['ofld'] берет значение по умолчанию так как $_GET['ord_fld'] является null при отпраке других переменных, я использовал сессию для того чтобы сохранить или отправленное значение поля сортировки, илиже значение по умолчанию при отправке любой иной перемнной.

Как мне изменить код? smile

Это сообщение отредактировал(а) Serebrus - 12.11.2008, 09:14
PM MAIL   Вверх
Sidious
Дата 12.11.2008, 09:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Код

if(isset($_GET['ord_fld']) || isset($_GET['ord_typ']))
{
    $_SESSION['ofld']= isset($_GET['ord_fld']) ? $_GET['ord_fld'] : 'id'; //имя поля сортировки (ORDER BY ...)
    $_SESSION['otyp']=isset($_GET['ord_typ']) ? $_GET['ord_typ'] : 'ASC'; //тип сортировки (ASC или DESC)
}

PM ICQ   Вверх
Serebrus
Дата 12.11.2008, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 333
Регистрация: 22.5.2007
Где: Ташкент

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



Sidious, я не понил вашу логику: почему дважды проверять isset($_GET['ord_fld']) и isset($_GET['ord_typ']) и потом, здесь оба переменные сессии не будут иметь значение при возвращении false при первом проверке:

Цитата(Sidious @  12.11.2008,  09:52 Найти цитируемый пост)
if(isset($_GET['ord_fld']) || isset($_GET['ord_typ']))


Если я не ошибся, в коде нет ответа на мой вопрос.
PM MAIL   Вверх
Валерия
Дата 12.11.2008, 13:48 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

if(isset($_GET['ord_fld']) and isset($_GET['ord_typ']))
{
 $_SESSION['ofld']=$_GET['ord_fld']; //имя поля сортировки (ORDER BY ...)
 $_SESSION['otyp']=$_GET['ord_typ']; //тип сортировки (ASC или DESC)
}

if (!isset($_SESSION['ofld']) and !isset($_SESSION['otyp']))
{
 $_SESSION['ofld']='id'; //по умолчанию
 $_SESSION['otyp']='ASC'; //по умолчанию
}


Это сообщение отредактировал(а) Валерия - 12.11.2008, 13:49
PM MAIL   Вверх
krundetz
Дата 12.11.2008, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вечный странник
***


Профиль
Группа: Завсегдатай
Сообщений: 1400
Регистрация: 14.6.2007
Где: НН(Сормово)

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



Валерия, я иногда не понимаю вас. то вы предлагаете сокращать код до минимума, то нагромождаете совершенно не нужных конструкций.

Serebrus, следующих двух строчек вполне достаточно
Код

$_SESSION['ofld']= isset($_GET['ord_fld']) ? $_GET['ord_fld'] : 'id'; //имя поля сортировки (ORDER BY ...)
$_SESSION['otyp']=isset($_GET['ord_typ']) ? $_GET['ord_typ'] : 'ASC'; //тип сортировки (ASC или DESC)

 


--------------------
!цензоры - Хранитель стратегической жидкости
Группа ТГВ
Группа Нижний Новгород
user posted image
PM MAIL   Вверх
Валерия
Дата 12.11.2008, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



krundetz, смотрим логику работы ваших строчек. Одной. Первой допустим smile
Если $_GET['ord_fld'] установлена, то присваиваем её значение переменной $_SESSION['ofld']
Если $_GET['ord_typ'] не установлена, то присваиваем переменной $_SESSION['ofld'] значение 'id'
А если $_GET['ord_typ'] не установлена, но $_SESSION['ofld'] уже была установлена до этого, со значением допустим 'name' ?
Правильно, переменная $_SESSION['ofld'] перезапишется и будет сново 'id', а автору нужно что-бы сортировка запоминалась.

Добавлено через 51 секунду
Цитата(krundetz @  12.11.2008,  14:02 Найти цитируемый пост)
я иногда не понимаю вас. то вы предлагаете сокращать код до минимума, то нагромождаете совершенно не нужных конструкций.

Вообще я за то что бы сокращать код до минимума, после того как работает скрипт с "совершенно не нужными конструкциями" но правильно.
PM MAIL   Вверх
Serebrus
Дата 13.11.2008, 07:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 333
Регистрация: 22.5.2007
Где: Ташкент

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



Валерия, большое вам спасибо, это то что надо.
Примите +2.
PM MAIL   Вверх
krundetz
Дата 13.11.2008, 09:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вечный странник
***


Профиль
Группа: Завсегдатай
Сообщений: 1400
Регистрация: 14.6.2007
Где: НН(Сормово)

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



Валерия, да чет я неправильно понял задачу. Как вам такой вариант?

Код

$_SESSION['ofld'] = isset($_GET['ord_fld']) && !isset($_SESSION['ofld']) ? $_GET['ord_fld'] : 'id'; //имя поля сортировки (ORDER BY ...)
$_SESSION['otyp'] = isset($_GET['ord_typ']) && !isset($_SESSION['otyp']) ? $_GET['ord_typ'] : 'ASC'; //тип сортировки (ASC или DESC)
.

Это сообщение отредактировал(а) krundetz - 13.11.2008, 09:18


--------------------
!цензоры - Хранитель стратегической жидкости
Группа ТГВ
Группа Нижний Новгород
user posted image
PM MAIL   Вверх
Валерия
Дата 13.11.2008, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(krundetz @  13.11.2008,  09:17 Найти цитируемый пост)
Валерия, да чет я неправильно понял задачу. Как вам такой вариант?

Да, это уже то smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0485 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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