php oop 检查用户是否存在?

标签 php mysql pdo

如果用户名存在,我想显示一个错误,但是没有抛出任何错误。

函数在 User.php 上,我试图显示该函数的错误。

我引用了 this ,但是它与 OOP 方式无关。

用户.php

public function check_user_exists($username)
{
    try{
        $stmt = $this->db->prepare("SELECT user_name FROM users WHERE user_name=:username");
        $stmt->execute(array(':username'=>$username));
        $row = $stmt->fetch(PDO::FETCH_ASSOC);
        $row['user_name'] == $username;

    }

    catch(PDOExeception $e)
    {
        echo $e->getMessage();
    }
}

索引.php

<?php
session_start();

require_once 'User.php';
$guest = new User();



if($guest->is_logged())
{
    $guest->redirect('profile');
}


if (isset($_POST['btn_signup']) ){

    $username = htmlentities($_POST['txt_username']);
    $unpass = htmlentities($_POST['txt_password']);
    $password = password_hash($unpass, PASSWORD_BCRYPT, ['cost' => 12] );
    $unemail = $_POST['txt_email'];
    $email = filter_var($unemail, FILTER_VALIDATE_EMAIL);

    $guest = new User();


    if($email == ""){
       $errors[]= "Enter a Email";
    }

    if($username == ""){
       $errors[]= "Enter a Username please";

    }

    if($password == ""){
        $errors[]= "Enter a Password";
    }



    if($guest->check_user_exists($username)){
        $errors[]= "Username Already Taken";
    }

    if($guest->signup($email,$password,$username)){
        $guest->redirect('profile');
        die('didnt redirect');       
    }

    else{
      $errors[]= "Invalid Entry";
    }
}

$title = "Home";
require_once 'layouts/header.php';


?>


    <div class="container">
        <div class="row">
            <div class="col-md-6">

            <?php
            if(isset($errors))
            {
               foreach($errors as $error)
               {
                  ?>
                  <div class="alert alert-danger">
                      <i class="glyphicon glyphicon-warning-sign"></i> &nbsp; <?php echo $error; ?>
                  </div>
                  <?php
               }
            }
            else if(isset($_GET['joined']))
            {
                 ?>
                 <div class="alert alert-info">
                      <i class="glyphicon glyphicon-log-in"></i> &nbsp; Successfully registered <a href='index.php'>login</a> here
                 </div>
                 <?php
            }
            ?>

                <h1>Sign Up</h1>




                <form action ="" method="POST">
                  <div class="form-group">
                    <label for="Email">Email address</label>
                    <input type="email" class="form-control" aria-describedby="emailHelp" name="txt_email" placeholder="Enter email">
                  </div>

                  <div class="form-group">
                    <label for="Username">Username</label>
                    <input type="text" class="form-control" aria-describedby="emailHelp" name="txt_username" placeholder="Enter Username">
                  </div>


                  <div class="form-group">
                    <label for="Password">Password</label>
                    <input type="password" class="form-control" aria-describedby="emailHelp" name="txt_password" placeholder="Enter password">
                  </div>


                     <button type="submit" name="btn_signup" class="btn btn-primary">Submit</button>
                </form>

            </div>
        </div>
    </div>


</body>
</html>

最佳答案

public function check_user_exists($username)
{
    try{
        $stmt = $this->db->prepare("SELECT user_name FROM users WHERE user_name=:username");
        $stmt->execute(array(':username'=>$username));
        return $stmt->fetchColumn() > 0;  // fetchColumn return the number of rows selected
    }

    catch(PDOExeception $e)
    {
        echo $e->getMessage();
    }
}

关于php oop 检查用户是否存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44317945/

相关文章:

php - 将 SQL 查询的值存储在变量中

php - 使用超链接从数据库获取帖子内容 - PHP

php - mySQL自增问题: Duplicate entry '4294967295' for key 1

php - 多个文件和数据

php - 迁移的默认数组值

php - 我怎样才能使用php中的prepare语句获取insert_id?

php - 将数据从 csv 上传到 mysql 表的相同唯一 ID

php - 无法从 mySQL 存储过程返回结果

PHP 从数组/随机字生成器/将字符串拆分到数组中获取值

php - $_GET 未定义索引单选按钮