-1
Ich versuche eine Login-Sitzung mit PHP zu machen und ich bekomme und Fehler bei "Benutzername" -Feld meiner Datenbank. Mein Quellcode ist hier:PHP Hinweis: Undefinierter Index: Benutzername
index.php
<?php
session_start();
if(isset($_POST['bttLogin'])){
require 'connect.php';
$username = $_POST['username'];
$password = $_POST['password'];
$result = mysqli_query($con, 'SELECT * FROM account WHERE username=" '.$username.' " AND password="'.$password.' " ');
if (mysqli_num_rows($result)==1){
$_SESSION['username'] = $username;
header('Location: welcome.php');
}
else
echo "Account invalid";
}
if(isset($_POST['username'])){
$filename = $_POST['username'];
}
if (isset($_GET['logout'])){
session_unregister('username');
}
?>
<form method="post">
<table cellpadding="2" cellspacing="2" border="0">
<tr>
<td> Username </td>
<td><input type = "text" name="usermame"></td>
</tr>
<tr>
<td> Password </td>
<td><input type = "password" name="password"></td>
</tr>
<tr>
<td> </td>
<td><input type = "submit" name="bttLogin" value="Login"></td>
</tr>
</table>
</form>
ich meine Verbindung mit meiner Datenbank gemacht, aber es sagt immer wieder, dass Benutzernamen nicht definiert ist. Bitte helfen Sie.
Können Sie uns zeigen Sie Ihre Struktur Kontentabelle und welchen Fehler Sie – Dale
Ihr Skript sind immer gefährdet ist [** SQL-Injection-Angriff **] (https://stackoverflow.com/q/60174/5914775). Schau dir an, was mit [Little Bobby Tables] passiert ist (http://bobby-tables.com/). Verwenden Sie stattdessen [vorbereitete parametrisierte Anweisungen] (https://php.net/manual/en/mysqli.quickstart.prepared-statements.php). –
** Speichern Sie niemals Nur-Text-Passwörter! ** PHP stellt ['password_hash()'] (https://php.net/manual/en/function.password-hash.php) und ['password_verify()'] (https://php.net/manual/en/function.password-verify.php) benutzen Sie sie bitte. Wenn Sie eine PHP-Version vor 5.5 verwenden (hier ist ein Kompatibilitätspaket verfügbar) (https://github.com/ircmaxell/password_compat). Stellen Sie sicher, dass Sie [** Passwörter nicht umgehen **] (https://StackOverflow.com/q/36628418/5914775) oder verwenden Sie einen anderen Bereinigungsmechanismus vor dem Hashing. Dies ändert das Passwort und verursacht unnötige zusätzliche Codierung. –