#101 2012.07.12 14:55

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2277
Карма: 19
Профиль

Re: авторизация $_COOKIE

Чет я не понял что да как там.
Только как задания прописывать понял:


[* m] [* h] [* d] [* m] [* y] /phpPath/ /scriptPath/

Неактивен

#102 2012.07.12 18:40

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: авторизация $_COOKIE

ну этого и достаточно.

Неактивен

#103 2012.07.20 14:35

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2277
Карма: 19
Профиль

Re: авторизация $_COOKIE

Допустим можно узнать папку с PHP:

Код:

1
span style="color: #0000BB"><?phpecho $_ENV['PHPRC'];

Можно узнать путь к файлу исполнения:

Код:

1
span style="color: #0000BB"><?phpecho __FILE__;

А куда пихать созданный файл cgi непонятно.

Еще думал насчет другого варианта:

Код:

1
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 2012.07.20 15:57

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: авторизация $_COOKIE

$hash = md5(microtime()); // тут microtime массив вернет. а md5 просит строку
лучше замени все это на uniqid() например
ну и так, напомню такой термин - KISS

Неактивен

#105 2012.07.20 16:25

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2277
Карма: 19
Профиль

Re: авторизация $_COOKIE

Gemorroj написал:

$hash = md5(microtime()); // тут microtime массив вернет. а md5 просит строку

Код:

1
span style="color: #0000BB"><?php // v5.2.12var_dump(micro_time());//string(21) "0.11501000 1342787062"

Неактивен

#106 2012.07.20 16:50

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: авторизация $_COOKIE

tipsun
да, запамятовал уже( чаще пользуются microtime(true)

Неактивен

#107 2012.07.20 20:14

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2277
Карма: 19
Профиль

Re: авторизация $_COOKIE

Gemorroj написал:

ну и так, напомню такой термин - KISS

Это к алгоритму или ко времени относится в данном случае?

Неактивен

#108 2012.07.20 21:06

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2277
Карма: 19
Профиль

Re: авторизация $_COOKIE

Надо будет срок_актуальности_печеньки хранить в UNIX_TIMESTAMP.

Отредактировано tipsun (2012.07.21 01:00)

Неактивен

#109 2012.07.22 21:07

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2277
Карма: 19
Профиль

Re: авторизация $_COOKIE

Лучше?

Код:

1
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 2012.07.23 00:02

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: авторизация $_COOKIE

лучше. но UPDATE тоже переделай на параметризованный запрос. так же проверяй не только $q->rowCount() но и чтобы execute возвратил true

Неактивен

Дополнительно

forum.wapinet.ru

PunBB Mod v0.6.2
0.015 s