По поводу GET

Тема в разделе "PHP", создана пользователем SoulJas, 3 май 2008.

Статус темы:
Закрыта.
Модераторы: latteo
  1. SoulJas

    SoulJas Прохожие

    Мне нужно сделать вывод информации только в тех случаях, когда урл имеет такой вид _http://my_site.ru, а уже при _http://my_site.ru?author=jjot ничего не выводилось (если нету соответствующего скрипта по данному запросу).
     
  2. JIEXA

    JIEXA Прохожие

    Не совсем понятно поставлен вопрос.

    Но как я понял, вам нужно чтобы информация не выводилась, если в гет левые значения?

    <?
    // Разрешенные параметры GET
    $accept = array("author", "page");

    foreach($_GET AS $key->$value)
    {
    if (!in_array($key, $accept)) exit("Error 404. Page not found");
    }
    ?>
     
  3. SoulJas

    SoulJas Прохожие

    Выдал Fatal error: Cannot access empty property in.... в строке foreach($_GET AS $key->$value)
     
  4. masto

    masto Прохожие

    $key => $value
     
  5. SoulJas

    SoulJas Прохожие

    Как трудно иногда бывает заметить элементарную ошибку...

    И все же другой вопрос, как мне сделать выполнение скрипта только если гет отсутствуюет (т.е. скрипт выполняется только в урл типа my_site.ru, а не my_site.ru?e)
     
  6. sms-send

    sms-send Создатель

    Регистр.:
    7 июл 2007
    Сообщения:
    29
    Симпатии:
    9
    PHP:
    if($_SERVER['QUERY_STRING']==''){
    /* гет отсутствуюет */
    }else{
    /* гет присутствуюет */
    }
     
  7. SoulJas

    SoulJas Прохожие

    я уже додумался до такого способа
    PHP:
    if(empty($_GET)){

    }else{
    }
     
  8. vovaNux

    vovaNux Постоялец

    Регистр.:
    10 апр 2007
    Сообщения:
    125
    Симпатии:
    16
    Я думаю, что всё-таки стоит предусмотреть массив с "разрешёнными" гет строками - вдруг какие-то из ссылок ведут на твой сайт/index.html? В таком случае ведь тоже нельзя будет увидеть содержимое
     
  9. pizd

    pizd Создатель

    Регистр.:
    10 ноя 2007
    Сообщения:
    43
    Симпатии:
    10
    <?php

    $sPage = isset($_GET['author']) ? $_GET['author'] : '';
    $aPages = array('help', 'faq');
    if (!in_array($sPage, $aPages))
    {
    header('Location: http://my_site.ru/nihira');
    exit;
    }

    ps в array ты должен написать все страницы какие есть а в header пишешь страницу куда попадают при неверном вводе!
     
    Asin нравится это.
  10. Albert22

    Albert22

    Регистр.:
    30 мар 2008
    Сообщения:
    270
    Симпатии:
    10
    Фигасе намудрил. Если массив гет пустой
    if(count($_GET)==0){
    //array $_GET is empty
    } else {
    //it isn't
    }
    ну а если только с разрешенными
    if(strpos($QUERY_STRING, "разрешеннаяСтрока1") && strpos($QUERY_STRING, "разрешеннаяСтрока2") && !strpos($QUERY_STRING, "НЕразрешеннаяСтрока")) {
    print content
    } else {
    die("access denied");
    }
    но ориентироваться только на ГЕТ ненадежно, так как могут передать ПОСТом и все идет в ж, поэтому в первом коде меняем:
    if(count($_REQUEST)==0){ и так далее
     
Статус темы:
Закрыта.