Я хочу сделать следующую форму более безопасной, используя bcrypt или что-то в этом роде.Защитите мою регистрационную форму
Я новичок в PHP, поэтому принимайте это медленно и не ожидайте, что я пойму «не использую ..., используйте ....» без объяснения причин.
Futhermore, я искал в Google для некоторых форм учебных пособий, но ничего не нашел с шифрованием, как Bcrypt, hash256/512 и т.д.
<?php
error_reporting(E_ALL | E_STRICT);
ini_set('display_startup_errors',1);
ini_set('display_errors',1);
require_once 'database.php';
$Username = $_POST['username']; #Username
$Password = $_POST['password']; #Password
$Password2 = $_POST['password2'];#Password
if(empty(Password2)){
echo "Please enter a valid confirmation password.";
$msg .=" Please enter a valid confirmation password.";
echo
"<script>
alert('$msg');
window.location.href='../register.html';
</script>";
exit;
}
if($Password !== Password2){
echo "Sorry, passwords do not match!";
$msgPass = "Sorry, passwords do not match!";
echo
"<script>
alert('$msgPass');
window.location.href='../register.html';
</script>";
exit;
}
function NewUser()
{
global $Username,$Password;
#Egxwrish stoixeiwn
$query = "INSERT INTO users (username,password) VALUES ('$Username','$Password')";
$data = mysql_query ($query) or die(mysql_error());
if($data)
{
return "YOUR REGISTRATION IS COMPLETED...";
}
}
function SignUp()
{
global $Username,$Password;
if(!empty($Username)) //checking the 'username' name which is from register.html, if is it empty or have some text
{
$query = mysql_query("SELECT * FROM users WHERE username = '$Username'");
if(!$row = mysql_fetch_array($query))
{
$msg = NewUser();
echo $msg;
}
else {
echo "SORRY...YOU ARE ALREADY REGISTERED USER...!";
die(mysql_error());
}
}
}
if(isset($_POST['submit']))
{
//User registration
SignUp();
echo "Your account has been created successfully. \\n Thank you for joined us!";
$msgSuccess = "Your account has been created successfully. \\n Thank you for joined us!";
echo
"<script>
alert('$msgSuccess');
window.location.href='../index.php';
</script>";
}
?>
Я не знаю, как вы не нашли ничего надежного. Вот официальная документация password_hash(), если вы не знали об этом. http://php.net/manual/en/function.password-hash.php –