Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Class para trabalhar com cookies em PHP

05-03-2012 22:43

Estou recomendando aqui uma class bem legal para trabalhar com cookies. Segue a class

class Cookie { const Session = null; const OneDay = 86400; const SevenDays = 604800; const ThirtyDays = 2592000; const SixMonths = 15811200; const OneYear = 31536000; const Lifetime = -1; // 2030-01-01 00:00:00 /** * Returns true if there is a cookie with this name. * * @param string $name * @return bool */ static public function Exists($name) { return isset($_COOKIE[$name]); } /** * Returns true if there no cookie with this name or it's empty, or 0, * or a few other things. Check http://php.net/empty for a full list. * * @param string $name * @return bool */ static public function IsEmpty($name) { return empty($_COOKIE[$name]); } /** * Get the value of the given cookie. If the cookie does not exist the value * of $default will be returned. * * @param string $name * @param string $default * @return mixed */ static public function Get($name, $default = '') { return (isset($_COOKIE[$name]) ? $_COOKIE[$name] : $default); } /** * Set a cookie. Silently does nothing if headers have already been sent. * * @param string $name * @param string $value * @param mixed $expiry * @param string $path * @param string $domain * @return bool */ static public function Set($name, $value, $expiry = self::OneYear, $path = '/', $domain = false) { $retval = false; if (!headers_sent()) { if ($domain === false) $domain = $_SERVER['HTTP_HOST']; if ($expiry === -1) $expiry = 1893456000; // Lifetime = 2030-01-01 00:00:00 elseif (is_numeric($expiry)) $expiry += time(); else $expiry = strtotime($expiry); $retval = @setcookie($name, $value, $expiry, $path, $domain); if ($retval) $_COOKIE[$name] = $value; } return $retval; } /** * Delete a cookie. * * @param string $name * @param string $path * @param string $domain * @param bool $remove_from_global Set to true to remove this cookie from this request. * @return bool */ static public function Delete($name, $path = '/', $domain = false, $remove_from_global = false) { $retval = false; if (!headers_sent()) { if ($domain === false) $domain = $_SERVER['HTTP_HOST']; $retval = setcookie($name, '', time() - 3600, $path, $domain); if ($remove_from_global) unset($_COOKIE[$name]); } return $retval; } }

Segue um exemplo de uso

Cookie::Set('style', 'black_and_orange', Cookie::Session);
Nesse exemplo o cookie style tem o valor black_and_orange salvo até o fechamento do navegador.

Cookie::Set('rememberme', 'email@domain.com', Cookie::ThirtyDays);
Nesse exemplo, o cookie fica salvo durante 30 dias

Cookie::Set('tracking', 'sdfoiwuyo8who8wfhow8fhso4', Cookie::Lifetime, '/', '.domain.com');
Nesse exemplo, o cookie fica salvo enquanto o usuário não deleta do computador

Fonte: http://stut.net/2008/10/16/snippet-cook ... s-for-php/
0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Bing [Bot]