1
PHP와 MySQL로 인증 양식을 만들려고하는데 작동하지 않습니다. 이유가 궁금합니다.인증이 작동하지 않습니다.
나를 도울 수있는 사람이 있습니까? 선례 파일에서 암호 해시를했지만 연결되지 않았습니다. 이것은 독립적입니다.
감사합니다.
<?php
session_start();
function connect_db($host, $port, $db, $username, $password)
{
$pdo = new PDO("mysql:host=$host; port=$port; dbname=$db", $username, $password);
return $pdo;
}
if (isset($_POST["email"]) && isset($_POST["password"]) && !empty($_POST["email"]) && !empty($_POST["password"]))
{
$error_pass= "";
$email = $_POST["email"];
$password = $_POST["password"];
try
{
$pdo = connect_db("localhost", 3306, "*******", "******", "*******");
$sql = $pdo-> prepare("SELECT * FROM users WHERE email = :email AND password = :password");
$sql->bindParam(':email', $email);
$sql->bindParam(':password', $password);
$sql->execute();
$req = $sql->fetch();
echo $req["password"] . "SALUT \n";
var_dump($req["password"]);
if (password_verify($password, $req['password']) == 0) {
session_unset();
$error_pass = "Incorrect email/password";
}
else {
$_SESSION["name"] = $req["name"];
header("Location: index.php", true, 302);
}
}
catch (PDOException $e)
{
echo $e->getMessage();
}
if ($error_pass) {
echo $error_pass;
}
}
else {
echo "Some fields are missing";
}
?>
<!DOCTYPE html>
<html>
<body>
<form method="post" action ="login.php">
<input type="text" name="email">
<input type="text" name="password">
<input type="submit" name="submit" value ="submit">
</form>
</body>
</html>
bindParam 함께 할 필요가 : 그래서'$ SQL-> bindParam ('이메일', $ 이메일),' – Mihai
그것은 실수하지만 내 문제 –
안전 팁 해결되지 않는 예 미안 : 당신 인터넷에 사용자 이름 + 비밀번호를 게시하지 않도록 노력해야합니다. 또한 프로덕션 환경에서 사용할 계획이라면 암호를 더 강하게 만드십시오. – mpen