繁体   English   中英

如何检查用户是否已经存在?

[英]How to check if user already exist?

class Users {
    public $username = null;
    public $password = null;
    public $salt = "Zo4rU5Z1YyKJAASY0PT6EUg7BBYdlEhPaNLuxAwU8lqu1ElzHv0Ri7EM6irpx5w";

   public function __construct( $data = array() ) {
         if( isset( $data['username'] ) ) $this->username = stripslashes( strip_tags( >$data['username'] ) );
         if( isset( $data['password'] ) ) $this->password = stripslashes( strip_tags( >$data['password'] ) );
    }
    }

 public function storeFormValues( $params ) {
         $this->__construct( $params ); 
 }

 public function register() {
    $correct = false;
        try {
            $con = new PDO( DB_DSN, DB_USERNAME, DB_PASSWORD );
            $con->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
            $sql = "INSERT INTO users(username, password) VALUES(:username, :password)";

            $stmt = $con->prepare( $sql );
            $stmt->bindValue( "username", $this->username, PDO::PARAM_STR );
            $stmt->bindValue( "password", hash("sha256", $this->password . $this->salt), PDO::PARAM_STR );
            $stmt->execute();
            return "Registration Successful <br/> <a href='index.php'>Login Now</a>";
        }catch( PDOException $e ) {
            return $e->getMessage();
        }
 }

 }

我想检查数据库中是否已经存在用户,因为它可以让我随时创建具有相同用户名的帐户。 谢谢。

我会建议一些帮助。

1)使您的用户名列在数据库中唯一。 这样可以防止插入不唯一的用户名。

2)一旦在用户名上具有唯一索引,请尝试插入,然后检查插入是否成功。 由于您可以从mysql获取错误代码,因此如果查询不成功并且错误代码是由于值重复而导致的,则会导致用户名已存在错误。

这是用户名存在时如何返回的基本思想。

public function username($username)
{
    $sth = $this->db->prepare("SELECT id, username FROM table WHERE username = ?");
    $sth->execute(array($username));

    $row = $sth->fetch();

    if(username == $row['username'])
    {
        do code here since username does not exist
    } else {
        echo 'username already exists';
    }
}   
$sell= mysql_query("select * from `signup` where emailid='$email'");
$cntc=mysql_num_rows($sell);
if($cntc==0) {
  $sql=mysql_query("INSERT INTO `signup`(`firstname`,`lastname`,`emailid`,`dob`,`companyname`,`phoneno`,`password`) VALUES ('$name','$lastname','$email','$dob','$comname','$phone','$pass')");
  if($sql) {
    echo'inserted successfully';
  }
} else {
  echo'Email is already exist. ';
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM