Как обрабатывать URL без каких-либо параметров получения в PHP - PullRequest
1 голос
/ 25 февраля 2011

В моем веб-приложении я использую "example.com/single.php?id=x", захватывая параметр get и отображая одну единственную запись на странице.

Что такое лучший совет / совето том, как обрабатывать URL «example.com/single.php» (если кто-то должен был снять параметры вручную)

Я очищаю свои данные, поэтому я не спрашиваю с точки зрения безопасностино аспект содержания.Что я показываю, все записи?На данный момент он не отображает ничего в той области, где он будет иметь одну запись ...

Спасибо

Ответы [ 4 ]

2 голосов
/ 25 февраля 2011

single.php - довольно сильный указатель на то, что URL-адрес предназначен для отображения одной записи, поэтому здесь нет отображения «по умолчанию» (как, например, отображение всех записей).

Я хотел бы, чтобы он умер () с хорошим сообщением об ошибке "запись не найдена", или даже выбросил бы 404, как это делает переполнение стека.

0 голосов
/ 25 февраля 2011

Что я показываю, все записи?

Это полностью зависит от цели страницы. Если предназначено , чтобы показать все записи без параметров - тогда покажите это. (У меня есть много страниц, которые показывают список записей без параметра и показывают форму редактирования с переданным параметром. Это очень удобно и практично.)
Если нет - ответ 404 является строгим правилом, когда ни одна страница для показа не найдена.

хорошее приложение также проверит наличие непредвиденных параметров ("example.com/single.php?id=x&foo-bar") и в этом случае выдаст 403.

0 голосов
/ 25 февраля 2011

Что вы должны сделать, это запросить минимальный набор обязательных параметров для single.php, если один из этих параметров отсутствует, вы выдаете ошибку, сообщающую неверный запрос.

например:

//Validate
if(empty($_GET["id"]))
{
    die("Invalid Request");
}

//Sanitation
if(!is_numeric($_GET["id"]))
{
        die("Invalid Request");
}

//Force type's for security
$id = (int)$_GET["id"];
0 голосов
/ 25 февраля 2011

вы можете поместить идентификатор по умолчанию в single.php, и если вы получите какой-либо идентификатор из GET, замените его на этот

$display_id = empty($_GET['id']) ? specific id number : int($_GET['id']) ;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...