1

Topic: cohabitation de PunBB avec un autre site à identification

Voila, comme la plus part des développeur actuels, je ne cherche pas à faire un site avec seulement un forum !

n'en déplaise aux créateurs de PunBB

Le script PunBB est génial, et je souhaiterais l'utiliser sur le site web que je construit, le truc c'est que le site web contient déjà une page d'accueil, une rubrique download (script fait maison) et une gallerie photo (phpwebgallery).

Pour des raisons de sécurité, l'accès au site impose de s'identifier, cependant je ne souhaite pas que les utilisateurs aient à s'identifier de nouveau à chaque fois qu'ils passent du forum à la galerie photo, ou de la page d'accueil(accès restrint) au forum.

J'aurais souhaité savoir si quelqu'un s'était déjà penché sur le problème...
et si possible partager avec vous les info qui permettent de faire cahabiter PunBB avec un autre site.

2 (edited by knj 2004-07-16 09:48)

Re: cohabitation de PunBB avec un autre site à identification

auriez vous l'obligeance de m'expliquer ces quelques lignes,
elles sont tirées du fichier login.php , à la racine, lignes 49 à 65

    if (!empty($db_password_hash))
    {
        $sha1_in_db = (strlen($db_password_hash) == 40) ? true : false;
        $sha1_available = (function_exists('sha1') || function_exists('mhash')) ? true : false;

        $form_password_hash = pun_hash($form_password);    // This could result in either an SHA-1 or an MD5 hash (depends on $sha1_available)

        if ($sha1_in_db && $sha1_available && $db_password_hash == $form_password_hash)
            $authorized = true;
        else if (!$sha1_in_db && $db_password_hash == md5($form_password))
        {
            $authorized = true;

            if ($sha1_available)    // There's an MD5 hash in the database, but SHA1 hashing is available, so we update the DB
                $db->query('UPDATE '.$db->prefix.'users SET password=\''.$form_password_hash.'\' WHERE id='.$user_id) or error('Unable to update user password', __FILE__, __LINE__, $db->error());
        }
    }

3 (edited by are 2004-08-12 15:01)

Re: cohabitation de PunBB avec un autre site à identification

knj wrote:

auriez vous l'obligeance de m'expliquer ces quelques lignes,
elles sont tirées du fichier login.php , à la racine, lignes 49 à 65

    if (!empty($db_password_hash))
    {
                // Le mot de passe contenu dans la base de donnée est t'il hasher avec sha1 ? Vrai / Faux
        $sha1_in_db = (strlen($db_password_hash) == 40) ? true : false;
        
                // Les fonctions sha1 ou mhash sont t'elle disponible sur ce serveur ? Vrai / Faux
                $sha1_available = (function_exists('sha1') || function_exists('mhash')) ? true : false;

                 // Le mot de passe du formulaire va étre modifié suivant le resultat de $sha1_availabke, si il est égal à true alors il va étre transformé en sha1 SINON en md5 (mais ca c'est une fonction contenu dans un autre fichier qui le fait)
        $form_password_hash = pun_hash($form_password);    // This could result in either an SHA-1 or an MD5 hash (depends on $sha1_available)
                
                // Si le mot de passe de la bdd est hasher en sha1 et qu'il est égal a celui du formulaire alors on authorise l'identification
        if ($sha1_in_db && $sha1_available && $db_password_hash == $form_password_hash)
            $authorized = true;
                // Ou sinon, si le mot de passe de la base de donnée n'est pas hasher en sha1 alors il est en md5, donc on verifie si il est égal à celui du formulaire hasher en md5 alors on authorise l'identificaiton
        else if (!$sha1_in_db && $db_password_hash == md5($form_password))
        {
            $authorized = true;
                        // Dans ce cas, le mot de passe contenu dans la bdd est hasher en md5, on va le rehasher en sha1 vu que sha1 est disponible
            if ($sha1_available)    // There's an MD5 hash in the database, but SHA1 hashing is available, so we update the DB
                                 // On met à jour la base de donnée avec le mot de passe de l'utilisateur rehasher en sha1
                $db->query('UPDATE '.$db->prefix.'users SET password=\''.$form_password_hash.'\' WHERE id='.$user_id) or error('Unable to update user password', __FILE__, __LINE__, $db->error());
        }
    }

~

Pour répondre à ta question, punbb utilise les cookies.

Ligne 92 de login.php pour le logout, ligne 75 du même fichier pour le login smile

config.php pour les variables de cookie.. c'est franchement pas dur à trouver smile