我是PHP的初学者,我正在尝试为项目构建一个注册表单,我使所有的验证成为可能,但是我不知道应该去哪里,我希望表单验证以下所有内容然后提交,如果一切都是真的。
PHP代码:
Record with colours added -> Gulp runs -> New colour variables are used within the stylesheet generation.
答案 0 :(得分:0)
查看我的评论。有不同的方法来处理提交,并且页面上通常有多个表单。我们假设您的表单有一个提交按钮。
<input type="submit" name="submit-form" value="Done">
伪代码就是这样的:
$formErrors = array();
// You would need to add this as a global to all your functions, and as mentioned in my comment, add your errors to this array rather than echoing them out from the functions
if (($_SERVER['REQUEST_METHOD'] == 'POST') && isset($_POST['submit-form'])) && checkblank() && checkPass() && ...etc) {
//form was submitted and is ok
} else {
//You echo out your form.
}
答案 1 :(得分:0)
为什么不使用jquery验证器插件?这是一个非常好的选择。
答案 2 :(得分:0)
我知道你是php的新手,但你必须记住所有后端代码都必须得到保护。这就是你需要进行大量检查的原因。此外,当您处理数据库时,您需要保护代码免受注入。现在你会发现有些人告诉你用javascript做这件事,不要听他们这样做!
任何人都可以在不使用你的js代码的情况下进行帖子查询,因此你的所有js检查都会被绕过。当然,您可以在发送到服务器之前在浏览器中进行一层检查,但您也必须在服务器中进行检查。
因此,当您检查发送给服务器的元素时,您必须检查它是否存在(!=null)
,这可以使用函数isset
轻松完成:
if ( isset($_POST['reg-username'],$_POST['reg-email'],$_POST['reg-password'], $_POST['reg-confirmPassword'] ){
// Further checks
}else{
// call a function that will return an error message
error($PARAMETERS_NOT_SET)
}
在数据库查询中使用客户端参数时,必须记住的第二件事是,检查是否有注入。这可能有点痛苦,这就是你必须使用prepared queries:
的原因$statement ="SELECT * FROM users WHERE username LIKE :username OR email LIKE :email ";
$sth = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
$sth->execute(array("username"=>$regUsername,"email"=>$regEmail));
$resultList= $sth->fetchAll();
PS:在stackoverflow中看到阿拉伯语非常酷。