Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: проблема с GET

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Itan
Отправлено: 08 Октября, 2011 - 13:53:58
Post Id


Частый гость


Покинул форум
Сообщений всего: 199
Дата рег-ции: Окт. 2008  


Помог: 0 раз(а)




Здравствуйте! Помогите ситуацию разрешить.

Есть два варианта, какие юзер может ввести в адресную строку.

Либо http://site[dot]ru/?id=1
Либо http://site[dot]ru/?id=1&pid=1

Я проверяю в скрипте: если pid != "", то проверяем: есть ли такая запись в БД. Если нету такой, то переадресовываем на http://site[dot]ru/?id=1

Но проблема в том, что если юзер введет такую строку: http://site[dot]ru/?id=1&pid= то ничего не происходит. А нужна переадресация, потому что строка некорректна. Я не могу сделать проверку isset, т.к. pid необязательно указывать в адресе, он может быть, а может и не быть. Конструкция вида
PHP:
скопировать код в буфер обмена
  1. if (isset($_GET['pid']) and $_GET['pid'] == "")
  2. {// Делаем переадресацию}
- тоже не работает почему-то...
 
 Top
Мелкий Супермодератор
Отправлено: 08 Октября, 2011 - 13:56:35
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




PHP:
скопировать код в буфер обмена
  1. if (empty($_GET['pid']) || ! is_numeric($_GET['pid'])) {
  2. echo 'это очень печально, но таких тут нету';
  3. }


-----
PostgreSQL DBA
 
 Top
Itan
Отправлено: 08 Октября, 2011 - 13:59:18
Post Id


Частый гость


Покинул форум
Сообщений всего: 199
Дата рег-ции: Окт. 2008  


Помог: 0 раз(а)




Что-то не работает... Растерялся

PHP:
скопировать код в буфер обмена
  1. if (($_GET['pid'] < 1) or !is_numeric($_GET['pid']) or empty($_GET['pid'])) {
  2. // Значит надо сделать релоад на страницу указанного юзера
  3. print '<meta http-equiv="REFRESH" content="0;URL=/?id='.$_GET['id'].'">';
  4. }

(Отредактировано автором: 08 Октября, 2011 - 13:59:39)

 
 Top
Мелкий Супермодератор
Отправлено: 08 Октября, 2011 - 14:08:40
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Тогда phpfaq.ru/debug
Смотрите var_dump'ом, что в $_GET['pid'], что в вышележащем коде.
Приведённый фрагмент, за исключением Notice, рабочий.

PS: и сделайте error_reporting(E_ALL); С ним и разрабатывайте.


-----
PostgreSQL DBA
 
 Top
Itan
Отправлено: 08 Октября, 2011 - 17:54:10
Post Id


Частый гость


Покинул форум
Сообщений всего: 199
Дата рег-ции: Окт. 2008  


Помог: 0 раз(а)




Спасибо! Разобрался Улыбка
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB