所以我一直在创建自己的网站,并且一直试图找到一种设置PHP脚本的好方法,这样它就不会太混乱。我遇到过两种“嵌套”脚本的方法,以便在遇到错误时不会继续运行,但只是想知道哪种方法可以更好地避免脚本注入,或者两种方式都无关紧要。
选项A(沿着该行向下运行页面):
function callExit($error) {
//Close Database
exit($error);
}
if (!$_POST['title']) { callExit("No title."); }
if (!$_POST['body']) { callExit("No body."); }
//Continue Script
或选项B(很多嵌套):
if ($_POST['title']) {
if ($_POST['body']) {
//Continue Script
} else {
//Close Database
}
} else {
//Close Database
}
或者有些不同?
答案 0 :(得分:0)
我倾向于这样做,以强调可能性的多重选择:
if (!$_POST['title']) { callExit("No title."); }
elseif (!$_POST['body']) { callExit("No body."); }
或者,如果您有很多字段,请执行循环:
$required_fields=array("title"=>"No title", "body"=>"You are missing a body parameter");
foreach ($required_fields AS $fieldname=>$message) {
if (!$_POST[$fieldname]) { callExit($message) }
答案 1 :(得分:0)
很多人似乎都担心这一点,特别是在PHP中。基本上,你所说的是,如何在我的应用程序/程序中添加一个抽象层?
您可以使用现有的验证框架。我不会命名框架,但你可以找到它们。
您还可以创建自己的验证类/函数,以抽象出这个“低级”样板代码,例如检查isset($_POST[X])
。
如果您实现了自己的验证框架/类,那么它将使您的应用程序更漂亮,并且肯定会减少API调用者必须拥有的代码行。
最后,你想要实现什么目标?您是否正在为将要使用一次的客户端构建一个应用程序,而不是更新,如果是这样,则不需要使代码漂亮。如果您对代码感到自豪,并希望它能够令人印象深刻,并希望学习,那么建立自己的验证框架/类。尽管现有代码库可以解决这个问题,但自己构建它只会成为开发人员/工程师的增长催化剂。
最后,但肯定并非最不重要的是,没有“适当的”做事方式。