使用相同的php文件显示表单并接收表单';s数据

使用相同的php文件显示表单并接收表单';s数据,php,forms,post,Php,Forms,Post,我有一个生成表单的php页面。表单的action属性是页面本身。用户提交表单后,将加载相同的页面,但这次设置了一个POST变量,因此页面将运行另一个脚本来处理来自表单的传入数据。我通过使用条件分叉来实现这一点: if(isset($_POST['var'])){ generate form }else{ insert $_POST data into database } 我想知道这是好主意还是坏主意。坏主意是将动作属性设置为脚本。完全忽略它表示浏览器应该将其发布到同一URL。

我有一个生成表单的php页面。表单的action属性是页面本身。用户提交表单后,将加载相同的页面,但这次设置了一个POST变量,因此页面将运行另一个脚本来处理来自表单的传入数据。我通过使用条件分叉来实现这一点:

if(isset($_POST['var'])){
    generate form
}else{
    insert $_POST data into database
}

我想知道这是好主意还是坏主意。

坏主意是将动作属性设置为脚本。完全忽略它表示浏览器应该将其发布到同一URL。

错误的部分是将动作属性设置为脚本。完全忽略它会向浏览器表明它应该发布到同一URL。

您甚至可能需要检查数据是否通过AJAX提交,以区别于常规表单提交:

if ( $_SERVER['X_REQUESTED_WITH']=='XMLHttpRequest' )
  // AJAX

您甚至可能希望检查数据是否通过AJAX提交,以区别于常规表单提交:

if ( $_SERVER['X_REQUESTED_WITH']=='XMLHttpRequest' )
  // AJAX

我同意伊格纳西奥的观点。除此之外,如果您不需要更多的复杂性,它看起来是一种相当标准的方法。一件非常重要的事情:确保在数据进入数据库之前验证和清理数据。

我同意Ignacio的观点。除此之外,如果您不需要更多的复杂性,它看起来是一种相当标准的方法。一件非常重要的事情是:确保在数据进入数据库之前对其进行验证和清理