Mein php-Anmeldesystem stellt keine Verbindung zu meiner lokal gehosteten phpmyadmin-Datenbank her, obwohl ich Rechtschreibfehler überprüft habe und alles so aussieht, als ob es funktionieren sollte. Der Header ändert sich nicht, obwohl er im PHP-Anmeldeskript angegeben ist. Nichts wird in meine Datenbank übertragen (was keine Fehler enthält). Wenn mir jemand sagen könnte, was ich falsch mache, wäre das großartig. (PS footer.php und header.php korrekt sind und in Form enthalten)PHP-Anmeldesystem funktioniert nicht (phpmyadmin, wampserver)
Registrieren Fehler-Handler und anmelden Skript:
<?php
if (isset($_POST['submit'])) {
include_once 'dbh.inc.php';
$first = mysqli_real_escape_string($conn, $_POST)$_POST['first'];
$last = mysqli_real_escape_string($conn, $_POST)$_POST['last'];
$email = mysqli_real_escape_string($conn, $_POST)$_POST['email'];
$username = mysqli_real_escape_string($conn, $_POST)$_POST['username'];
$password = mysqli_real_escape_string($conn, $_POST)$_POST['password'];
//Error handlers
//Check for empty fields
if (empty($first)) || (empty($last)) || (empty($email)) ||
(empty($username)) || (empty($password)) {
header("Location: ../signup.php?signup=empty");
exit();
} else {
//Check is input characters are valid
if (!preg_match("/^[a-zA-Z]*$/", $first) || (!preg_match("/^[a-zA-
Z]*$/", $last)) {
header("Location: ../signup.php?signup=invalid");
exit();
} else {
//Check if email is valid
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
header("Location: ../signup.php?signup=empty");
exit();
} else {
$sql = "SELECT * FROM users WHERE user_username='username'";
$result = mysqli_query($conn, $sql);
$resultCheck = mysqli_num_rows($result);
if ($resultCheck > 0) {
header("Location: ../signup.php?signup=usertaken");
exit();
} else {
//Hashing the password
$hashedPassword = password_hash($password,
PASSWORD_DEFAULT);
//Insert the user into the database
$sql = "INSERT INTO users (user_first, user_last,
user_email, user_username, user_password) VALUES ('$first', '$last',
'$email', '$username' '$hashedPassword');";
mysqli_query($conn, $sql);
header("Location: ../signup.php?signup=success");
exit();
}
}
}
}
} else {
header("Location: ../signup.php");
exit();
}
Datenbankverbindung:
<?php
$dbServername = "localhost";
$dbUsername = "root";
$dbPassword = "";
$dbServername = "loginsystem";
$conn = mysqli_connect($dbServername, $dbUsername, $dbPassword,
$dbServername);
Anmeldeformular (html in einer PHP-Datei):
<?php include_once 'header.php';?>
<section class="main-container">
<div class="wrapper">
<h2>Sign Up</h2>
<form class="Sign" action="includes/signup.inc.php" method="POST">
<input type="text" name="first" placeholder="First Name"><br>
<input type="text" name="last" placeholder="Last Name"><br>
<input type="email" name="email" placeholder="E-mail"><br>
<input type="text" name="username" placeholder="Username"><br>
<input type="password" name="password" placeholder="Password"><br>
<button type="submit" name="">Sign Up!</button><br>
</form>
</div>
</section>
<?php include_once 'footer.php';?>
Bitte helfen Sie, wenn Sie können. Es wäre sehr geschätzt. Vielen Dank!
'$ _POST ['submit']' wird nicht gesetzt, da Ihre Schaltfläche keinen Namen 'submit' hat. – Jeff
hast du überhaupt überprüft, ob du in das erste 'if' gelangst? – Jeff
+ viele andere Probleme einschließlich 'mysqli_real_escape_string ($ conn, $ _POST) $ _ POST ['first'];' und SELECT-Abfrage suchen nach 'user_username = 'username'' und die SQL-Injektionen. Es zeigt auch keine Fehler, wenn Sie es nicht fragen. –