|
|
|
ช่วยหน่อยครับ login ด้วย password_verify จากdatabase ไม่ผ่าน |
|
|
|
|
|
|
|
รบกวนหน่อยครับ
กำลังทำหน้า login
แต่พอเวลา login ด้วย password_verify ไม่ผ่านซะงั้น
Code (PHP)
class employee extends db
{
private $user;
private $pass;
private $fname;
private $lname;
private $id;
private $phone;
private $pic;
private $bd;
private $pos;
public function insert($user, $pass, $fname, $lname, $bd, $phone, $pic, $pos)
{
$create = date("Y-m-d");
$passEncode = password_hash($pass, PASSWORD_DEFAULT);
$stmt = $this->conn()->prepare("INSERT INTO employee (em_id,em_user,em_pass,em_fname,em_lname,em_bd,em_phone,em_pic,pos_id,em_create)
VALUE (NULL,'$user','$passEncode','$fname','$lname','$bd','$phone','$pic',$pos,$create)");
$stmt->execute();
}
public function login($user, $pass)
{
$this->user = $user;
$this->pass = $pass;
$stmt = $this->conn()->prepare("SELECT * FROM employee WHERE em_user = ?");
$stmt->bindParam(1,$this->user);
$stmt->execute();
while ( $row = $stmt->fetch()) {
if(password_verify($this->pass, $row['em_pass'])){
echo "ok";
}else{
echo "NO";
}
}
}
}
$user = new employee;
$user->login("admin","admin");
ผม code อะไรผิดรึเปล่าครับ
ขอบคุณครับ
Tag : PHP, MySQL
|
|
|
|
|
|
Date :
2020-02-22 10:05:02 |
By :
Schick |
View :
1611 |
Reply :
8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ทดสอบโค้ดก่อนว่าทำงานหรือยัง
Code (PHP)
while ( $row = $stmt->fetch()) {
print_r($row);
|
|
|
|
|
Date :
2020-02-22 16:44:56 |
By :
{Cyberman} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Print_r ดึงข้อมูลได้ครับ
|
|
|
|
|
Date :
2020-02-22 22:54:12 |
By :
Schick |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
public function login($user, $pass)
{
echo $pass;// <<----- แน่ใจนะว่าไม่ได้ hash มาก่อน?
แล้วตอน insert แน่ใจนะว่ารหัสผ่านคือ admin โดยไม่มีเว้นวรรคอะไรเลย? ตัวเล็กใหญ่ตรงกันหมด?
|
ประวัติการแก้ไข 2020-02-22 23:17:14
|
|
|
|
Date :
2020-02-22 23:15:09 |
By :
mr.v |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
มันมีอีกวิธีนึงที่ framework ใช้กันบ่อย โดยที่ไม่ไปยุ่งเกี่ยวกับ database user โดยทำการ relationship db_user , db_verify โดย
DB : users
id,user,password,verify[enum[off,on]]
DB : verify
id,user_id,token
- เมื่อสมัครสมาชิกหรือลงทะเบียน เสร็จสิ้น สร้าง random string+numeric ตามจำนวนที่ส่งที่กำหนด ลงใน db:verify->token โดยเมื่อสมัครเสร็จสิ้น ส่ง user_id+token ไปที่ email
- เมื่อกด Link ที่ส่งไปเข้าใน Email นำค่า user_id + token ไปเช็คค่าใน db:verify ค่อยไป update status db:user->verify[on]
มันอาจเป็นวิธีนึงที่ง่ายกว่า
|
ประวัติการแก้ไข 2020-02-23 10:01:33
|
|
|
|
Date :
2020-02-23 09:59:54 |
By :
Genesis™ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|