doğrulamaz. Bunları password_verify kullanarak doğrularım. Benim veritabanında bir karma şifreyi girmek ve bunu doğrulamaya çalıştığınızdapassword_verify Ben password_hash aracılığıyla benim eklenen şifreleri karma karma
Ancak, her iki çıkışlar hep birbirinden farklıdır.
<?php include 'header.php';?>
<body>
<form role="form" method="post" action="login.php">
<div class="form-group">
<label for="usrname">Username:</label>
<input type="text" class="form-control" name="usrname" placeholder="Enter username">
</div>
<div class="form-group">
<label for="passwrd">Password:</label>
</div>
<input type="password" class="form-control" name="passwrd" placeholder="Enter password">
<br>
<input type="checkbox">Remember Me
<br>
<br>
<button type="submit" class="btn btn-default">Submit</button>
</form>
</body>
</html>
login.php (işleyici):
<?php
include 'vars.php';
include 'header.php';
$sql="SELECT * FROM members WHERE usrname='$usrname'";
$result=mysqli_query($con,$sql);
$count=mysqli_num_rows($result);
$row=mysqli_fetch_row($result);
$verify=password_verify($hash,$row[2]);
if($verify){
$_SESSION["usrname"]=$usrname;
echo "Correct";
}
else {
echo "user: " . $usrname. "<br>";
echo "pass: " . $hash. "<br>";
echo "db: " . $row[2]."<br>";
echo "Wrong Username or Password";
}
?>
vars.php:
<?php
$h='localhost';$u='caelin';$p='****';$d='ombouwnh';
$con=mysqli_connect($h,$u,$p,$d);
$usrname=$_POST['usrname'];
$passwrd=$_POST['passwrd'];
$hash=password_hash($passwrd, PASSWORD_DEFAULT);
?>
sayfalarım, şöyle
main_login.php (form) vardır Kullanarak giriş yapmaya çalıştığımda
kullanıcı adı 'caca' ve parola 'caca' Her ikisini de tekrar denediğimde farklı bir çıktı alıyorum. Bu özel sorunu stackoverflow'ta bulamıyorum.
TIA
PSPS. Daha fazla ayrıntı gerekiyorsa,
sütun uzunluğu karma karşılamak için yeterli olduğundan emin olun; Bu genellikle bir çok hata yapar. –
varchar (255) @ Fred-ii- – caelin
'$ satır [2]' sayısının doğru olduğundan emin olun. Bu gerçekten masandaki 3. sütun, doğru mu? Artı 'session_start();' yüklü, değil mi? '$ _SESSION ['usrname']' 'alakasız olabilir. –