Ich bin neu in PHP und versuche, ein Mitglied Login zu erstellen. Ich bezahle mit diesem Codeblock und war neugierig, wie ich den Benutzernamen oder uid
von der aktuellen Sitzung bekommen kann, damit ich den Benutzer mit seinem Benutzernamen begrüßen kann.Erhalte den Benutzernamen aus der aktuellen PHP-Sitzung
<?php
session_start();
include 'db.php';
$uid = $_POST['uid'];
$pwd = $_POST['pwd'];
$sql = "SELECT * FROM users WHERE uid='$uid' AND pwd='$pwd'";
$result = mysqli_query($conn, $sql);
if (!$row == mysqli_fetch_assoc($result)) {
echo "Your username or password is incorrect.";
} else {
$_SESSION['id'] = !$row['$id'];
}
header("Location: index.php");
Ich habe versucht, diese if-Anweisung den Benutzernamen angezeigt werden, aber es angezeigt gar kein Ergebnis. Mein Gedanke ist, dass, wenn diese Anweisung die ID des Benutzers anzeigt, die gleiche Zeile die UID erhalten würde, aber das funktioniert nicht.
if (!$row == mysqli_fetch_assoc($result)) {
echo "Your username or password is incorrect.";
} else {
$_SESSION['id'] = !$row['$id'];
$_SESSION['uid'] = !$row['$uid'];
}
** Speichern Sie niemals Nur-Text-Passwörter! ** Bitte verwenden Sie PHP [integrierte Funktionen] (http://jayblanchard.net/proper_password_hashing_with_PHP.html), um die Passwortsicherheit zu behandeln. Wenn Sie eine PHP-Version kleiner als 5.5 verwenden, können Sie das 'password_hash()' [compatibility pack] (https://github.com/ircmaxell/password_compat) verwenden. Stellen Sie sicher, dass Sie *** [Kennwörter nicht entgehen] (http://Stackoverflow.com/q/36628418/1011527) *** oder verwenden Sie einen anderen Bereinigungsmechanismus vor dem Hashing. Wenn Sie dies tun, * ändert * das Passwort und verursacht unnötige zusätzliche Codierung. –
[Little Bobby] (http://bobby-tables.com/) sagt *** [Ihr Skript ist für SQL-Injektionsattacken gefährdet.] (Http://stackoverflow.com/questions/60174/how-can- i-prevent-sql-injection-in-php *** Erfahren Sie mehr über [vorbereitete] (http://en.wikipedia.org/wiki/Prepared_statement) Anweisungen für [MySQLi] (http://php.net/manual /mysqli.quickstart.prepared-statements.php). Sogar [die Zeichenfolge zu entkommen] (http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string) ist nicht sicher! [Glauben Sie es nicht?] (Http://stackoverflow.com/q/38297105/1011527) –
'! $ Row ['$ id'];' wird sicherstellen, dass die Sitzungsvariable nicht gefüllt ist. Entfernen Sie die '!' –