2017-11-29 47 views
0

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!

+2

'$ _POST ['submit']' wird nicht gesetzt, da Ihre Schaltfläche keinen Namen 'submit' hat. – Jeff

+2

hast du überhaupt überprüft, ob du in das erste 'if' gelangst? – Jeff

+4

+ 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. –

Antwort

0

die Namen Geben Sie 'Senden' Button Ihrer HTML-Anmeldeseite einreichen:

<button type="submit" name="submit">Sign Up!</button> 

ändern PHP Anmelden Seite POST:

$first = mysqli_real_escape_string($conn, $_POST['first']); 
$last = mysqli_real_escape_string($conn, $_POST['last']); 
$email = mysqli_real_escape_string($conn, $_POST['email']); 
$username = mysqli_real_escape_string($conn, $_POST['username']); 
$password = mysqli_real_escape_string($conn, $_POST['password']); 

ändert Überprüfung leere Werte von Anw zu:

if ((empty($first)) || (empty($last)) or (empty($email)) || (empty($username)) || (empty($password))) 

Ändern Sie die Gültigkeit der eingegebenen Zeichen, wenn stmt:

if ((!preg_match("/^[a-zA-Z]*$/", $first)) || ((!preg_match("/^[a-zA-Z]*$/", $last)))) 
Verwandte Themen