По поводу GET

  • Автор темы SoulJas
  • Дата начала
Статус
В этой теме нельзя размещать новые ответы.
S

SoulJas

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

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

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

foreach($_GET AS $key->$value)
{
if (!in_array($key, $accept)) exit("Error 404. Page not found");
}
?>
 
Выдал Fatal error: Cannot access empty property in.... в строке foreach($_GET AS $key->$value)
 
Как трудно иногда бывает заметить элементарную ошибку...

И все же другой вопрос, как мне сделать выполнение скрипта только если гет отсутствуюет (т.е. скрипт выполняется только в урл типа my_site.ru, а не my_site.ru?e)
 
PHP:
if($_SERVER['QUERY_STRING']==''){
/* гет отсутствуюет */
}else{
/* гет присутствуюет */
}
 
я уже додумался до такого способа
PHP:
if(empty($_GET)){

}else{
}
 
Я думаю, что всё-таки стоит предусмотреть массив с "разрешёнными" гет строками - вдруг какие-то из ссылок ведут на твой сайт/index.html? В таком случае ведь тоже нельзя будет увидеть содержимое
 
<?php

$sPage = isset($_GET['author']) ? $_GET['author'] : '';
$aPages = array('help', 'faq');
if (!in_array($sPage, $aPages))
{
header('Location: Для просмотра ссылки Войди или Зарегистрируйся
exit;
}

ps в array ты должен написать все страницы какие есть а в header пишешь страницу куда попадают при неверном вводе!
 
  • Нравится
Реакции: Asin
Фигасе намудрил. Если массив гет пустой
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){ и так далее
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху