Gå til innhold

Konvertere fra mysqli til PDO


Anbefalte innlegg

Hei! Jeg kunne trengt litt hjelp med å løse denne oppgaven. Prøver å konvertere fra mysqli prepared til PDO, men får det ikke helt til. Noen som kunne tenkt seg å prøve seg på oppgaven? Takk på forhånd!

function login_check($mysqli) {
    if (isset($_SESSION['user_id'], 
                        $_SESSION['username'], 
                        $_SESSION['login_string'])) {


        $user_id = $_SESSION['user_id'];
        $login_string = $_SESSION['login_string'];
        $username = $_SESSION['username'];


        $user_browser = $_SERVER['HTTP_USER_AGENT'];


        if ($stmt = $mysqli->prepare("SELECT password 
                                      FROM members 
                                      WHERE id = ? LIMIT 1")) { 
            $stmt->bind_param('i', $user_id);
            $stmt->execute(); 
            $stmt->store_result();


            if ($stmt->num_rows == 1) {

                $stmt->bind_result($password);
                $stmt->fetch();
                $login_check = hash('sha512', $password . $user_browser);


                if ($login_check == $login_string) {

                    return true;
                } else {

                    return false;
                }
            } else {

                return false;
            }
        } else {

            return false;
        }
    } else {

        return false;
    }
}
Endret av useriøst
Lenke til kommentar
Videoannonse
Annonse

Hva har du prøvd? Foreslår at du tar en titt på eksemplene her: PDO execute()

Bør klare skrive om med utgangspunkt i det.

 

Du kan spare en del else'er

function login_check($mysqli) {
    if (isset($_SESSION['user_id'], 
                        $_SESSION['username'], 
                        $_SESSION['login_string'])) {


        $user_id = $_SESSION['user_id'];
        $login_string = $_SESSION['login_string'];
        $username = $_SESSION['username'];


        $user_browser = $_SERVER['HTTP_USER_AGENT'];


        if ($stmt = $mysqli->prepare("SELECT password 
                                      FROM members 
                                      WHERE id = ? LIMIT 1")) { 
            $stmt->bind_param('i', $user_id);
            $stmt->execute(); 
            $stmt->store_result();


            if ($stmt->num_rows == 1) {

                $stmt->bind_result($password);
                $stmt->fetch();
                $login_check = hash('sha512', $password . $user_browser);


                if ($login_check == $login_string) {
                    return true;
                } 
            } 
        } 
    } 

    return false; // hvis en av if'ene over feiler så kommer man hit, blir aldri nådd hvis ($login_check == $login_string) er sann
}
Endret av Crowly
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...