Ankündigung

Einklappen
Keine Ankündigung bisher.

Abspeichern funktioniert nicht

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Abspeichern funktioniert nicht

    Hallo!
    Ich programmiere zurzeit eine Login-System mit myslqi.
    Irgendwie werden bei der Registration keine Daten in der Datenbank gespeichert, ich erhalte allerdings auch keine Fehlermeldung.

    Script:

    <!DOCTYPE html>
    <div style="background-color:black;
    width: 100%;
    height: 110px;
    padding: 5px;
    border:3px lightgreen solid;
    ">
    <FONT COLOR="#FFFFFF">
    <center><h1><font face="Comic Sans Ms">Cook</font></h1></center><center>
    <h3>Register</h3></center>
    </FONT>
    </div>
    <h3>Here you can create your Account.</h3>
    <a href="username.php">I've got an Account.</a>

    <form action="" method="POST">
    <table border="0">
    <tr>
    <p><td>First Name:</td> <td><input type="text" name="firstname" placeholder="Enter your First Name"/></td></p>
    </tr>
    <tr>
    <p><td>Last Name:</td> <td><input type="text" name="lastname" placeholder="Enter your Last Name"/></td></p>
    </tr>
    <td> <FONT COLOR="#FFFFFF">Example:</FONT> </td><td> <FONT COLOR="#FFFFFF">Example:</FONT> </td>
    <tr>
    <p><td>Username:</td> <td><input type="text" name="username" placeholder="Enter your Username"/></td></p>
    </tr>
    <tr>
    <p><td>Email:</td> <td><input type="email" name="email" placeholder="Enter your Email"/></td></p>
    </tr>
    <tr>
    <p><td>Password:</td> <td><input type="text" name="password" placeholder="Enter your Password"/></td></p>
    </tr>
    </table>
    <p><input type="submit" value="Register"/></p>
    </form>

    PHP-Code:
    <?php

    $db 
    = new mysqli('localhost','cook-user','123','cook');

    if(
    $db->connect_error) {
    echo 
    "<b>Critical Error: </b> The connection to the Database failed.";
    }

    if(isset(
    $_POST['absenden'])) {
    $firstname $_POST['firstname'];
    $lastname $_POST['lastname'];

    $username $_POST['username'];
    $email $_POST['email'];
    $password $_POST['password'];

    $search_user $db->prepare("SELECT ID FROM daten WHERE username = ?");
    $search_user->bind_param('s',$username);
    $search_user->execute();
    $search_result $search_user->get_result();

    if(
    $search_result->num_rows == 0) {
    if(!
    strlen($username) > 25) {
    $password md5($password);
    $db->prepare("INSERT INTO daten (Firstname,Lastname,Username,Email,Password,Regist ered,Last_Login) VALUES (?,?,?,?,?,?,?)");
    $insert->bind_param('sssssss',$firstname,$lastname,$userna me,$email,$password,NOW(),NOW());
    $insert->execute();
    if(
    $insert !== false) {
    echo 
    "Your Account was created successfully.";
    }
    }
    else
    echo 
    "Your Username mustn't be longer than 25 letters.";
    }
    else
    echo 
    "This username is already used.";
    }


    ?>

    Danke im Voraus!

  • #2
    Regist ered und $userna me
    Was machen die Leerzeichen darin?

    Siehe auch http://php.net/manual/de/mysqli.error.php
    Die Deutsche Rechtschreibung ist Freeware! Du darfst sie kostenlos nutzen, allerdings ist sie nicht Open Source, d.h. Du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

    Kommentar


    • #3
      Zitat von uha Beitrag anzeigen
      Regist ered und $userna me
      Was machen die Leerzeichen darin?

      Siehe auch http://php.net/manual/de/mysqli.error.php
      Das mit den Leerzeichen ist ein Fehler beim einfügen bei dieser Website!
      Sie sind im Script nicht enthalten.

      Kommentar


      • #4
        Du solltest die Fehlerausgabe von mysqli aktivieren:
        PHP-Code:
        mysqli_report(MYSQLI_REPORT_ALL); 
        Datenbankabfragen haben übrigens inmitten der HTML-Augabe nichts verloren. Beachte das EVA-Prinzip.

        Kommentar


        • #5
          Außerdem ist das HTML fehlerhaft und <font> tags schon seit Jahrzehnten veraltet.

          Kommentar


          • #6

            Kannst da den w3c Validator verwenden, der zeigt dir alle Fehler an, die dein HTML hat.

            Kommentar


            • #7
              Es sind eigentlich keine datenbank Befehle im html script

              Kommentar


              • #8
                Nichtsdestotrotz ist dein HTML invalide.

                Kommentar


                • #9
                  PHP-Code:
                  <?php

                      mysqli_report
                  (MYSQLI_REPORT_ALL);

                      
                  $db = new mysqli('localhost','cook-user','123','cook');

                      if(
                  $db->connect_error)
                          echo 
                  "<b>Critical Error: </b> $db->connect_error";

                      if(isset(
                  $_POST['absenden'])) {
                          
                  $firstname $_POST['firstname'];
                          
                  $lastname $_POST['lastname'];

                          
                  $username $_POST['username'];
                          
                  $email $_POST['email'];
                          
                  $password $_POST['password'];

                          
                  $search_user $db->prepare("SELECT ID FROM daten WHERE username = ?");
                          
                  $search_user->bind_param('s',$username);
                          
                  $search_user->execute();
                          
                  $search_result $search_user->get_result();

                          if(
                  $search_result->num_rows == 0) {

                              
                  $password md5($password);
                              
                  $insert $db->query("INSERT INTO daten (Firstname,Lastname,Username,Email,Password,Registered,Last_Login) VALUES ($firstname,$lastname,$username,$email,$password,NOW(),NOW())");
                              echo 
                  "Your Account was created successfully.";

                          }
                              else
                                  echo 
                  "This username is already used.";
                      }


                  ?>
                  Dieses Skript erzeugt folgende Fehlermeldung:
                  Fatal error: Uncaught mysqli_sql_exception: No index used in query/prepared statement SELECT ID FROM daten WHERE username = ? in C:\Xampp\htdocs\Programme\Cook\action_register.php :20 Stack trace: #0 C:\Xampp\htdocs\Programme\Cook\action_register.php (20): mysqli_stmt->execute() #1 {main} thrown in C:\Xampp\htdocs\Programme\Cook\action_register.php on line 20

                  Kommentar


                  • #10
                    No index used in query/prepared statement
                    halte ich für ne eindeutige Fehlerbeschreibung.

                    Kommentar


                    • #11
                      Ich verstehe es trodzdem nich...

                      Kommentar


                      • #12
                        Dann lies dir das hier mal durch: http://use-the-index-luke.com/

                        Kommentar


                        • #13
                          PHP-Code:
                          <?php

                              mysqli_report
                          (MYSQLI_REPORT_ALL);

                              
                          $db = new mysqli('localhost','cook-user','123','cook');

                              if(
                          $db->connect_error)
                                  echo 
                          "<b>Critical Error: </b> $db->connect_error";

                              if(isset(
                          $_POST['absenden'])) {
                                  
                          $firstname $_POST['firstname'];
                                  
                          $lastname $_POST['lastname'];

                                  
                          $username $_POST['username'];
                                  
                          $email $_POST['email'];
                                  
                          $password $_POST['password'];

                                  
                          $search_user $db->query("SELECT ID FROM daten WHERE username = $username");
                                  
                          $search_result $search_user->get_result();

                                  if(
                          $search_result->num_rows == 0) {

                                      
                          $password md5($password);
                                      
                          $insert $db->query("INSERT INTO daten (Firstname,Lastname,Username,Email,Password,Registered,Last_Login) VALUES ($firstname,$lastname,$username,$email,$password,NOW(),NOW())");
                                      echo 
                          "Your Account was created successfully.";

                                  }
                                      else
                                          echo 
                          "This username is already used.";
                              }


                          ?>
                          Was heißt das?

                          Kommentar


                          • #14
                            Sieht aus wie PHP code. Allerdings ist kein einziger SQL-Query korrekt (nicht zu reden von den SQL-Injection Lücken).

                            Kommentar


                            • #15
                              Ist eigentlich von einem Youtube Video...

                              Kommentar

                              Lädt...
                              X