2017-05-28 3 views
0

HI im Aufbau einer Online-Molkerei mit PHP und MySQL. Ich habe versucht, mich anzumelden, damit die Benutzerinformationen in der Datenbank gespeichert werden können, aber mit dieser Fehlermeldung: "Notiz: Undefinierte Variable: Fehler in C: \ wamp64 \ www \ Molkerei \ index.php in Zeile 85" l dont wissen, wie Sie dieses Problem lösen können. Bitte Ich brauche Hilfe ...Einfügen von Daten in MySQL-Datenbank (PHP, MySQL)

Dies ist der Code:

<?php 

if (array_key_exists("submit", $_POST)) { 

    $connection = mysqli_connect("localhost","root","","dairy_database"); 

    if(mysqli_connect_error()) { 

    die ("There was an error connection to the database"); 
    } 

    $error = ""; 

    if (!$_POST['email']) { 

     $error .= "An email address is required <br>"; 
    } 

    if (!$_POST['password']) { 

     $error .= "A password is required <br>"; 
    } 

    if ($error != "") { 

     $error = "<p> There were error(s) in your form:</p>".$error; 
    } 
    else{ 

     $query = "SELECT Id FROM users WHERE email = '".mysqli_real_escape_string($connection, $_POST['email'])."' LIMIT 1"; 
     $result = mysqli_query($connection, $query); 

     if (mysqli_num_rows($result) > 0) { 

      $error = "That email address is already taken."; 
     } 
     else{ 

      $query = "INSERT INTO users ('email', 'password') VALUES ('".mysqli_real_escape_string($connection, $_POST['email'])."', '".mysqli_real_escape_string($connection, $_POST['password'])."')"; 

        if (mysqli_query($connection, $query)) { 

         $error = "<p>Could not sign you up, Please try again later.</p>"; 
        } 
        else{ 

         $query = "UPDATE users SET password = '".md5(md5(mysqli_insert_id($connection)).$_POST['password'])."' WHERE Id = ".mysqli_insert_id($connection)." LIMIT 1"; 

         mysqli_query($connection, $query); 

         echo "Sign up successful"; 
        } 

     } 
    } 
} 

?> 





<!DOCTYPE html> 
<html> 
    <head> 
     <meta charset="utf-8"> 
     <meta name="viewport" content="width=device-width"> 
     <meta name="author" content="Bachir Amadou"> 
     <link href="https://fonts.googleapis.com/css?family=Abel|Comfortaa" rel="stylesheet"> 
     <link rel="stylesheet" href="../carousel/css/style.css" type="text/css"> 
     <link rel="stylesheet" href="coverflow/css/style.css"> 
     <title>Dairy</title> 
     <script src="https://code.jquery.com/jquery-3.2.1.min.js"> </script> 
     <script type="text/javascript" src=""></script> 
    </head> 
    <body> 
     <div id="wrapper"> 
      <div id="top"> 
       <img class="log-img" src="./img/notebook.png" alt="notebook"> 
       <h5>Online Dairy Management System</h5> 
       <h1>Web Base System</h1> 
      </div><!--END OF TOP--> 

      <div id="error"> <?php echo $error; ?></div> 

      <div id="signup"> 
       <form id="form-signup" method="post"> 

        <input type="email" class="user" name="email" placeholder="Email..." 
        required><br> 

        <input type="password" class="user" name="password" placeholder="Password" required><br> 


        <input type="submit" name="submit" class="sign-submit" value="Sign Up"> 

       </form> 
      </div><!--END OF LOG--> 

     </div><!--END OF WRAPPER--> 
    </body> 
    </html> 

Antwort

0

Es ist, weil die Variable $error in einem Zustand deklariert wird. Sie können die Funktion isset() verwenden, um zu überprüfen, ob die Variable gesetzt ist oder nicht. Eine alternative Lösung ist.

Ändern Sie diese Zeile zu

