首页 / PHP / 使用php进行有效的表单处理
使用php进行有效的表单处理
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了使用php进行有效的表单处理,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1159字,纯文字阅读大概需要2分钟。
内容图文
![使用php进行有效的表单处理](/upload/InfoBanner/zyjiaocheng/668/9de7ed28e4b648369eda9ba67988b611.jpg)
我正在某个项目上,我想处理来自多个模板中表单的请求.问题是如何在处理脚本中调用适当的功能.虽然,我已经编码了一段时间,但仍然无法提出比在隐藏字段中使用变量更好的方法:
if ($_POST['somehiddenfield'] == 1) {
some_function_1();//doesnt matter if its a function or a method
}
if ($_POST['somehiddenfield'] == 2) {
$mainclass->somemethod();
}
//goes on indefinitely
另外,我想将所有内容保存在单个处理程序文件中,在该文件中将调用我的主类.因此,有没有一种比使用if … else更有效的方法?
解决方法:
我将使用所有可能的选项对key => value数组进行硬编码.传递隐藏的输入字段,检查您的帖子值和硬编码选项的键之间是否有任何交集,并将任何匹配的值作为函数调用.
$map = [
'yourHiddenField' => 'myFunctionName',
'anotherHiddenField' => 'myOtherFunctionName',
'yourOtherHiddenField' => 'yetAnotherfunctionName',
];
$intersection = array_intersect(array_keys($map), array_keys($_POST));
foreach ($intersection as $key) {
$this->{$map[$key])();
}
此代码尚未经过测试.
编辑:
在允许运行任何输入时,请务必谨慎,不要预先定义应允许运行的功能.
即使进行消毒也可能有多危险的示例:
class Test {
public $i = 1;
function __construct(){
$this->i++;
}
}
$formVariable = '__construct';
$t = new Test();
$t->{$formVariable}();
echo $t->i;
内容总结
以上是互联网集市为您收集整理的使用php进行有效的表单处理全部内容,希望文章能够帮你解决使用php进行有效的表单处理所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。