Вы не зашли.
    
        
        
                Чет я не понял что да как там.
Только как задания прописывать понял:
        
        
                
     
        
        
        
                Допустим можно узнать папку с PHP:
Код:
| span style="color: #0000BB"><?phpecho $_ENV['PHPRC']; | 
Можно узнать путь к файлу исполнения:
Код:
| span style="color: #0000BB"><?phpecho __FILE__; | 
А куда пихать созданный файл cgi непонятно.
Еще думал насчет другого варианта:
Код:
| span style="color: #0000BB"><?php//Набросокrequire_once 'cfg.php'; //Есть массив $cfg с настройками, котрые могут быть замещены настройками с базы.//$db = DB::singleton();//Add settings////$cfg += $db->query('SELECT * FROM `cfg`;')->fetchAll(); //+ SESSION////! KEY `session_id`if (@$_COOKIE[$cfg['cookie_name']]) {        $qt = 'SELECT * '        . 'FROM `users` '        . 'WHERE `users`.`cookie_id` = ? '        . 'LIMIT 1;';        $q = $db->prepare($qt);    $q->execute(array($_COOKIE[$cfg['cookie_name']]));        if ($q->rowCount()) {                $user += $q->fetch();                //Regenerate//..............//TIMESTAMP (Не люблю UNIX_TIMESTAMP, хотя было бы куда проще)//        if (date_format(date_create($user['cookie_regenerate_interval']), 'Ymd') < date('Ymd')) {                        $hash = md5(microtime());                        $db->query('UPDATE `users` '                       . "SET `cookie_regenerate_interval` = NOW() + INTERVAL '"                       . ((int) $cfg['cookie_regenerate_interval']['value']) . "' "                       . ((int) $cfg['cookie_regenerate_interval']['format']) // sec.||min.||etc.                       . ", `users`.`cookie_id` = '" . $hash . "' "                       . "WHERE `users`.`user_id` = '" . $user['user_id'] . "' "                       . 'LIMIT 1;');                        setcookie($cfg['cookie_name'],                      $_COOKIE[$cfg['cookie_name']] = $hash,                      $cfg['cookie_expire'],                      $cfg['cookie_path'],                      $cfg['cookie_domain'],                      $cfg['cookie_secure'],                      $cfg['cookie_httpOnly']);        }    }    else {                setcookie($cfg['cookie_name'],                  null,                  0,                  $cfg['cookie_path'],                  $cfg['cookie_domain'],                  $cfg['cookie_secure'],                  $cfg['cookie_httpOnly']);                unset($_COOKIE[$cfg['cookie_name']], $user);    }}//- SESSION// | 
И думал может нафиг это все,
использовать стандартный путь.
        
        
                
    
 
        
        
                $hash = md5(microtime()); // тут microtime массив вернет. а md5 просит строку
лучше замени все это на uniqid() например
ну и так, напомню такой термин - 
KISS
        
        
                
     
        
        
                Gemorroj написал:
$hash = md5(microtime()); // тут microtime массив вернет. а md5 просит строку
Код:
| span style="color: #0000BB"><?php // v5.2.12var_dump(micro_time());//string(21) "0.11501000 1342787062" | 
 
        
        
                
     
        
        
                tipsunда, запамятовал уже( чаще пользуются microtime(true)
        
        
                
    
 
        
        
                Gemorroj написал:
ну и так, напомню такой термин - KISS
Это к алгоритму или ко времени относится в данном случае?
        
        
                
    
 
        
        
                Надо будет срок_актуальности_печеньки хранить в UNIX_TIMESTAMP.
        
                            
                Отредактировано tipsun (2012.07.20 21:09)
            
        
                
     
        
        
                Лучше?
Код:
| span style="color: #0000BB"><?php//+ SESSION////! KEY `session_id`if (@$_COOKIE[$cfg['cookie_name']]) {        $qt = 'SELECT * '        . 'FROM `users` '        . 'WHERE `users`.`cookie_id` = ? '        . 'LIMIT 1;';        $q = $db->prepare($qt);    $q->execute(array($_COOKIE[$cfg['cookie_name']]));        if ($q->rowCount()) {                $user += $q->fetch();                if ($user['cookie_timestamp'] < $_SERVER['REQUEST_TIME']) {                        $_COOKIE[$cfg['cookie_name']] = md5(uniqid());                        $db->query('UPDATE `users` '                       . "SET `users`.`cookie_timestamp` = '"                       . ($_SERVER['REQUEST_TIME'] + (int) $cfg['cookie_lifeTime']) . "', "                       . "`users`.`cookie_id` = '" . $_COOKIE[$cfg['cookie_name']] . "' "                       . "WHERE `users`.`user_id` = '" . $user['user_id'] . "' "                       . 'LIMIT 1;');                        setcookie($cfg['cookie_name'],                      $_COOKIE[$cfg['cookie_name']],                      $cfg['cookie_expire'],                      $cfg['cookie_path'],                      $cfg['cookie_domain'],                      $cfg['cookie_secure'],                      $cfg['cookie_httpOnly']);        }    }    else {                setcookie($cfg['cookie_name'],                  null,                  0,                  $cfg['cookie_path'],                  $cfg['cookie_domain'],                  $cfg['cookie_secure'],                  $cfg['cookie_httpOnly']);                unset($_COOKIE[$cfg['cookie_name']], $user);    }}//- SESSION// | 
 
        
        
                
     
        
        
                лучше. но UPDATE тоже переделай на параметризованный запрос. так же проверяй не только $q->rowCount() но и чтобы execute возвратил true