2016-12-21 1 views
-4

Ich habe diesen Code verwendet, um eine Benutzerregistrierungsseite auf meiner Website zu erstellen. Ich zunächst meiner Datenbank verbunden und haben dann die folgenden Codes ----->Stimmt irgendetwas mit diesem Code nicht?

<form action="index.php" method="post"> 
    <p id="usr1">Name : </p><input id="input1" placeholder="Username" type="text" name="username" required> </br> 
    </br> 
    <p id="usr2">Password : </p><input id="input2" placeholder="Password" type="text" name="pwd" required> </br> 
    <p id="usr3">Password : </p><input id="input3" placeholder="Re-Type your password" type="text" name="cpwd" required> </br> 
    </br> 
    <input id="sub" name="subbox" type="submit"> 
</form> 

<?php 
    if (isset($_POST['submit_button'])) { 
     $username= $_POST['username']; 
     $password=$_POST['pwd']; 
     $conpwd=$_POST['cpwd']; 
    } 
    if ($password == $conpwd) { 
     $query = "SELECT * FROM login WHERE name='$username' "; 
     $query_run = mysqli_query($con,$query); 
     if (mysqli_num_rows($query_run) > 1) { 
     echo '<script type="text/javascript">alert("This Username Already exists. Please try another username!")</script>'; 
     // the above code will check if the username is already taken or not. 
     }else { 
     $query = "insert into login values('$username' , '$password')"; 
           $query_run = mysqli_query($con,$query); 
     if ($query_run) { 
      echo '<script type="text/javascript">alert("Registration Successful!")</script><a href="../">Click Here To Continue</a>'; 
      $_SESSION['username'] = $username; 
      $_SESSION['password'] = $password; 
      header("Location: homepage.php"); 
     }else { 
      echo '<script type="text/javascript">alert("Server Error. Please try again after a few minutes!")</script>'; 
     } 
     } 
    }else { 
     echo "Please check and re-type both passwords"; 
    } 
?> 

Aber es zurückgeben immer einige errors.This ist das, was ich sehe, wenn ich versuche, den Code auszuführen

enter image description here

+0

Ist der gesamte Code in einer Datei? Oder ist das HTML-Bit in einer anderen Datei als die andere? –

+1

'Registrierungsseite' Heute, 2016, ist Ihr Tryout eine schlechte Übung, da Sie die Passowrd-Ebene in der Datenbank speichern. Besser recode alles und lesen Sie zuerst über Passworthashing in PHP. SQL-Injektionen sind ebenfalls möglich. – JustOnUnderMillions

+1

* "Stimmt irgendetwas mit diesem Code nicht?" * - Ja, es gibt eine Fehlermeldung, die Ihnen hier geholfen hätte. –

Antwort

2

Stimmt irgendetwas mit diesem Code nicht?

Um Ihre erste Frage zu beantworten, ist ja etwas nicht in Ordnung. Ihr Code ist anfällig für SQL-Injection. Sie sollten sich folgendes ansehen: How can I prevent SQL injection in PHP? Und das Passwort wird in Ihrer Datenbank gespeichert, was bedeutet, dass Sie Ihren Benutzer nicht respektieren. Es gibt einige andere Probleme mit dem Code-Stil, aber es ist nur ein Bonus.

Wie auch immer, die Sache, die Sie das "Alarm" Problem verursachen, ist, dass submit_button Taste nicht existiert. Es gibt keinen Knopf mit diesem Namen. Ihre if Bedingung ist immer falsch. So müssen Sie ersetzen:

if (isset($_POST['submit_button'])) { 

Mit

if (isset($_POST['subbox'])) { 

Und vielleicht Wert auf Ihre Eingabe hinzufügen (nicht sicher, ob es erforderlich ist, habe ich nicht getestet):

<input id="sub" name="subbox" type="submit" value="1"> 

Dank @ Fred-ii-

+0

obwohl es anfällig für eine SQL-Injektion ist, löst die Frage nicht. Schau dir ihren Code nochmal und sehr genau an. –

+0

@ Fred-ii- Du meinst, ich habe etwas offensichtlich übersehen, das den "Fehler" erzeugt? Wie auch immer, die Frage ist: "Stimmt irgendetwas mit diesem Code nicht?" (im Titel), also weiß ich, dass es ein Troll ist, ABER ich habe die Frage tatsächlich beantwortet. –

+0

Sieh dir das an if (isset ($ _ POST ['submit_button'])) {...} "Rate, was hier passiert ... ok, ich sage dir:" nichts ". –

Verwandte Themen