1. Dashboard
  2. Artikel
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  1. HTML - Webmaster Forum
  2. Programmierung - Entwickler Forum
  3. Datenbank Forum - MySQL und andere Datenbanksoftware

Registrierung

  • Gides
  • 15. Mai 2018 um 09:02
  • Gides
    Anfänger
    Beiträge
    3
    • 15. Mai 2018 um 09:02
    • #1

    Hallo zusammen,

    ich habe ein kleines Problem. Und zwar bekomme ich folgende Fehlermeldung:

    Zitat

    Warning: mysqli_stmt_close() expects parameter 1 to be mysqli_stmt, boolean given in /var/www/html/Gides/register.php on line 165

    Den Code hab ich hier:

    PHP
    // Check input errors before inserting in database
        if(empty($username_err) && empty($nname_err) && empty($vname_err) && empty($password_err) && empty($confirm_password_err)){
    
            // Prepare an insert statement
            $sql = "INSERT INTO users (username, vname, nname, password) VALUES (?, ?, ?, ?)";
    
            if($stmt = mysqli_prepare($link, $sql)){
                // Bind variables to the prepared statement as parameters
                mysqli_stmt_bind_param($stmt, "ssss", $param_username, $param_vname, $param_nname, $param_password);
    
                // Set parameters
                $param_username = $username;
                $param_vname = $vname;
                $param_nname = $nname;
                $param_password = password_hash($password, PASSWORD_DEFAULT); // Creates a password hash
    
                // Attempt to execute the prepared statement
                if(mysqli_stmt_execute($stmt)){
                    // Redirect to login page
                    header("location: bla.php");
                } else{
                    echo "Something went wrong. Please try again later.";
                }
            }
    
            // Close statement
            mysqli_stmt_close($stmt);     <--- Das ist die Betroffene Zeile 165 die den Fehler verursacht!
        }
    
        // Close connection
        mysqli_close($link);
    }
    ?>
    Alles anzeigen


    Das ist nicht der ganze Code da er über 200 Zeilen hat, aber falls er benötigt wird kann ich ihn gerne nachtragen.

    Danke schon einmal im Voraus falls mir jemand helfen kann:)

    3 Mal editiert, zuletzt von Gides (15. Mai 2018 um 13:38)

  • Bandit
    Gast
    • 15. Mai 2018 um 12:33
    • #2

    Aus der Doku:

    Zitat

    mysqli_prepare() returns a statement object or FALSE if an error occurred.


    Das bedeutet für deinen Quellcode, den du im übrigen demnächst bitte mit Code-Tags posten solltest, dass das hier

    PHP
    if($stmt = mysqli_prepare($link, $sql))


    in die Hose geht und ein false rauskommt und daher bei

    PHP
    mysqli_stmt_close($stmt);


    ein Boolean statt eines Statements übergeben wird

  • Gides
    Anfänger
    Beiträge
    3
    • 17. Mai 2018 um 13:49
    • #3

    Danke für die schnelle Antwort aber ich bekomme es einfach nicht gebacken...:cry:

    Sollte ich das stmt irgendwo anderst definieren oder etwas komplett anderes machen?

    Gruß
    Gides

  • Bandit
    Gast
    • 17. Mai 2018 um 14:42
    • #4

    Fehlerprüfung einbauen:

    PHP
    $stmt = mysqli_prepare($link, $sql)
       or die ("MySQL-Error: " . mysqli_error($link));

Tags

  • www
  • html
  • link
  • color
  • problem
  • input
  • location
  • code
  • php
  • empty
  • registrierung
  • header
  • else
  • temp
  • login
  • set
  • parameter
  • insert into
  • echo
  • before
  • password
  • redirect
  • register
  • confirm
  • hash
  1. Datenschutzerklärung
  2. Impressum
Community-Software: WoltLab Suite™
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
Zitat speichern