Я пытаюсь проверить пароль против одного в базе данных, но он не работает. Посмотрите мой код и сообщите мне, что случилось.
Код для сохранения имени пользователя и пароля в базе данных.
<?php echo "enter the username \n"; $username = trim(fgets(STDIN)); echo "enter the password\n"; $password = trim(fgets(STDIN)); //connecting to database $con=mysqli_connect("localhost","sqldata","sqldata","accounts"); // Check connection if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } $salt = substr(sha1(mt_rand()),0,22); $hashedPassword= crypt($password , '$2y$10$' . $salt); echo $hashedPassword; mysqli_query($con,"INSERT INTO login (username, password) VALUES ('$username', '$hashedPassword')"); mysqli_close($con) ?>
Код для проверки пароля выглядит следующим образом.
<?php echo "enter the username \n"; $username = trim(fgets(STDIN)); echo "enter the password\n"; $password = trim(fgets(STDIN)); //connecting to database $db = mysql_connect("localhost","sqldata","sqldata") or die(mysql_error()); //selecting our database $db_select = mysql_select_db("accounts", $db) or die(mysql_error()); $result= mysql_query("select * from login where username = '$username' "); if ( !$result ) exit( "$userName wasn't found in the database!" ); $row = mysql_fetch_array( $result ); $storedPassword = $row['password']; $salt = substr(sha1(mt_rand()),0,22); $hashedPassword= crypt($password , '$2y$10$' . $salt); if (crypt($hashedPassword) == $storedPassword) { echo "ok"; } else { echo "error"; } ?>