function adodb_sess_write($key, $val)
    {
        $Crypt = new MD5Crypt();
        global $ADODB_SESS_INSERT, $ADODB_SESS_CONN, $ADODB_SESS_LIFE, $ADODB_SESSION_TBL, $ADODB_SESSION_EXPIRE_NOTIFY;
        $expiry = time() + $ADODB_SESS_LIFE;
        // encrypt session data..
        $val = $Crypt->Encrypt(rawurlencode($val), ADODB_Session_Key());
        $arr = array('sesskey' => $key, 'expiry' => $expiry, 'data' => $val);
        if ($ADODB_SESSION_EXPIRE_NOTIFY) {
            $var = reset($ADODB_SESSION_EXPIRE_NOTIFY);
            global ${$var};
            $arr['expireref'] = ${$var};
        }
        $rs = $ADODB_SESS_CONN->Replace($ADODB_SESSION_TBL, $arr, 'sesskey', $autoQuote = true);
        if (!$rs) {
            ADOConnection::outp('
-- Session Replace: ' . $ADODB_SESS_CONN->ErrorMsg() . '</p>', false);
        } else {
            // bug in access driver (could be odbc?) means that info is not commited
            // properly unless select statement executed in Win2000
            if ($ADODB_SESS_CONN->databaseType == 'access') {
                $rs = $ADODB_SESS_CONN->Execute("select sesskey from {$ADODB_SESSION_TBL} WHERE sesskey='{$key}'");
            }
        }
        return isset($rs);
    }
Beispiel #2
0
 function adodb_sess_write($key, $val)
 {
     $Crypt = new MD5Crypt();
     global $ADODB_SESS_INSERT, $ADODB_SESS_CONN, $ADODB_SESS_LIFE, $ADODB_SESSION_TBL;
     $expiry = time() + $ADODB_SESS_LIFE;
     // encrypt session data..
     $val = $Crypt->Encrypt(rawurlencode($val), ADODB_Session_Key());
     $qry = "UPDATE {$ADODB_SESSION_TBL} SET expiry={$expiry},data='{$val}' WHERE sesskey='{$key}'";
     $rs = $ADODB_SESS_CONN->Execute($qry);
     if ($rs) {
         $rs->Close();
     } else {
         print '<p>Session Update: ' . $ADODB_SESS_CONN->ErrorMsg() . '</p>';
     }
     if ($ADODB_SESS_INSERT || $rs === false) {
         $qry = "INSERT INTO {$ADODB_SESSION_TBL}(sesskey,expiry,data) VALUES ('{$key}',{$expiry},'{$val}')";
         $rs = $ADODB_SESS_CONN->Execute($qry);
         if ($rs) {
             $rs->Close();
         } else {
             print '<p>Session Insert: ' . $ADODB_SESS_CONN->ErrorMsg() . '</p>';
         }
     }
     // bug in access driver (could be odbc?) means that info is not commited
     // properly unless select statement executed in Win2000
     if ($ADODB_SESS_CONN->databaseType == 'access') {
         $rs = $ADODB_SESS_CONN->Execute("select sesskey from {$ADODB_SESSION_TBL} WHERE sesskey='{$key}'");
     }
     return isset($rs);
 }