Skip to main content
Code Review

Return to Question

replaced http://stackoverflow.com/ with https://stackoverflow.com/
Source Link

I am learning PHP and have been looking into a suitable way to safely store password data in MySQL.

Following advice from here (http://stackoverflow.com/questions/4795385/how-do-you-use-bcrypt-for-hashing-passwords-in-php https://stackoverflow.com/questions/4795385/how-do-you-use-bcrypt-for-hashing-passwords-in-php), is this an acceptable way to deal with passwords?

The code is a very basic example and I haven't included things like error checking / checking if user already exists etc. to keep my example concise.

New Register User:

$fld_email = $_POST['fld_email'];
$fld_name = $_POST['fld_name'];
$fld_pwd = $_POST['fld_pwd'];
$hashToStoreInDb = password_hash($fld_pwd, PASSWORD_BCRYPT, array("cost" => 11));
 $sql = "INSERT INTO tbl_a_users (fld_email
 , fld_name
 , fld_pwd
 , fld_date) 
 VALUES (:fld_email
 , :fld_name
 , :fld_pwd
 , now())";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':fld_email', $fld_email);
$stmt->bindParam(':fld_name', $fld_name);
$stmt->bindParam(':fld_pwd', $hashToStoreInDb);
$stmt->execute();

New Process Login:

$fld_email = $_POST['fld_email'];
$fld_pwd_form = $_POST['fld_pwd'];
$stmt = $pdo->prepare('SELECT fld_pwd FROM tbl_a_users WHERE fld_email = :email LIMIT 1');
$stmt->bindParam(':email', $fld_email);
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_OBJ);
$isPasswordCorrect = password_verify($fld_pwd_form, $row->fld_pwd);
if ($isPasswordCorrect == true) {
 // do something
} else {
 // do something else
}

There is no error message here, but I wanted to check with experts about whether this is an acceptable approach before I continue work on this area.

I will also be using HTTPS for the login / register pages.

I am learning PHP and have been looking into a suitable way to safely store password data in MySQL.

Following advice from here (http://stackoverflow.com/questions/4795385/how-do-you-use-bcrypt-for-hashing-passwords-in-php), is this an acceptable way to deal with passwords?

The code is a very basic example and I haven't included things like error checking / checking if user already exists etc. to keep my example concise.

New Register User:

$fld_email = $_POST['fld_email'];
$fld_name = $_POST['fld_name'];
$fld_pwd = $_POST['fld_pwd'];
$hashToStoreInDb = password_hash($fld_pwd, PASSWORD_BCRYPT, array("cost" => 11));
 $sql = "INSERT INTO tbl_a_users (fld_email
 , fld_name
 , fld_pwd
 , fld_date) 
 VALUES (:fld_email
 , :fld_name
 , :fld_pwd
 , now())";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':fld_email', $fld_email);
$stmt->bindParam(':fld_name', $fld_name);
$stmt->bindParam(':fld_pwd', $hashToStoreInDb);
$stmt->execute();

New Process Login:

$fld_email = $_POST['fld_email'];
$fld_pwd_form = $_POST['fld_pwd'];
$stmt = $pdo->prepare('SELECT fld_pwd FROM tbl_a_users WHERE fld_email = :email LIMIT 1');
$stmt->bindParam(':email', $fld_email);
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_OBJ);
$isPasswordCorrect = password_verify($fld_pwd_form, $row->fld_pwd);
if ($isPasswordCorrect == true) {
 // do something
} else {
 // do something else
}

There is no error message here, but I wanted to check with experts about whether this is an acceptable approach before I continue work on this area.

I will also be using HTTPS for the login / register pages.

I am learning PHP and have been looking into a suitable way to safely store password data in MySQL.

Following advice from here (https://stackoverflow.com/questions/4795385/how-do-you-use-bcrypt-for-hashing-passwords-in-php), is this an acceptable way to deal with passwords?

The code is a very basic example and I haven't included things like error checking / checking if user already exists etc. to keep my example concise.

New Register User:

$fld_email = $_POST['fld_email'];
$fld_name = $_POST['fld_name'];
$fld_pwd = $_POST['fld_pwd'];
$hashToStoreInDb = password_hash($fld_pwd, PASSWORD_BCRYPT, array("cost" => 11));
 $sql = "INSERT INTO tbl_a_users (fld_email
 , fld_name
 , fld_pwd
 , fld_date) 
 VALUES (:fld_email
 , :fld_name
 , :fld_pwd
 , now())";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':fld_email', $fld_email);
$stmt->bindParam(':fld_name', $fld_name);
$stmt->bindParam(':fld_pwd', $hashToStoreInDb);
$stmt->execute();

New Process Login:

$fld_email = $_POST['fld_email'];
$fld_pwd_form = $_POST['fld_pwd'];
$stmt = $pdo->prepare('SELECT fld_pwd FROM tbl_a_users WHERE fld_email = :email LIMIT 1');
$stmt->bindParam(':email', $fld_email);
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_OBJ);
$isPasswordCorrect = password_verify($fld_pwd_form, $row->fld_pwd);
if ($isPasswordCorrect == true) {
 // do something
} else {
 // do something else
}

There is no error message here, but I wanted to check with experts about whether this is an acceptable approach before I continue work on this area.

I will also be using HTTPS for the login / register pages.

edited tags
Link
Mast
  • 13.8k
  • 12
  • 57
  • 127
Source Link
4532066
  • 153
  • 3

Simple bcrypt Register User and User Login using PHP - is this approach acceptable?

I am learning PHP and have been looking into a suitable way to safely store password data in MySQL.

Following advice from here (http://stackoverflow.com/questions/4795385/how-do-you-use-bcrypt-for-hashing-passwords-in-php), is this an acceptable way to deal with passwords?

The code is a very basic example and I haven't included things like error checking / checking if user already exists etc. to keep my example concise.

New Register User:

$fld_email = $_POST['fld_email'];
$fld_name = $_POST['fld_name'];
$fld_pwd = $_POST['fld_pwd'];
$hashToStoreInDb = password_hash($fld_pwd, PASSWORD_BCRYPT, array("cost" => 11));
 $sql = "INSERT INTO tbl_a_users (fld_email
 , fld_name
 , fld_pwd
 , fld_date) 
 VALUES (:fld_email
 , :fld_name
 , :fld_pwd
 , now())";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':fld_email', $fld_email);
$stmt->bindParam(':fld_name', $fld_name);
$stmt->bindParam(':fld_pwd', $hashToStoreInDb);
$stmt->execute();

New Process Login:

$fld_email = $_POST['fld_email'];
$fld_pwd_form = $_POST['fld_pwd'];
$stmt = $pdo->prepare('SELECT fld_pwd FROM tbl_a_users WHERE fld_email = :email LIMIT 1');
$stmt->bindParam(':email', $fld_email);
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_OBJ);
$isPasswordCorrect = password_verify($fld_pwd_form, $row->fld_pwd);
if ($isPasswordCorrect == true) {
 // do something
} else {
 // do something else
}

There is no error message here, but I wanted to check with experts about whether this is an acceptable approach before I continue work on this area.

I will also be using HTTPS for the login / register pages.

default

AltStyle によって変換されたページ (->オリジナル) /