Вы не зашли.
Главная » PHP » авторизация $_COOKIE
#101. tipsun Off (19)
Moderator
2012.07.12 14:02
Чет я не понял что да как там.
Только как задания прописывать понял:
Показать скрытый текст
#102. Gemorroj Off (107)
Administrator
2012.07.12 18:06
ну этого и достаточно.
#103. tipsun Off (19)
Moderator
2012.07.20 14:02
Допустим можно узнать папку с 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//
И думал может нафиг это все,
использовать стандартный путь.
#104. Gemorroj Off (107)
Administrator
2012.07.20 15:03
$hash = md5(microtime()); // тут microtime массив вернет. а md5 просит строку
лучше замени все это на uniqid() например
ну и так, напомню такой термин - KISS
#105. tipsun Off (19)
Moderator
2012.07.20 16:04
Gemorroj написал:
$hash = md5(microtime()); // тут microtime массив вернет. а md5 просит строку
Код:
span style="color: #0000BB"><?php // v5.2.12var_dump(micro_time());//string(21) "0.11501000 1342787062"
#106. Gemorroj Off (107)
Administrator
2012.07.20 16:04
tipsun
да, запамятовал уже( чаще пользуются microtime(true)
#107. tipsun Off (19)
Moderator
2012.07.20 20:08
Gemorroj написал:
ну и так, напомню такой термин - KISS
Это к алгоритму или ко времени относится в данном случае?
#108. tipsun Off (19)
Moderator
2012.07.20 21:09
Надо будет срок_актуальности_печеньки хранить в UNIX_TIMESTAMP.
Отредактировано tipsun (2012.07.21 01:01)
#109. tipsun Off (19)
Moderator
2012.07.22 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//
#110. Gemorroj Off (107)
Administrator
2012.07.23 00:12
лучше. но UPDATE тоже переделай на параметризованный запрос. так же проверяй не только $q->rowCount() но и чтобы execute возвратил true
Страниц: 19 10 11 12 Все
Главная
WEB
PunBB Mod v0.6.2
0.019 s