コード例 #1
0
function startSession($SESSNAME, $login, $database = LOCATION)
{
    global $dbh;
    // le lien MySQL
    global $stylesheet;
    /* pour qu'à l'ouverture de la session le user récupère de suite son style */
    global $PMBuserid, $PMBusername, $PMBgrp_num;
    global $checkuser_type_erreur;
    global $PMBusernom;
    global $PMBuserprenom;
    global $PMBuseremail;
    global $PMBdatabase;
    if (!$PMBdatabase) {
        $PMBdatabase = $database;
    }
    // nettoyage des sessions 'oubliées'
    cleanTable($SESSNAME);
    // génération d'un identificateur unique
    // initialisation du générateur de nombres aléatoires
    mt_srand((double) microtime() * 1000000);
    // nombre aléatoire entre 1111111111 et 9999999999
    $SESSID = mt_rand(1111111111, 9999999999);
    // début session (date UNIX)
    $SESSstart = time();
    // adresse IP du client
    $IP = $_SERVER['REMOTE_ADDR'];
    $query = "SELECT rights, user_lang FROM users WHERE username='******'";
    $result = pmb_mysql_query($query, $dbh);
    $ff = pmb_mysql_fetch_object($result);
    $flag = $ff->rights;
    // inscription de la session dans la table
    $query = "INSERT INTO sessions (SESSID, login, IP, SESSstart, LastOn, SESSNAME) VALUES(";
    $query .= "'{$SESSID}'";
    $query .= ", '{$login}'";
    $query .= ", '{$IP}'";
    $query .= ", '{$SESSstart}'";
    $query .= ", '{$SESSstart}'";
    $query .= ", '{$SESSNAME}' )";
    $result = pmb_mysql_query($query, $dbh);
    if (!$result) {
        $checkuser_type_erreur = CHECK_USER_PB_OUVERTURE_SESSION;
        return CHECK_USER_PB_OUVERTURE_SESSION;
    }
    // cookie pour le login de l'utilisateur
    setcookie($SESSNAME . "-LOGIN", $login, 0);
    // cookie pour le nom de la session
    setcookie($SESSNAME . "-SESSNAME", $SESSNAME, 0);
    // cookie pour l'ID de session
    setcookie($SESSNAME . "-SESSID", $SESSID, 0);
    // cookie pour la base de donnée
    setcookie($SESSNAME . "-DATABASE", $PMBdatabase, 0);
    // mise à disposition des variables de la session
    define('SESSlogin', $login);
    define('SESSname', $SESSNAME);
    define('SESSid', $SESSID);
    define('SESSstart', $SESSstart);
    define('SESSlang', $ff->user_lang);
    define('SESSrights', $flag);
    /* param par défaut */
    $requete_param = "SELECT * FROM users WHERE username='******' LIMIT 1 ";
    $res_param = pmb_mysql_query($requete_param, $dbh);
    $field_values = pmb_mysql_fetch_row($res_param);
    $i = 0;
    while ($i < pmb_mysql_num_fields($res_param)) {
        $field = pmb_mysql_field_name($res_param, $i);
        $field_deb = substr($field, 0, 6);
        switch ($field_deb) {
            case "deflt_":
                global ${$field};
                ${$field} = $field_values[$i];
                break;
            case "deflt2":
                global ${$field};
                ${$field} = $field_values[$i];
                break;
            case "param_":
                global ${$field};
                ${$field} = $field_values[$i];
                break;
            case "value_":
                global ${$field};
                ${$field} = $field_values[$i];
                break;
            case "xmlta_":
                global ${$field};
                ${$field} = $field_values[$i];
                break;
            case "deflt3":
                global ${$field};
                ${$field} = $field_values[$i];
                break;
            default:
                break;
        }
        $i++;
    }
    $requete_nom = "SELECT nom, prenom, user_email, userid, username, grp_num FROM users WHERE username='******' ";
    $res_nom = pmb_mysql_query($requete_nom, $dbh);
    $param_nom = pmb_mysql_fetch_object($res_nom);
    $PMBusernom = $param_nom->nom;
    $PMBuserprenom = $param_nom->prenom;
    $PMBgrp_num = $param_nom->grp_num;
    $PMBuseremail = $param_nom->user_email;
    // pour que l'id user soit dispo partout
    define('SESSuserid', $param_nom->userid);
    $PMBuserid = $param_nom->userid;
    $PMBusername = $param_nom->username;
    /* on va chercher la feuille de style du user */
    $stylesheet = $deflt_styles;
    //Ouverture de la session php
    header("Expires: Sat, 01 Jan 2000 00:00:00 GMT");
    header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
    header("Cache-Control: post-check=0, pre-check=0", false);
    session_cache_limiter('must-revalidate');
    session_name("pmb" . SESSid);
    session_start();
    //Récupération  de l'historique
    $query = "select session from admin_session where userid=" . $PMBuserid;
    $resultat = pmb_mysql_query($query);
    if ($resultat) {
        if (pmb_mysql_num_rows($resultat)) {
            $_SESSION["session_history"] = @unserialize(@pmb_mysql_result($resultat, 0, 0));
        }
    }
    return CHECK_USER_SESSION_OK;
}
コード例 #2
0
function startSession($SESSNAME, $login)
{
    global $dbh;
    // le lien MySQL
    global $stylesheet;
    /* pour qu'à l'ouverture de la session le user récupère de suite son style */
    global $checkempr_type_erreur;
    // nettoyage des sessions 'oubliées'
    cleanTable($SESSNAME);
    // génération d'un identificateur unique
    // initialisation du générateur de nombres aléatoires
    mt_srand((double) microtime() * 1000000);
    // nombre aléatoire entre 1111111111 et 9999999999
    $SESSID = mt_rand(1111111111, 9999999999);
    // début session (date UNIX)
    $SESSstart = time();
    // adresse IP du client
    $IP = $_SERVER['REMOTE_ADDR'];
    // inscription de la session dans la table
    $query = "INSERT INTO sessions (SESSID, login, IP, SESSstart, LastOn, SESSNAME) VALUES(";
    $query .= "'{$SESSID}'";
    $query .= ", '{$login}'";
    $query .= ", '{$IP}'";
    $query .= ", '{$SESSstart}'";
    $query .= ", '{$SESSstart}'";
    $query .= ", '{$SESSNAME}' )";
    $result = pmb_mysql_query($query, $dbh);
    if (!$result) {
        $checkempr_type_erreur = CHECK_EMPR_PB_OUVERTURE_SESSION;
        return CHECK_EMPR_PB_OUVERTURE_SESSION;
    }
    // cookie pour le login de l'utilisateur
    setcookie($SESSNAME . "-LOGIN", $login, 0);
    // cookie pour le nom de la session
    setcookie($SESSNAME . "-SESSNAME", $SESSNAME, 0);
    // cookie pour l'ID de session
    setcookie($SESSNAME . "-SESSID", $SESSID, 0);
    // cookie pour la base de donnée
    setcookie($SESSNAME . "-DATABASE", $PMBdatabase, 0);
    // mise à disposition des variables de la session
    define('SESSlogin', $login);
    define('SESSname', $SESSNAME);
    define('SESSid', $SESSID);
    define('SESSstart', $SESSstart);
    //Ouverture de la session php
    header("Expires: Sat, 01 Jan 2000 00:00:00 GMT");
    header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
    header("Cache-Control: post-check=0, pre-check=0", false);
    session_cache_limiter('must-revalidate');
    session_name("pmb" . SESSid);
    session_start();
    return CHECK_EMPR_SESSION_OK;
}