douyouzheng2209 2015-11-28 09:56
浏览 80
已采纳

php用于密码验证

I posted part of the below code to another question for a problem I had,and found the solution.I can register,login and logout from my android device,which is good. However,now I am getting something strange. I added an extra functionality,so as to validate that both $user_pass and $confirm password variables are equal(comparing strings). However I always get a json message "Passwords don't match" from this.

if($userPass!==$confirmPass){


        $don = array('result' =>"fail","message"=>"Passwords don't match");

 }

The whole code is the following.

 <?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);

?>
  • 写回答

3条回答 默认 最新

  • drd2551 2015-11-28 10:09
    关注

    Try using

    if(!strcmp($userPass,$confirmPass))
    

    instead of

    if($userPass!==$confirmPass)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 2024-五一综合模拟赛
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