Ich versuche, eine Variable aus PHP anzuzeigen, die ich von einem MySQL-Server bekomme. Es wird jedoch nur eine leere Zeichenfolge als 'Name'-Variable angezeigt.PHP-Variable nicht auf Seite angezeigt
Mein Code ist:
$GLOBALS[name] = "";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("<br>Connection failed: " . $conn->connect_error);
$out = "Error when connecting to the database.";
} else {
echo "<br>Connected successfully";
$sql = "SELECT name, pwd FROM server1.us WHERE UPPER(eml) = UPPER('$email')";
$result = $conn->query($sql);
$pwdHash = "";
if ($result->num_rows == 0) {
$out = "Your email is not registered yet.";
}
else {
while($row = $result->fetch_assoc()) {
$pwdHash = $row['pwd'];
}
}
if (password_verify($pwd, $pwdHash) == false) {
$out = "Your passwords do not match!";
}
else if($email == '') {
$out = "You have to input an email.";
}
else if($pwd == '') {
$out = "You have to input a password.";
}
else {
while($row = $result->fetch_assoc()) {
$name = $row['name'];
}
}
$conn->close();
Mein Code den Wert anzuzeigen:
<?php
if($out == null) {
echo "<h3>Thank you for logging in, $name!</h3>";
echo "<p>You will be redirected...</p>";
} else {
echo "<h3>Oops! Apparently something went wrong...</h3>";
echo "<p>$out</p>";
echo "<p>You can try again <a data-toggle='modal' data-target='#loginModal'>here</a> .</p>";
}
?>
Wenn er ausgeführt wird, wird kein Fehler gegeben, aber die Ausgabe ist
Danke für Einloggen, ''! Sie werden weitergeleitet ...
Meine Tabelle in der Datenbank folgende Spalten:
id
name
eml
pwd
Die Verwendung von global wirft einen internen Serverfehler. Außerdem fehlt ein Semikolon für $ row = $ result-> fetch_assoc(); wenn ich mich nicht irre. –