Traduction d'une fonction en PHP

devdeb22 Messages postés 28 Date d'inscription   Statut Membre Dernière intervention   -  
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

Quelqu'un peut-il me traduire en bon français ce que dit cette fonction.

function reconnect_from_cookie(){
    if(session_status() == PHP_SESSION_NONE){
        session_start();
    }
    if(isset($_COOKIE['remember']) && !isset($_SESSION['auth']) ){
        require_once 'db.php';
        if(!isset($pdo)){
            global $pdo;
        }
        $remember_token = $_COOKIE['remember'];
        $parts = explode('==', $remember_token);
        $user_id = $parts[0];
        $req = $pdo->prepare('SELECT * FROM users WHERE id = ?');
        $req->execute([$user_id]);
        $user = $req->fetch();
        if($user){
            $expected = $user_id . '==' . $user->remember_token . sha1($user_id . 'ratonlaveurs');
            if($expected == $remember_token){
                session_start();
                $_SESSION['auth'] = $user;
                setcookie('remember', $remember_token, time() + 60 * 60 * 24 * 7);
            } else{
                setcookie('remember', null, -1);
            }
        }else{
            setcookie('remember', null, -1);
        }
    }
}



J'ai l'impression que si je comprends ce que dis cette fonction, je vais trouver la réponse à mon problème.

Merci

EDIT : Ajout du LANGAGE dans les balises de code (pour avoir la coloration syntaxique)

A voir également:

1 réponse

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
On va plutôt procéder autrement....
Quelles lignes ne comprends tu pas dans ce code ?

Après.. le code n'est pas super propre....
mais bon... voici le début de la "traduction"

if(session_status() == PHP_SESSION_NONE){
        session_start();
    }

Si pas de session démarrée... on les démarre.

require_once 'db.php';
        if(!isset($pdo)){
            global $pdo;
        }

On inclus le fichier contenant les infos de connexion à la bdd et qui instancie la connexion à la bdd.
Puis on récupère la variable $pdo pour s'en servir ensuite dans le reste du code

$remember_token = $_COOKIE['remember'];
        $parts = explode('==', $remember_token);
        $user_id = $parts[0];

On récupère le contenu de la variable remember contenu dans les COOKIES
On l'explose (le séparateur étant == )
On prend la première des valeurs qu'on stocke dans la variable $user_id

$req = $pdo->prepare('SELECT * FROM users WHERE id = ?');
        $req->execute([$user_id]);

On fait une requête SQL pour récupérer l'utilisateur dont l'id correspond à la variable

Pour la suite... il compare si la valeur retournée par la requête (concaténée avec quelques autres infos ) correspond à celle stockée dans $remember_token

Si oui, il renseigne la variable $_SESSION['auth']
Si non .. il supprime le cookie.



0