因此,我已经考虑了一个小时,我很感兴趣的是,最好的方法是检查哪个表单已经提交。
假设我们有提交给formsubmission.php的formOne和formTwo,在里面我认为检查提交最合适的方法是
if($_SERVER['REQUEST_METHOD'] == 'POST'){
//do stuff
}但是,确定提交了哪个表单( formOne还是两个)的最佳方法是什么?
我读了这里的What is the best way to identify which form has been submitted?,我想知道这是不是唯一的两种方法来解决这个问题。
由于我在其他地方读到的一些原因,我认为仅仅检查isset($_POST[formname])是不好的,但现在我开始认为发布到同一个.php文件的整个想法都是糟糕的做法,并且没有好的方法来检查以这种方式提交的是哪个表单。
使用GET并将每个不同的表单提交给单独的ID是不好的做法吗?如果是这样-为什么?
所以我的问题是,检查哪个表格已经提交的最好方法是什么,这是一个好的做法吗?
谢谢
PS还查看了隐藏字段->在质量方面似乎不值得使用html
发布于 2014-09-13 21:04:34
我建议你检查你收到的字段,如果它们没有完全相同的字段,或者有一个隐藏的字段来告诉你的php代码它是什么形式,这是没有错的。然而,最好的选择是对不同的操作使用不同的urls,而不管最终实际处理提交的是哪个php文件。
要做到这一点,你应该查看urlrewrite和htaccess,这将允许你将像users/delete和users/add这样的url转换为myphpfile.php?action='delete' (意味着POST数据被保留),并在你的php代码中查看$_GET['action']值来决定运行哪段代码。
发布于 2014-09-13 21:05:47
最好是为每个提交输入使用不同的名称:
对于formOne:
<input type="submit" name="formOne" value="formOneValue" />对于formTwo:
<input type="submit" name="formTwo" value="formTwoValue" />然后在你的php文件中:
if (!empty($_POST['formOne'])) {
//do something here;
}
if (!empty($_POST['formTwo'])) {
//do something here;
}发布于 2014-09-13 22:21:58
在我CMS中,有超过三个来自提交的表单提交到相同的page.You上,只需查看哪个表单是使用提交按钮名称提交的,value.Your请求可以是POST或GET。下面是提交到同一页面上两个表单的一个示例。表单提交按钮名称不同。
<input type="submit" name="video" id="submit" value="Save"> -- first form
<input type="submit" name="album" id="submit" value="Save"> -- second form
if(isset($_POST['video']) && $_POST['video']=='Save'){
#code for first form
}
if(isset($_POST['album']) && $_POST['album']=='Save'){
#code for second form
}https://stackoverflow.com/questions/25823471
复制相似问题