कोड नीचे सूचीबद्ध है:

<?php 
    class User {
         protected $pdo;enter code here

         function __construct($pdo){
            $this->pdo = $pdo;
         }
    public function checkInput($var){
           $var = htmlspecialchars($var);
           $var = trim($var);
           $var = stripcslashes($var);
           return $var;
    }

    public function login($email,$password){
        $stmt = $this->pdo->prepare("SELECT 'user_id' FROM 'users' WHERE 'email' = :email AND 'password' = :password");
        $stmt->bindParam(":user_id", $user_id, PDO::PARAM_STR);
        $stmt->bindParam(":password", $password, PDO::PARAM_STR);
        $stmt->execute();

        $user = $stmt->fetch(PDO::FETCH_OBJ);
        $count = $stmt->rowCount();

        if($count > 0){
            $_SESSION['user_id'] = $user->user_id;
            header('Location: home.php');
        }else{
            return false;
        }
    }    
    }
?>
-2
Anirudh Singh 31 मई 2018, 08:12

1 उत्तर

सबसे बढ़िया उत्तर

आपकी क्वेरी में सिनेटेक्स त्रुटि है और आप गलत पैरामीटर पास करने का प्रयास कर रहे हैं। आपका $user_id कहां है, इसलिए यह $email होना चाहिए क्योंकि आप $email और $password प्राप्त कर रहे हैं।

परिवर्तन

$stmt->bindParam(":user_id", $user_id, PDO::PARAM_STR);

साथ में

$stmt->bindParam(":email", $email, PDO::PARAM_STR);

और बदलें

$stmt = $this->pdo->prepare("SELECT 'user_id' FROM 'users' WHERE 'email' = :email AND 'password' = :password");

साथ में

$stmt = $this->pdo->prepare("SELECT user_id FROM users WHERE email = :email AND password = :password");
0
Rahul Shrivastava 31 मई 2018, 08:26