如何从PHP进行正确的重定向?

时间:2014-03-26 09:13:46

标签: php

我得到了html表单,输出我要保存在数据库中。一切都很好,但在用户按下"提交"我的php文件变成了free2see。 我找到了出路:

header("Location: exampleurl");
die(); 

在     

$phone=$_POST['phone'];
$pointA=$_POST['pointA'];
$pointB=$_POST['pointB'];

$con = mysql_connect("127.0.0.1", "root", "");
mysql_set_charset('utf8');
mysql_select_db("taxon");

$query="INSERT INTO `order` (phone, pointA, pointB)
VALUES ('$phone', '$pointA', '$pointB')";

$result= mysql_query($query, $con);

mysql_close($con);

header("Location: exampleurl");
die();

?>

位于文档的底部,以便php运行代码然后重定向。 我不喜欢这种方式,因为它适合低数据文件。如果有很多代码要继续,1)用户将看到空白页面,他将获得重定向。 你能告诉我什么吗? 附: 我的英语很蹩脚请告诉我,如果错误,我会解决这个问题。

2 个答案:

答案 0 :(得分:0)

header("Location: exampleurl");

不会终止执行时间。如果在您的位置代码之后还有其他语句,则无论如何都会执行它们。

你实际上可以使用if语句。如果要重定向用户,可以使用变量进行检查。如果它是真的你可以在这个块中添加头函数,如果它错了你可以将你的实际代码放在错误的块中。

因此,您可以在需要使用变量重定向时进行管理。

答案 1 :(得分:-1)

忽略sql-injection漏洞和其他问题,您可以在已经发送标头后使用其他javascript重定向打印一些消息。我怀疑这是最好的做法,但这是另一种做你想做的事情。

/* […] */
mysql_close($con);

header('Location: exampleurl', true, 303);
echo '<p>You will be redirected in a moment. Please, wait!</p>';
echo '<script>location.href = "exampleurl";</script>';

die();

希望,这对你有帮助!