【发布时间】:2011-03-24 20:51:11
【问题描述】:
所以我刚刚阅读了Why to never use 'or die'.
我比以往任何时候都更加困惑。我正在验证一个复杂的表单,我通过许多嵌套级别的 if 语句和什么不是,我将一个变量传递给称为 $status 的表单,它只能是“新”或“编辑”。然后,当用户提交表单以再次验证时,表单将 $status 值作为隐藏字段 ($_POST) 传递。我想确保用户不会意外更改此设置,因此我想在“新”或“编辑”以外的其他内容通过时捕获错误。 (虽然我想完全消除用户在理想世界中影响这个变量的可能性。)
所以我想我会在 if 语句中使用 DIE()
<nested ifs>
Select ($status){
Case 'edit':
break;
Case 'new':
break;
default:
//using example from article
trigger_error("An error that should not occur has occurred", E_USER_ERROR);
break;
}
</nested ifs>
我真的不明白这怎么比 die() 更干净?本质上,我想调用另一个函数,该函数向用户显示他们在这个时刻可以做什么来修复错误的一些选项,但我希望代码绝对停止运行,因为我不希望 if 语句进一步向下继续解析任何东西,并在发现“新”或“编辑”以外的内容时生成错误。
我不确定我有多清楚,所以请随时要求我详细说明任何不清楚的地方。 (或者更好的是,隐藏的用户字段可以被黑客入侵吗?如何防止?:P)
【问题讨论】:
标签: php forms error-handling hidden-field