<div id="error"> <?php echo $error; ?></div> 

diesem.

<?php if(isset($error)){ ?> <div id="error"> <?php echo $error; ?></div><?php } ?> 

ODER

Deklarieren Sie die Variable, bevor die Bedingung wie

<?php 
     $error = ''; 
     if (array_key_exists("submit", $_POST)) { 


     ....STATEMENTS..... 

     } 
    ?> 

<div id="error"> <?php echo $error; ?></div> 

auch Sie einige Fehler in der Bedingungsanweisung in Einfügung haben. Ich habe die Abfrage unten aktualisiert.

PHP

<?php 

$error = ""; // declare it here 
if (array_key_exists("submit", $_POST)) { 

    $connection = mysqli_connect("localhost","root","","dairy_database"); 

    if(mysqli_connect_error()) { 

    die ("There was an error connection to the database"); 
    } 

    if (!$_POST['email']) { 

     $error .= "An email address is required <br>"; 
    } 

    if (!$_POST['password']) { 

     $error .= "A password is required <br>"; 
    } 

    if ($error != "") { 

     $error = "<p> There were error(s) in your form:</p>".$error; 
    } 
    else{ 

     $query = "SELECT Id FROM users WHERE email = '".mysqli_real_escape_string($connection, $_POST['email'])."' LIMIT 1"; 
     $result = mysqli_query($connection, $query); 

     if (mysqli_num_rows($result) > 0) { 

      $error = "That email address is already taken."; 
     } 
     else{ 

      $query = "INSERT INTO `users` (`email`, `password`) VALUES ('".mysqli_real_escape_string($connection, $_POST['email'])."', '".md5(md5(mysqli_real_escape_string($connection, $_POST['password'])))."');"; 

        if (!mysqli_query($connection, $query)) { 

         $error = "<p>Could not sign you up, Please try again later.</p>"; 
        } 
        else{ 

         $query = "UPDATE `users` SET `password` = '".md5(md5(mysqli_insert_id($connection)).$_POST['password'])."' WHERE Id = ".mysqli_insert_id($connection)." LIMIT 1;"; 

         mysqli_query($connection, $query); 

         echo "Sign up successful"; 
        } 

     } 
    } 
} 

?> 

HTML

<!DOCTYPE html> 
<html> 
    <head> 
     <meta charset="utf-8"> 
     <meta name="viewport" content="width=device-width"> 
     <meta name="author" content="Bachir Amadou"> 
     <link href="https://fonts.googleapis.com/css?family=Abel|Comfortaa" rel="stylesheet"> 
     <link rel="stylesheet" href="../carousel/css/style.css" type="text/css"> 
     <link rel="stylesheet" href="coverflow/css/style.css"> 
     <title>Dairy</title> 
     <script src="https://code.jquery.com/jquery-3.2.1.min.js"> </script> 
     <script type="text/javascript" src=""></script> 
    </head> 
    <body> 
     <div id="wrapper"> 
      <div id="top"> 
       <img class="log-img" src="./img/notebook.png" alt="notebook"> 
       <h5>Online Dairy Management System</h5> 
       <h1>Web Base System</h1> 
      </div><!--END OF TOP--> 

      <div id="error"> <?php echo $error; ?></div> 

      <div id="signup"> 
       <form id="form-signup" method="post"> 
       <input type="email" class="user" name="email" placeholder="Email..." 
       required><br> 

       <input type="password" class="user" name="password" placeholder="Password" required><br> 


       <input type="submit" name="submit" class="sign-submit" value="Sign Up"> 

      </form> 
     </div><!--END OF LOG--> 

    </div><!--END OF WRAPPER--> 
</body> 

+0

ok l die Änderungen haben Sie vorgeschlagen, und die Fehlermeldung ist weg, aber im noch nicht speichern die Benutzer Daten in die Datenbank. Wenn ich versuche, mich anzumelden, gibt es die erfolgreiche Anmeldemeldung, aber keine Einträge in der Datenbank. – Bachir

