下面的代码简单检查用户是否输入了有效的JSON数据,如下面的if语句所示。 if语句对我来说效果很好,它只是让页面重定向不是。任何人都可以解释为什么会这样吗?谢谢
<?php
//Retrives name var from form on previous page
$name = $_REQUEST['name'];
//Changes the title tag based on the users name
$pageTitle = "Thanks ".$name."!";
//
$section = "contact";
//Retrives the product ID based on what the user requested
$productId = $_REQUEST['productId'];
//Retrives the email var from form on previous page
$email = $_REQUEST['email'];
?>
<?php
//Acts as a place holder var for the url containing the productID the user specfied.
$url = 'xxx.xxx.xxx';
//Fetchs the contents of the of the url var address, and returns them into a JSON var
$JSON = file_get_contents($url);
//Puts the JSON var into a parameter that actually does the decoding into JSON
$data = json_decode($JSON,true);
if (empty($data)){
header('Location: http://www.google.com');
exit;
} else {
echo "it's valid";
//References the header file for CSS
include("inc/header.php");
}
答案 0 :(得分:3)
您在重定向之前发送一些空格,当您关闭并重新打开第14行的PHP时。 并且在响应主体已经启动之后,无法发送标头。 (除非它被关闭,否则应该在某处发出警告。)
答案 1 :(得分:3)
之间有一个空格/输入
?>
<?php
发送任何字符后,重定向将不再有效。把所有东西都放在一个
中<?php ... ?>
它应该有用。
答案 2 :(得分:2)
只是预感,但尝试删除
?>
<?php
在中间,因为这可能是在您要求发送标头之前向客户端发送一些信息。这可能导致标题重定向失败。
答案 3 :(得分:0)
在你的else语句中,你没有指定标题位置,你所做的只是回应它是有效的,你包含一个文件,但没有重定向到另一个页面。
你拥有的是:
else {
echo "it's valid";
//References the header file for CSS
include("inc/header.php");
}
你不应该在那里有一个标题吗?