使用相同的php文件显示表单并接收表单';s数据
我有一个生成表单的php页面。表单的action属性是页面本身。用户提交表单后,将加载相同的页面,但这次设置了一个POST变量,因此页面将运行另一个脚本来处理来自表单的传入数据。我通过使用条件分叉来实现这一点:使用相同的php文件显示表单并接收表单';s数据,php,forms,post,Php,Forms,Post,我有一个生成表单的php页面。表单的action属性是页面本身。用户提交表单后,将加载相同的页面,但这次设置了一个POST变量,因此页面将运行另一个脚本来处理来自表单的传入数据。我通过使用条件分叉来实现这一点: if(isset($_POST['var'])){ generate form }else{ insert $_POST data into database } 我想知道这是好主意还是坏主意。坏主意是将动作属性设置为脚本。完全忽略它表示浏览器应该将其发布到同一URL。
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的观点。除此之外,如果您不需要更多的复杂性,它看起来是一种相当标准的方法。一件非常重要的事情是:确保在数据进入数据库之前对其进行验证和清理