За последние 24 часа нас посетили 22896 программистов и 1263 робота. Сейчас ищут 733 программиста ...

Page ID

Тема в разделе "PHP для новичков", создана пользователем ЖекаW, 26 янв 2020.

Метки:
  1. ЖекаW

    ЖекаW Новичок

    С нами с:
    20 янв 2020
    Сообщения:
    9
    Симпатии:
    0
    Всем привет,

    Может ли кто нибудь показать пример как работать с page id?

    Допустим есть URL /index.php, нужно сделать URL /index?id={X}, где X может быть 0, 1, 2, и т.д.

    Как пример если index?id=0 то вывести echo "0" ; если index?id=1 то вывести echo "1"

    Спасибо за помощь!

    Удачного дня
     
  2. Алекс8

    Алекс8 Активный пользователь

    С нами с:
    18 май 2017
    Сообщения:
    1.730
    Симпатии:
    359
    то что вы описали это называется get параметры.... на сервере они доступны через массив $_GET
    а вообще почитайте про GET POST и как это все работает)
     
  3. ЖекаW

    ЖекаW Новичок

    С нами с:
    20 янв 2020
    Сообщения:
    9
    Симпатии:
    0
    Спасибо,
    Я разобрался как сделать page id как пример - /?0 ... /?100

    Подскажите в каком направлении копать, чтобы сделать /page/item?id=0 ... /page/item?id=100
    То есть нужно поменять ?0 на item?id=0

    Код простой
    if (isset($_GET['0'])) {

    }

    Спасибо!
     
  4. Алекс8

    Алекс8 Активный пользователь

    С нами с:
    18 май 2017
    Сообщения:
    1.730
    Симпатии:
    359
    if (isset($_GET['id'])) {

    }
     
  5. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    @ЖекаW, для работы с такими параметрами, как идентификаторы, можно вовсе не использовать строку GET-параметров:
    /page/100 ;)
     
  6. ЖекаW

    ЖекаW Новичок

    С нами с:
    20 янв 2020
    Сообщения:
    9
    Симпатии:
    0
    Так я это и использовал.
     
  7. ЖекаW

    ЖекаW Новичок

    С нами с:
    20 янв 2020
    Сообщения:
    9
    Симпатии:
    0
    Может кто нибудь подскажет рабочий пример с

    index?id=1 и index?id=2

    ?

    Спасибо!
     
  8. ЖекаW

    ЖекаW Новичок

    С нами с:
    20 янв 2020
    Сообщения:
    9
    Симпатии:
    0
    Не могу понять, почему этот код работает
    if (isset($_GET['id0'])) {

    А вот этот не хочет работать
    if (isset($_GET['id=0'])) {
     
  9. acho

    acho Активный пользователь

    С нами с:
    28 дек 2016
    Сообщения:
    854
    Симпатии:
    210
    Адрес:
    Санкт-Петербург
    Потому что надо хотя бы знать основы перед тем, как что-либо делать.
    ты же не лезешь космические аппараты собирать, не изучив документацию.
     
  10. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    Чтобы проверить существование параметра:
    Код (Text):
    1. if (isset($_GET['id'])) {
    При этом значение может быть любым, в том числе и пустым.

    Городить ветвление на каждую страницу не нужно. Достаточно проверить значение параметра на нахождение в предопределенном списке «страниц»:
    Код (Text):
    1. $pages = [
    2.   0 => '',
    3.   1 => '',
    4. ...
    5. ];
    6.  
    7. if (isset($pages[$_GET['id']])) {
    Массив $pages можно вынести на один уровень выше и объединить оба ветвления/условия. Номера страниц определены именно как индексы массива для повышения скорости. В качестве значений вместо пустых строк можно использовать имена контроллеров/функций, имена страниц, другие массивы и т.д.
    --- Добавлено ---
    Также вместо второй проверки можно искать запись с соотв. идентификатором в БД.
     
  11. ЖекаW

    ЖекаW Новичок

    С нами с:
    20 янв 2020
    Сообщения:
    9
    Симпатии:
    0
    Господа, я всем благодарен за помощь! Вопрос конечно глупый, поэтому он в разделе для новичков. Раздела для полных нулей я не нашел.
    Но у меня в упор не получаеться это сделать, даже после нескольких часов и попыток.

    Может ли кто нибудь помочь сделать рабочий код ?
    index.php?id=1 => echo "1";
    index.php?id=2 => echo "2";
     
  12. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    @ЖекаW, для того, что бы возникло желание тебе помогать, с твоей стороны должно быть желание, что-то изучать. Необходимо обладать базовыми знаниями, для того, чтобы понимать ответы форумчан. Если тебе лень взять любую книгу по пхп и прочесть 3-4 главы, почему ты считаешь, что кому-то на форуме не лень сюда перепечатывать информацию из этих глав?
    P.S. Тем более, что ответ тебе дали в 4-том посте этого топика.
     
  13. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.199
    Симпатии:
    184
  14. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    Как сделать единую точку входа с ЧПУ? Только учти, что там выделяются «идентификаторы» из пути в массив $pa, а код выделения значения GET-параметра не показан, хотя он элементарен:
    PHP:
    1. $pn = isset($_GET['p']) ? intval($_GET['p']) : 0;
    P.S. Код под комментом «// 1» можно упростить до:
    PHP:
    1. list($p) = explode('?', $p, 2);
    P.P.S. И это только начало, потому что я уверен, что твой пример с echo "1" и echo "2" не самый удачный, и тебе нужно не выводить значения id, а по значению id выводить портянки текста (или даже выполнять наборы команд). Ты упорно требуешь от нас соорудить switch, хотя я тебе в пред. посте показал, что нужно отделить данные от кода и по возможности использовать один обработчик, например размести портянки текста в массиве $pages и после показанных проверок делай вывод $pages[$_GET['id']] (или $pages[$pa[1]] для примера из этого поста).
     
  15. ЖекаW

    ЖекаW Новичок

    С нами с:
    20 янв 2020
    Сообщения:
    9
    Симпатии:
    0
    Спасибо, получилось разобраться!