Archief - Probleem met mysqli fetch

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Jonathan

Legacy Member
Hoi,

Ik zit al een paar uur te sukkelen met een nochtans eenvoudig stuk code. Ik ben ergens de mist in gegaan maar weet niet goed waar. Uiteindelijk heb ik besloten om het hier te komen vragen.

Het eerste deel van m'n code werkt zoals ze hoort, doch bij de functie $stmt->fetch() gaat hij uit de bocht.

Wanneer de login gegevens in de $_POST correct zijn is er niks aan de hand, dan krijg ik gewoon "Welkom $user" bericht. Wanneer de login gegevens echter verkeerd zijn krijg ik de error "Er is een fout opgetreden" ( de 1ste van de 2 daar beneden in de code ) zonder verdere info ( Ik krijg dus geen error terug van die stmt->error ) terwijl ik het bericht "foute gegevens verwacht".

Mijn manier van werken lijkt me correct en toch lukt het echt niet, ik word stilaan gek dat ik dit niet opgelost krijg :/

Heb de code een beetje vereenvoudigd en enkel de basis laten staan om het makkelijker te maken ( kben zeker dat het probleem gebeurt in dit deel van de code ).

PHP:
<?php

    // kijken of er effectief geklikt is ( beveiliging ).
    if( isset( $_POST["btnLogin"] ) ){
        
        // gebruikersnaam en wachtwoord in variabelen steken en het paswoord als md5-hash coderen.
        $username = trim($_POST["txtUsername"]);
        $password = md5($_POST["txtPassword"]);
        // echo $username . $password;
        
        $sql = "SELECT gebruikersnaam, created FROM tblusers WHERE gebruikersnaam=? AND password=?";
        
        // prepared statement.
        if($stmt = $dbc->prepare($sql)){
            
            $stmt->bind_param("ss", $username, $password);
            
            if($stmt->execute()){ 
            
                $stmt->store_result();
                $stmt->bind_result($user, $created);
                
                if($stmt->fetch()){
                    if($stmt->num_rows() == 0){
                        
                        $_SESSION["logged_in"] = false;
                        $melding = "foute gegevens";    
                        
                    } else {
                        
                        $_SESSION["logged_in"] = true;
                        $melding = "welkom " . $user;    
                        
                    }
                    
                    echo $melding;    
                    
                } else {
                    echo("Er is een fout opgetreden: " . $stmt->error . "");    
                }
                
            } else {    
                echo("Er is een fout opgetreden: " . $dbc->error . ""); 
            }

        }
    
    }
?>
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan