Login et création de session

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Login et création de session

Re: Login et création de session

par BlitzMX » 03 juil. 2019, 16:33

Ça marche pas, quelqu'un peux regarder ?



if ($_SERVER['REQUEST_METHOD'] == "POST" and isset($_POST["email"])) {

    $email = $_POST["email"];
    $password = password_hash($_POST["password"], PASSWORD_DEFAULT);

    // FIND USER WITH EMAIL AND HASH PASSWORD
    try {
        // TODO ...
        $req = $bdd->prepare("SELECT * FROM users WHERE email = '$email' AND psw = '$password' ");
        $req->execute();
        $result = $req->fetchall();

        foreach ($result as $current_result) {

            /*
            $current_result["prenom"];
            $current_result["nom"];
            $current_result["email"];
            $current_result["date_creation"];
             */

            if ($email = $current_result["email"] & $password = $current_result["psw"]) {

                session_start();

                if (isset($_SESSION['prenom'])) {
                    $_SESSION['prenom'] = $prenom;
                } else {
                    $_SESSION['prenom'] = 0;
                }

                if (isset($_SESSION['nom'])) {
                    $_SESSION['nom'] = $prenom;
                } else {
                    $_SESSION['nom'] = 0;
                }

                if (isset($_SESSION['email'])) {
                    $_SESSION['email'] = $prenom;
                } else {
                    $_SESSION['email'] = 0;
                }

                if (isset($_SESSION['date_creation'])) {
                    $_SESSION['date_creation'] = $prenom;
                } else {
                    $_SESSION['date_creation'] = 0;
                }

                header('Location: ../index.php?action=acces_admin');

            }

        }

    } catch (\Throwable $th) {

    }

    // Compare hash password in database with login database

    // IF OK - Create PHP Session

    // $psw = password_hash($_POST["psw"], PASSWORD_DEFAULT);
    // $psw = $_POST["psw-repeat"];
    // $date_creation = "NOW()";
    // PREPARE QUERY - use prepare pour les accents sur les lettres
    // $req = $bdd->prepare("INSERT INTO users(prenom, nom, email, psw, date_creation ) values (?, ?, ?, ?, NOW()) ");
    // $req->execute(array($prenom, $nom, $email, $psw ));

    header('Location: ../index.php?action=login');

    exit();

}



Re: Login et création de session

par BlitzMX » 03 juil. 2019, 16:02

C'est correcte comme ça ?
j'ai besoin des IFs ?

Merci

// FIND USER WITH EMAIL AND HASH PASSWORD
    try {
        // TODO ...
        $req = $bdd->prepare("SELECT * FROM users WHERE email = '$email' AND psw = '$password' ");
        $req->execute();
        $result = $req->fetchall();

        foreach ($result as $current_result) {

            $prenom = $current_result["prenom"];
            $nom = $current_result["nom"];
            $email = $current_result["email"];
            $date_creation = $current_result["date_creation"];

        }

        session_start();

        if (isset($_SESSION['prenom'])) {
            $_SESSION['prenom'] = $prenom;
        } else {
            $_SESSION['prenom'] = 0;
        }

        if (isset($_SESSION['nom'])) {
            $_SESSION['nom'] = $prenom;
        } else {
            $_SESSION['nom'] = 0;
        }

        if (isset($_SESSION['email'])) {
            $_SESSION['email'] = $prenom;
        } else {
            $_SESSION['email'] = 0;
        }

        if (isset($_SESSION['date_creation'])) {
            $_SESSION['date_creation'] = $prenom;
        } else {
            $_SESSION['date_creation'] = 0;
        }

    } catch (\Throwable $th) {

    }

Re: Login et création de session

par BlitzMX » 03 juil. 2019, 15:47

sécuriser? quoi? comment?

Re: Login et création de session

par BlitzMX » 03 juil. 2019, 15:46

J'en suis ici:



 $email = $_POST["email"];
    $password = password_hash($_POST["password"], PASSWORD_DEFAULT);

    // FIND USER WITH EMAIL AND HASH PASSWORD
    try {
        // TODO ...
        $req = $bdd->prepare("SELECT * FROM users WHERE email = '$email' AND psw = '$password' ");
        $req->execute();
        $result = $req->fetchall();

        foreach ($result as $current_result) {         
            
            $prenom = $current_result["prenom"];
            $nom = $current_result["nom"];
            $email = $current_result["email"];
            $date_creation = $current_result["date_creation"];
            
        }

    } catch (\Throwable $th) {

    }


Et j'utilise: password_hash($_POST["password"], PASSWORD_DEFAULT)

Re: Login et création de session

par or 1 » 03 juil. 2019, 15:42

voir https://www.php.net/manual/fr/session.e ... .basic.php

mais avant il faut compléter :
$req = $bdd->prepare("SELECT * FROM users WHERE email = '$email' AND psw = '$password' ");
$req->execute();
pour savoir ce que retourne cette requête (qu'il serait bon de sécuriser).

Login et création de session

par BlitzMX » 03 juil. 2019, 15:25

Salut tout le monde.

Je continue mon projet et me voila face a une nouvelle difficulté.
Le formulaire de registre étant fait, je me vois maintenant dans le besoin de comparer les infos introduites dans le formulaire login avec les infos déjà enregistrer dans la base de donnée pour ensuite crée une session afin de charger les info de session a chaque changement de page et ainsi maintenir l'utilisateur actif tant qu'il ne fait pas log-off.

J'ai mon code de base pour la vérification mais je sais pas comment crée la session.

Ou puis-je trouver les info?

Quelqu'un peut'il me donnée un exemple de comment crée une session et la relire?

<?php

require "../config.php";

// DEFINE DATABASE CONNECTION - PDO
try {

    $bdd = new PDO('mysql:host=localhost;dbname=' . $Database_Name, $Database_User, $Database_Password);

} catch (\Throwable $e) {

    die('Erreur : ' . $e->getMessage());

}


if ($_SERVER['REQUEST_METHOD'] == "POST" and isset($_POST["email"])) {

    $email = $_POST["email"];
    $password = password_hash($_POST["password"], PASSWORD_DEFAULT);

   
    try {
     
        $req = $bdd->prepare("SELECT * FROM users WHERE email = '$email' AND psw = '$password' ");
        $req->execute();

    } catch (\Throwable $th) {

    }



    header('Location: ../index.php?action=acces_admin');

    exit();

}

Merci