Skip to content

Instantly share code, notes, and snippets.

@m93a
Created March 23, 2015 18:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save m93a/66f88b10ed57719d0526 to your computer and use it in GitHub Desktop.
Save m93a/66f88b10ed57719d0526 to your computer and use it in GitHub Desktop.
Safe PHP sessions extension
<?php
//Drobné rozšíření k PHP sessions
function session_exists($id=false) {
$sid = '';
if($id) {
$sid = $id;
} elseif(session_id()) {
$sid = session_id();
} elseif($_GET['SID']) {
$sid = $_GET['SID'];
} elseif($_COOKIE['PHPSESSID']) {
$sid = $_COOKIE['PHPSESSID'];
}
if ($sid) {
if(!session_id()) {
session_id($sid);
session_start();
}
if (!$_SESSION['authentic']) {
session_destroy();
return false;
} else {
return true;
}
} else {
return false;
}
}
function session_create($sid=false) {
if(!$sid){
$sid = base64_encode(openssl_random_pseudo_bytes(32));
$sid = str_replace("+", "", $sid);
$sid = str_replace("/", "", $sid);
$sid = str_replace("=", "", $sid);
}
if(session_id()) {
session_destroy();
}
session_id($sid);
session_start();
$_SESSION['authentic'] = true;
}
function session_clear() {
session_start();
foreach($_SESSION as $key=>$value){
$_SESSION[$key] = NULL;
}
session_destroy();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment