[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Два знака ? в ссылке
allforweb
Вопрос такой. У меня есть ссылка /admin.php?mod=static – она выводит подключенный модуль, а в этом модуле я вывожу контент и ссылка на конкретную страницу получается уже вот такой:
/admin.php?mod=static?id=1

Разрешено ли такое вообще, ссылка с двумя знаками "?".
И у меня не передается последний параметр id=1. Я делаю проверку но ни ошибки нет, ни данных о переменной и сам контент не выводится. Я так решил что проблема в двух вопросительных знаках "?"



Спустя 3 минуты, 31 секунда (18.09.2010 - 21:42) twin написал(а):
Правильно решил. Вместо второго вопроса должен быть амперсанд (&)

Спустя 14 часов, 32 минуты, 59 секунд (19.09.2010 - 12:15) allforweb написал(а):
Я делаю так:
if (!isset($id)) - если не существует переменной, вывожу через цикл весь список новостей, а если переменная id существует - вывожу форму для добавления. Но переменной PHP не видит. Но если я нажимаю ссылкe такого вида:
/admin.php?mod=static&id=1 значит эта переменная должна появиться, она же стоит в конце.

Спустя 3 минуты, 50 секунд (19.09.2010 - 12:19) Админ написал(а):
надо писать
if (!isset ($_GET['id']))

передаётся не переменная id а массив get т.е.переменную надо вытащить из массива

Спустя 2 минуты, 18 секунд (19.09.2010 - 12:21) Админ написал(а):
а ещё лучше

if (isset($_GET['id']))
{$id = $_GET['id'];}

Спустя 11 минут, 59 секунд (19.09.2010 - 12:33) ZSH написал(а):
$id = isset($_GET['id']) ? $_GET['id'] : FALSE;


if($id)
{




}

Спустя 12 минут, 33 секунды (19.09.2010 - 12:45) inpost написал(а):
Админ
Надо проверять !empty - не пустой.

А вот пример из Ирбиса:
$var = !empty($_POST['var'])?$_POST['var']:NULL;

Спустя 2 минуты, 14 секунд (19.09.2010 - 12:48) ZSH написал(а):
Цитата
Надо проверять !empty - не пустой.

а если 0?

Спустя 5 минут, 41 секунда (19.09.2010 - 12:53) Админ написал(а):
так вроде вопрос был почему переменная не передаётся , а не о том как её проверять !

Спустя 5 минут, 33 секунды (19.09.2010 - 12:59) inpost написал(а):
ZSH
Ну если передаём значение, то:
$var = !isset((int)$_POST['var'])?(int)$_POST['var']:NULL;
Для строковых данных сразу:
$var = !empty((string)$_POST['var'])?(string)$_POST['var']:NULL;

- собственно об этом только что подумал, надо бы попробовать так =)

Теперь сам ответ: переменная приходит в виде:
$_GET['id'] = 1;

И обращение к ней стоит делать именно как к (int)$_GET['id'] , нет смысла её инициализировать в обычную переменную, если с ней в дальнейшем не проводятся никакие операции отдельно.

Спустя 15 минут, 13 секунд (19.09.2010 - 13:14) Админ написал(а):
Цитата
И обращение к ней стоит делать именно как к (int)$_GET['id'] , нет смысла её инициализировать в обычную переменную, если с ней в дальнейшем не проводятся никакие операции отдельно.


и таких условий тоже не ставилось - простой вопрос два простых ответа - чё тут ещё обсуждать - так мы здесь в итоге целый мануал всей толпой напишем.

Спустя 2 минуты, 43 секунды (19.09.2010 - 13:17) allforweb написал(а):
Цитата (Админ @ 19.09.2010 - 10:14)
Цитата
И обращение к ней стоит делать именно как к (int)$_GET['id'] , нет смысла её инициализировать в обычную переменную, если с ней в дальнейшем не проводятся никакие операции отдельно.


и таких условий тоже не ставилось - простой вопрос два простых ответа - чё тут ещё обсуждать - так мы здесь в итоге целый мануал всей толпой напишем.

Все заработало у меня. Спасибо!

Спустя 14 минут, 42 секунды (19.09.2010 - 13:32) Админ написал(а):
Цитата
И обращение к ней стоит делать именно как к (int)$_GET['id']

а где сказано,что id - число,мож там варианты типа id = gut - совсем у человека мозг взорвётся если он не знает зачем эта int нужна.

Спустя 6 минут, 57 секунд (19.09.2010 - 13:38) inpost написал(а):
Админ
Логика, стандарт. + все, без исключения, используют id как нумерацию! Если у человека что-то не получается, то он открывает php.su и читает мануал. Особенно важно приучить с самого начала так проверять каждую функцию

Спустя 22 минуты, 19 секунд (19.09.2010 - 14:01) Админ написал(а):
даже здесь на форуме я видал такие вещи,где логикой и не пахнет.если б все вникали в мануалы - то нафига этот форум тогда нужен,про всех без исключения - вы батенька позвольте опрос что-ли проводили ? (а приучивают обычно кошек к горшку)

Спустя 27 минут, 7 секунд (19.09.2010 - 14:28) twin написал(а):
Цитата
Логика, стандарт. + все, без исключения, используют id как нумерацию!

А вот и не прав. Допустим в элементах формы id вообще не имеет права быть числовым. id происходит от "идентификатор", не более того. И никаких намеков на его свойства нигде нет.

Спустя 4 минуты, 16 секунд (19.09.2010 - 14:32) Админ написал(а):
inpost
Вот так тебя голубчик - по всем пунктам !!! tongue.gif

Спустя 1 час, 44 минуты, 22 секунды (19.09.2010 - 16:17) inpost написал(а):
ну ладно, пусть id и числовой, но я ведь сказал, что в данном примере надо именно писать так, так как итак понятно, что идентификатор числовой.

Админ
Увы, лишь по одному пункту, и я согласен, что id может быть и текстовым. Но в данном примере это числовое значение. Пусть человек сам проверит, что это значит.

Спустя 14 минут, 56 секунд (19.09.2010 - 16:31) Админ написал(а):
inpost
да ладно отмазываться - ты чего весь его код видел - раз он сам нигде не указал,что id однозначно числовой следовательно возможно всё что угодно - про логику из той же оперы
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.