表单提交后重定向的正确方法

iKa*_*ars 6 php forms redirect submit

也许这是一个愚蠢的问题,但是在将表单保存在数据库中后,将用户重定向到成功页面的正确方法是什么?

我不知道为什么,但如果我添加action="done.php",比表单不保存数据到我的数据库.

我试图添加header ("location:/done.php");它工作,但当我将页面移动到原始服务器(PHP 4和MySQL 3.23.5)时,我尝试发送表单时出错Warning: Cannot modify header information - headers already sent by ........

这是我的PHP代码:

if(isset($_POST['submit']))
{
$name=$_POST['name'];
$email = $_POST['email'];
$company = $_POST['company'];
$adress = $_POST['adress'];
$post = $_POST['post'];
$phone = $_POST['phone'];

$sql="INSERT INTO tekstile_users (id, name, email, company, adress, post, phone)
VALUES
('', '$name','$email','$company', '$adress', '$post', '$phone')";

if (mysql_query($sql,$con)) {

    header ("location:/done.php"); 
    }
    else {
echo "Something is wrong";
}

}//end of submit button
Run Code Online (Sandbox Code Playgroud)

修复它将.php文件转换为UTF-8 without BOM.

谢谢大家的建议!

qbe*_*220 6

"已发送标头"消息表示您的脚本已经输出了一些内容.网页上是否显示此错误消息?检查<?php标记之前的任何空格.还要检查<?php ?>标记之前或之后的空格的任何包含文件.

Location头应该在":"之后有一个空格,并且应该是绝对URI,类似于以下内容:

header("Location: http://www.yoursite.com/done.php");
Run Code Online (Sandbox Code Playgroud)


iKa*_*ars 0

修复了将该 .php 文件转换为UTF-8 without BOM.

谢谢大家的建议!