+0

Ihre Eingabeabfrage ist falsch. Ich habe meine Antwort aktualisiert. Überprüfen Sie bitte das. – AdhershMNair

-1

Sie müssen die Fehlervariable vor dem if-Bedingungen zu erklären. Wie folgt aus:

<?php 

$error = ""; // declare it here 

if (array_key_exists("submit", $_POST)) { 

    $connection = mysqli_connect("localhost","root","","dairy_database"); 

    if(mysqli_connect_error()) { 

    die ("There was an error connection to the database"); 
    } 

    if (!$_POST['email']) { 

     $error .= "An email address is required <br>"; 
    } 

    if (!$_POST['password']) { 

     $error .= "A password is required <br>"; 
    } 

    if ($error != "") { 

     $error = "<p> There were error(s) in your form:</p>".$error; 
    } 
    else{ 

     $query = "SELECT Id FROM users WHERE email = '".mysqli_real_escape_string($connection, $_POST['email'])."' LIMIT 1"; 
     $result = mysqli_query($connection, $query); 

     if (mysqli_num_rows($result) > 0) { 

      $error = "That email address is already taken."; 
     } 
     else{ 

      $query = "INSERT INTO users ('email', 'password') VALUES ('".mysqli_real_escape_string($connection, $_POST['email'])."', '".mysqli_real_escape_string($connection, $_POST['password'])."')"; 

        if (mysqli_query($connection, $query)) { 

         $error = "<p>Could not sign you up, Please try again later.</p>"; 
        } 
        else{ 

         $query = "UPDATE users SET password = '".md5(md5(mysqli_insert_id($connection)).$_POST['password'])."' WHERE Id = ".mysqli_insert_id($connection)." LIMIT 1"; 

         mysqli_query($connection, $query); 

         echo "Sign up successful"; 
        } 

     } 
    } 
} 

?> 





<!DOCTYPE html> 
<html> 
    <head> 
     <meta charset="utf-8"> 
     <meta name="viewport" content="width=device-width"> 
     <meta name="author" content="Bachir Amadou"> 
     <link href="https://fonts.googleapis.com/css?family=Abel|Comfortaa" rel="stylesheet"> 
     <link rel="stylesheet" href="../carousel/css/style.css" type="text/css"> 
     <link rel="stylesheet" href="coverflow/css/style.css"> 
     <title>Dairy</title> 
     <script src="https://code.jquery.com/jquery-3.2.1.min.js"> </script> 
     <script type="text/javascript" src=""></script> 
    </head> 
    <body> 
     <div id="wrapper"> 
      <div id="top"> 
       <img class="log-img" src="./img/notebook.png" alt="notebook"> 
       <h5>Online Dairy Management System</h5> 
       <h1>Web Base System</h1> 
      </div><!--END OF TOP--> 

      <div id="error"> <?php echo $error; ?></div> 

      <div id="signup"> 
       <form id="form-signup" method="post"> 

        <input type="email" class="user" name="email" placeholder="Email..." 
        required><br> 

        <input type="password" class="user" name="password" placeholder="Password" required><br> 


        <input type="submit" name="submit" class="sign-submit" value="Sign Up"> 

       </form> 
      </div><!--END OF LOG--> 

     </div><!--END OF WRAPPER--> 
    </body> 
    </html> 

Auch sollten Sie Prepared Statements anstelle von mysqli https://www.w3schools.com/php/php_mysql_prepared_statements.asp

+0

ok Ich habe die von Ihnen vorgeschlagenen Änderungen durchgeführt und die Fehlermeldung ist weg, aber ich kann die Benutzerdaten immer noch nicht in der Datenbank speichern. Wenn ich versuche, mich anzumelden, gibt es die erfolgreiche Anmeldemeldung, aber keine Einträge in der Datenbank. – Bachir

Verwandte Themen