Skip to content

Instantly share code, notes, and snippets.

@pifantastic
Created July 17, 2010 03:36
Show Gist options
  • Save pifantastic/479215 to your computer and use it in GitHub Desktop.
Save pifantastic/479215 to your computer and use it in GitHub Desktop.
<?php
function createCookie($name, $value = '', $maxage = 0, $path = '', $domain = '', $secure = false, $HTTPOnly = false) {
$ob = ini_get('output_buffering');
// Abort the method if headers have already been sent, except when output buffering has been enabled
if (headers_sent() && (bool) $ob === false || strtolower($ob) == 'off') {
return false;
}
if (!empty($domain)) {
// Fix the domain to accept domains with and without 'www.'.
if (strtolower( substr($domain, 0, 4) ) == 'www.') {
$domain = substr($domain, 4);
}
// Add the dot prefix to ensure compatibility with subdomains
if (substr($domain, 0, 1) != '.') {
$domain = '.'.$domain;
}
// Remove port information.
$port = strpos($domain, ':');
if ($port !== false) {
$domain = substr($domain, 0, $port);
}
// Prevent "headers already sent" error with utf8 support (BOM)
// if ( utf8_support ) header('Content-Type: text/html; charset=utf-8');
header('Set-Cookie: '.rawurlencode($name).'='.rawurlencode($value)
.(empty($domain) ? '' : '; Domain='.$domain)
.(empty($maxage) ? '' : '; Max-Age='.$maxage)
.(empty($path) ? '' : '; Path='.$path)
.(!$secure ? '' : '; Secure')
.(!$HTTPOnly ? '' : '; HttpOnly'), false);
return true;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment