Rob*_*015 1 php forms validation
我已经尝试了此处查询的所有其他答案,但没有一个适合我的需求。我使用的是 PHP 5.2,我开始认为这个过滤器可能不适用于我的版本?我在下面添加了代码,如果您看到任何内容请告诉我。我已经尝试过使用和不使用清理,每次它都会跳过整个子句并将表单提交到数据库。
if(isset($_POST['fname']) && !empty($_POST['fname']) AND isset($_POST['lname']) && !empty($_POST['lname']) AND isset($_POST['college']) && !empty($_POST['college']) AND isset($_POST['address']) && !empty($_POST['address']) AND isset($_POST['username']) && !empty($_POST['username']) AND isset($_POST['password']) && !empty($_POST['password']) AND $passwordEmail == $password2){
$address = $_POST['address'];
$address = filter_var($address, FILTER_SANITIZE_EMAIL);
if(!filter_var($address, FILTER_VALIDATE_EMAIL) === false) {
header("location: registration.php?remarks=successEmail&college=$college&fname=$fname&lname=$lname&contact=$contact&username=$username");
}
else{
header("location: registration.php?remarks=failedEmail&college=$college&fname=$fname&lname=$lname&contact=$contact&username=$username");
}
Run Code Online (Sandbox Code Playgroud)
编辑:
我删除了重复的功能,但!它仍然不起作用。
唯一的补充是移动了“!” 并拆除第一个过滤器。
这是我现在使用的代码,它仍然失败,并取自给出的一些答案:
if(isset($_POST['fname']) && !empty($_POST['fname']) AND isset($_POST['lname']) && !empty($_POST['lname']) AND isset($_POST['college']) && !empty($_POST['college']) AND isset($_POST['address']) && !empty($_POST['address']) AND isset($_POST['username']) && !empty($_POST['username']) AND isset($_POST['password']) && !empty($_POST['password']) AND $passwordEmail == $password2){
$address = $_POST['address'];
if(filter_var($address, FILTER_VALIDATE_EMAIL) != false) {
header("location: registration.php?remarks=successEmail&college=$college&fname=$fname&lname=$lname&contact=$contact&username=$username");
}
else{
header("location: registration.php?remarks=failedEmail&college=$college&fname=$fname&lname=$lname&contact=$contact&username=$username");
}
Run Code Online (Sandbox Code Playgroud)
最终编辑:我复制了我找到的这个示例,只是更改了变量名称,现在它可以工作了。
<?php
$email = "john.doe@example.com";
if (!filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
echo("$email is a valid email address");
} else {
echo("$email is not a valid email address");
}
?>
Run Code Online (Sandbox Code Playgroud)
你的!位置不对。
if(filter_var($address, FILTER_VALIDATE_EMAIL) !== false) {
Run Code Online (Sandbox Code Playgroud)
通过将其放在函数名称之前,您可以说“如果 filter_var() 返回值的相反值等于 false 并且类型相同”。这给了你true === false这当然是错误的。
你真正的意思是“如果filter_var()的返回值等于false并且类型相同”。这给了你true !== false这当然是真的。
或者简化一下:
if(filter_var($address, FILTER_VALIDATE_EMAIL)) {
Run Code Online (Sandbox Code Playgroud)