我有一个问题,我想作出一些搜索页面,它需要一个GET变量对结果进行排序。 所以,如果有人进入页面,而不该GET变量,重新加载页面,使其出现,比如你输入www.myweb.com/search并自动重装和改变www.myweb.com/search/?sort=ascending(因为该变量是必要的)。
我希望你能理解我,再见
我有一个问题,我想作出一些搜索页面,它需要一个GET变量对结果进行排序。 所以,如果有人进入页面,而不该GET变量,重新加载页面,使其出现,比如你输入www.myweb.com/search并自动重装和改变www.myweb.com/search/?sort=ascending(因为该变量是必要的)。
我希望你能理解我,再见
我认为这会为你希望做哪些工作:
if (empty($_GET['sort'])) {
header('Location: ' . $_SERVER['REQUEST_URI'] . '?sort=ascending');
exit();
}
从当执行文件中www.myweb.com/search
要求,你应该有一个默认设置时$ _GET [“排序”]不可用。 对于这个答案,我将使用PHP为我的例子,因为你没有指定。
<?php
if (empty($_GET['sort'])) {
$sort = 'ascending';
}
// the rest of your code
或者,你可以强制重定向,但前面的例子更优雅。
<?php
if (empty($_GET['sort'])) {
header('Location: www.myweb.com/search/?sort=ascending');
exit;
}
请记住,第二个解决方案将扔掉任何东西,即其他$ _GET的,像item=widget
或color=blue
注意他人发布!isset
作为一个答案。 那不管用! 例:
www.myweb.com/search/?sort=&foo=bar
!isset($_GET['sort'])
===假的!
empty($_GET['sort'])
是走在这种情况下正确的路线。
最好是通过自己定义变量而不是重定向。 只是isset检查变量定义或没有。 它一直没有被定义可以按照下述自己设置它。
if(!isset($_GET['sort']))
{
$_GET['sort']='ascending";
}