Ich habe viel gesucht, aber alles funktioniert nicht für mich.mysql record und post record ist gleich, aber nicht gleich
Ich habe eine einfache Tabelle in mysql:
id int 11 //user id
log_meno varchar(255) //user name
cmp_heslo varchar(255) //user password
in dieser Tabelle i einen Datensatz haben:
id is 1
log_meno is kuki
cmp_heslo is 839512db1882dff3fcb596012982790870f6f06e //it is hashed word kuki by sha1
als ich
in HTML-Anmeldeformular<form action="login.php" method="post">
<tr><td>Prihlasovacie meno: </td><td><input type="text" name="login_name" ></td></tr>
<tr><td>Heslo: </td><td><input type="password" name="login_password"></td></tr>
<tr><td colspan="2"><input type="submit" value="Prihlásiť"></td></tr>
<tr><td colspan="2"><a href="#">Zabudnuté heslo</a></td></tr>
</form>
und letzte i login.php haben
<?php
include ('conn.php');
//Uzivatelsky vstup
$log_meno = mysqli_real_escape_string ($Conn, $_POST['login_name']);
$cmp_heslo = sha1($_POST['login_password']);
$sql = "SELECT cmp_heslo FROM firmy WHERE log_meno='$log_meno'";
$result = mysqli_query($Conn, $sql);
if (mysqli_num_rows($result) > 0) {
while($row=mysqli_fetch_assoc($result)) {
echo "$row[cmp_heslo]<br>$cmp_heslo";
}
} else {
echo "0 results";
}
if ($cmp_heslo == $row[cmp_heslo])
{
\t \t echo "logged";
}
else
{
\t echo "<br>bad password";
}
mysqli_close($Conn);
?>
mein Problem Datei ist, dass $ row [cmp_heslo] und cmp_heslo $ ist gleich, aber wenn ich Aktion Login tun habe ich dieses Ergebnis:
839512db1882dff3fcb596012982790870f6f06e 839512db1882dff3fcb596012982790870f6f06e falsches Kennwort
warum es schlecht ist Passwort Ich denke, dass es protokolliert werden sollte. Sorry für mein Englisch und vielen Dank für Ihre Antwort
Anstatt 'echo' verwenden Sie' var_dump'. Sehen Sie, wie lange die Variablen sind. Vielleicht hat man einen führenden/nachgestellten Raum. Ihre Indizes sollten auch '$ row ['cmp_heslo']' in Anführungszeichen gesetzt werden. – chris85