如果GET或POST为空,则重定向

时间:2014-07-21 13:40:54

标签: php redirect

非常奇怪的问题,我在挠头。如果有人能提供帮助,我将不胜感激,谢谢。

我有一个搜索位置结果页面,只有在1)上一页的表格已提交时才会出现;或2)他们通过网址搜索,例如

www.mywebsite.com?use_url=on&zipcode=UB95BX&radius=50

因此,在页面顶部我有以下代码:

// Validate input and sanitize
if (empty($_POST['submit']) || empty($_GET['use_url']))
 {
  header('Location: index1.php');
  exit; 
 } 

问题是,它无法正常工作,并且它会重定向每个请求。有没有人知道如何让它工作,所以如果没有提交帖子,或者如果没有获取请求(基本上,如果用户直接在www.mywebsite.com/locations.php键入url栏),用户是重定向。

奇怪的是,如果我省略空($ _ GET)命令并使其成为

// Validate input and sanitize
if (empty($_POST['submit']))
 {
  header('Location: index1.php');
  exit; 
 } 

它在空提交时工作正常,只有当我为重定向指定两个条件时才会出现问题。

谢谢大家/卢克

2 个答案:

答案 0 :(得分:7)

||是符合逻辑的OR。目前,您的代码为“if post或get为空,重定向”

你的意思是“如果两者帖子和获取为空,重定向”。

您应该使用逻辑AND(&&):

if (empty($_POST['submit']) && empty($_GET['use_url']))
{
  header('Location: index1.php');
  exit; 
} 

答案 1 :(得分:0)

试试这个:

if (empty($_REQUEST['submit'])

或if(!isset($ _ REQUEST ['submit'])