За последние 24 часа нас посетили 35526 программистов и 1819 роботов. Сейчас ищут 837 программистов ...

Два знака ? в ссылке

Тема в разделе "PHP для новичков", создана пользователем allforweb, 18 сен 2010.

  1. allforweb

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

    С нами с:
    18 сен 2010
    Сообщения:
    72
    Симпатии:
    0
    Вопрос такой. У меня есть ссылка /admin.php?mod=static – она выводит подключенный модуль, а в этом модуле я вывожу контент и ссылка на конкретную страницу получается уже вот такой:
    /admin.php?mod=static?id=1

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

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Заменить все последующие знаки ? на &
     
  3. allforweb

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

    С нами с:
    18 сен 2010
    Сообщения:
    72
    Симпатии:
    0
    И ссылка перестала работать, она просто в строке браузера выводится, но на страницу перехода нет.
     
  4. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    allforweb
    Значит делаешь неправильно.
    /admin.php?mod=static&id=1
     
  5. allforweb

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

    С нами с:
    18 сен 2010
    Сообщения:
    72
    Симпатии:
    0
    Я делаю так:
    if (!isset($id)) - если не существует переменной, вывожу через цикл весь список новостей, а если переменная id существует - вывожу форму для добавления. Но переменной PHP не видит. Но если я нажимаю ссылук такого вида:
    /admin.php?mod=static&id=1 значит эта переменная должна появиться, она же стоит в конце.
     
  6. Gromo

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

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    PHP:
    1.  if(!isset($_GET['id']))
     
  7. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    А mod Появиться не должна, потому что стоит в начале? Ммм, милая, и совершенно глупая логика.
    Переменные из адресной строки в глобальном пространстве не появляются, используется для этого массив _GET.
    Книжке самое место на помойке с устаревшим ещё 5 лет назад register globals.

    PHP:
    1. <?php
    2.  
    3. if(isset($_GET["id"])) {
    4.  echo "Передан параментр ID=" . $_GET["id"];
    5. } else echo "Не передан, увы";
    6.  
    7. ?>
     
  8. admyx

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

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    Так нельзя.

    PHP:
    1. <?php
    2.  
    3. if(isset($_GET['param1']) || isset($_GET['param2']) || isset($_GET['param3']))
    4.         exit(print_r($_GET));