下面是如何基于电子邮件、会话密钥和消息编写程序的示例代码。我在错误处理中使用了大部分代码,像这样:
首先,我需要检查null,然后检查长度、会话、与db的连接,最后检查实际结果.... ....它很容易被忽略,而且代码变得很长,我该如何简化它?谢谢你。
if(checkNullExisit($aEmail, $aSessionKey, $aMessage)){
//Null params detect
return;
}
if(strlen($aEmail) > MAX_EMAIL || strlen($aSessionKey) > MAX_SESSIONKEY || strlen($aMessage) > MAX_MESSAGE){
//Too long
return;
}
if(isSessionValid($aEmail, $aSessionKey)){
if(connectDatabase()){
if(DBManagerSingleton::saveMessage($aEmail, $aSessionKey, $aMessage, NULL)){
//The ONLY Success Case
return;
}else{
//Can't write in DB
return;
}
}else{
//DB Cannot Connect
return;
}
}else{
//Invalid Session
return;
}
如果你想缩短你的验证和数据库连接,我认为你有两种主要的方法。
- Procedural:为这些东西编写函数。例如,你可以使用valid_email()函数。
- OOP:使用OOP来创建你需要的类,例如表单验证类
我能感受到你的痛苦,验证是一个PITA,使用框架或独立库,如Respect或Phorms可能会缓解你的痛苦…