用于密码验证的php
我把下面的部分代码贴到了另一个问题上,找到了解决方案。我可以从我的android设备注册、登录和注销,这很好。然而,现在我得到了一些奇怪的东西。我添加了一个额外的功能,以便验证$user_pass和$confirm password变量是否相等(比较字符串)。然而,我总是从这里收到一条json消息“密码不匹配”用于密码验证的php,php,android,validation,passwords,Php,Android,Validation,Passwords,我把下面的部分代码贴到了另一个问题上,找到了解决方案。我可以从我的android设备注册、登录和注销,这很好。然而,现在我得到了一些奇怪的东西。我添加了一个额外的功能,以便验证$user_pass和$confirm password变量是否相等(比较字符串)。然而,我总是从这里收到一条json消息“密码不匹配” if($userPass!==$confirmPass){ $don = array('result' =>"fail","message"=>"Pass
if($userPass!==$confirmPass){
$don = array('result' =>"fail","message"=>"Passwords don't match");
}
整个代码如下所示
<?php
session_start();
require "init.php";
header('Content-type: application/json');
$email = $_POST['email'];
$user_name = $_POST['user_name'];
$user_pass = $_POST['user_pass'];
$passwordEncrypted = sha1($user_pass);
$confirmPass = $_POST['confirm_pass'];
$confPasswordEncrypted = sha1($confirmPass);
$msg = "Congratulations. You are now registered to the most amazing app ever!";
if(!filter_var($email, FILTER_VALIDATE_EMAIL)){
$don = array('result' =>"fail","message"=>"Please enter a valid email");
}
if($email && $user_name && $user_pass && $confirmPass && filter_var($email, FILTER_VALIDATE_EMAIL)){
$sql_query = "select * from user_info WHERE email ='".mysqli_real_escape_string($con, $email)."' or user_name
='".mysqli_real_escape_string($con, $user_name)."'";
$result = mysqli_query($con, $sql_query);
$results = mysqli_num_rows($result);
if ($results){
$don = array('result' =>"fail","message"=>"Email or username exists.");
}else{
$sql_query = "insert into user_info values('$email','$user_name','$passwordEncrypted','$confPasswordEncrypted');";
if(mysqli_query($con,$sql_query)){
$don = array('result' =>"success","message"=>"Successfully registered!Well done");
//mail($email,"Well done",$msg);
$_SESSION['email']=$row['email'];
}
}
} if(!$email){
$don = array('result' =>"fail","message"=>"Please enter your email");
}else if(!$user_name){
$don = array('result' =>"fail","message"=>"Please enter your username");
}else if(!$user_pass){
$don = array('result' =>"fail","message"=>"Please enter a password");
//The last if statement causes the problem.
}else if($userPass!==$confirmPass){
$don = array('result' =>"fail","message"=>"Passwords don't match");
}
echo json_encode($don);
?>
使用链接中描述的strcmp方法尝试使用
if(!strcmp($userPass,$confirmPass))
而不是
if($userPass!==$confirmPass)
修好了。我有一个额外的父母
if($userPass!==$confirmPass))
所以我把它改成了
if($userPass!==$confirmPass)
:)使用if($userPass!=$confirmPass){
而不是if($userPass!==$confirmPass){
并检查它是否工作。仍然会遇到相同的问题。也许它们真的不同?您是否尝试了var\u dump($userPass,$confirmPass)
?我没有,因为我没有使用html表单。php文件仅为android设备指定。使用strcmp(..)函数,我现在可以注册,即使两个密码不同。请在提问之前清理您的代码