Show storage.php syntax highlighted
<?php
class StorageException extends Exception {
};
class Storage {
const VERSION = 1;
const SERVER = 1;
const USER = 2;
const SESSION = 3;
const HALFHOUR = "1800";
const HOUR = "3600";
const DAY = "86400";
const WEEK = "604800";
const MONTH = "2419200";
private static $loaded = false;
private static $sessionLoaded = false;
private static $serverVars = array ();
private static $sessionVars = array ();
private static $userVars = array ();
private static $serverTable = "ecp_engine_config";
private static $userTable = "ecp_user";
private static $saveUSER = array ();
private static $saveSERVER = array ();
private static $saveSESSION = array ();
private static $deleteUSER = array ();
private static $deleteSERVER = array ();
private static $deleteSESSION = array ();
public static function Init($table = false) {
if ($table !== false) {
self :: $serverTable = $table;
}
$expires = array (
Storage :: HALFHOUR,
Storage :: HOUR,
Storage :: DAY,
Storage :: WEEK,
Storage :: MONTH
);
foreach ($expires as $expire) {
if (isset ($_COOKIE[self :: $userTable . "_" . $expire])) {
self :: $userVars[$expire] = @ unserialize(Engine :: $encryption->decrypt($_COOKIE[self :: $userTable . "_" . $expire]));
//print_r(self :: $userVars[$expire]);
if (self :: $userVars[$expire] === false || self :: $userVars[$expire]['__version'] != Storage :: VERSION) {
self :: $userVars[$expire] = array ();
Debug :: addReport("Cookies read - old version detected - cookies have expired!", 1);
} else {
Debug :: addReport("Cookies read - expires: " . $expire, 1);
}
}
}
}
private static function loadServerVars() {
if (!self :: $loaded) {
$TA = new TA();
$TA->addQuery(TA :: SELECT, self :: $serverTable);
$TA->Execute();
while ($object = $TA->Result()->FetchObject()) {
self :: $serverVars[$object->name] = $object->value;
}
$TA->End();
self :: $loaded = true;
}
}
private static function loadSessionVars() {
if (!self :: $sessionLoaded && User :: hasSession()) {
self :: $sessionVars = User :: getSessionData();
self :: $sessionLoaded = true;
}
}
public static function Save($name, $value, $mode = Storage :: SESSION, $expires = Storage :: DAY) {
switch ($mode) {
case Storage :: USER :
self :: $saveUSER[$expires][$name] = $value;
break;
default :
self :: $saveSESSION[$name] = $value;
}
return true;
}
public static function Delete($name, $mode = Storage :: SESSION) {
switch ($mode) {
case Storage :: USER :
self :: $deleteUSER[$name] = true;
break;
default :
self :: $deleteSESSION[$name] = true;
}
return true;
}
public static function Load($name, $mode = Storage :: SESSION, $expires = Storage :: DAY) {
switch ($mode) {
case Storage :: USER :
if (isset (self :: $saveUSER[$expires][$name]))
return self :: $saveUSER[$expires][$name];
else
if (isset (self :: $userVars[$expires][$name]))
return self :: $userVars[$expires][$name];
else
throw new StorageException;
default :
if (!self :: $sessionLoaded)
self :: loadSessionVars();
if (!self :: $loaded)
self :: loadServerVars();
if (isset (self :: $saveSESSION[$name]))
return self :: $saveSESSION[$name];
else
if (isset (self :: $sessionVars[$name]))
return self :: $sessionVars[$name];
else
if (isset (self :: $serverVars[$name]))
return self :: $serverVars[$name];
else
return false;
}
}
public static function Write() {
self :: UpdateSession();
self :: WriteCookies();
self :: WriteToServer();
Debug :: addReport("Server and client variables saved", 0);
}
private static function WriteToServer() {
if (sizeof(self :: $saveSERVER)) {
if (!self :: $loaded)
self :: loadServerVars();
$TA = new TA();
foreach (self :: $saveSERVER as $name => $value) {
if (array_key_exists($name, self :: $serverVars)) {
$TA->addQuery(TA :: UPDATE, self :: $serverTable);
$TA->LIMIT(1);
} else {
$TA->addQuery(TA :: INSERT, self :: $serverTable);
}
$TA->addParam($name, TA :: STRING, $value);
$TA->Execute();
$TA->removeQuery();
}
$TA->End();
}
}
public static function UpdateSession() {
if (!self :: $sessionLoaded && !User :: hasSession())
return false;
// merge sessionVars (existing variables) with saveSESSION (new variables)
if (isset (self :: $sessionVars) && self :: $sessionVars !== false && sizeof(self :: $sessionVars)) {
foreach (self :: $sessionVars as $name => $value) {
if (!isset (self :: $saveSESSION[$name]))
self :: $saveSESSION[$name] = $value;
}
}
if (isset (self :: $deleteSESSION) && self :: $deleteSESSION !== false && sizeof(self :: $deleteSESSION)) {
foreach (self :: $saveSESSION as $name => $value) {
// unset variables marked for deletion
if (isset (self :: $deleteSESSION[$name])) {
unset (self :: $saveSESSION[$name]);
}
}
}
if (isset (self :: $saveSESSION) && self :: $saveSESSION !== false && sizeof(self :: $saveSESSION)) {
$sessionData = serialize(self :: $saveSESSION);
}
if (User :: hasSessionData()) {
if (isset ($sessionData)) {
$TA = new TA();
$TA->addQuery(TA :: UPDATE, 'ecp_engine_sessions');
$TA->WHERE("`id`='" . User :: getSID() . "'");
$TA->LIMIT(1);
$TA->addParam('data', TA :: STRING, String :: Escape($sessionData));
$TA->Execute();
}
} else
if (!isset ($_POST['logout']) && !isset ($_GET['logout'])) {
$TA = new TA();
$TA->addQuery(TA :: INSERT, 'ecp_engine_sessions');
$TA->addParam('id', TA :: STRING, String :: Escape(User :: getSID()));
$TA->addParam('user', TA :: STRING, User :: $profile->nick);
$TA->addParam('location', TA :: STRING, '/');
if (isset ($sessionData))
$TA->addParam('data', TA :: STRING, String :: Escape($sessionData));
$TA->Execute();
}
}
private static function WriteCookies() {
// merge userVars (existing cookies) with saveUSER (new variables)
foreach (self :: $userVars as $expires => $variables) {
foreach ($variables as $name => $value) {
self :: $saveUSER[$expires][$name] = $value;
}
}
foreach (self :: $saveUSER as $expires => $variables) {
// test expiration time
foreach ($variables as $name => $value) {
// unset variables marked for deletion
if (isset (self :: $deleteUSER[$name])) {
unset ($variables[$name]);
}
}
if (sizeof($variables)) {
// include version number
$variables['__version'] = Storage :: VERSION;
// serialize and encrypt array
$serialized_cookies = Engine :: $encryption->crypt(serialize($variables));
// save cookies
setcookie(self :: $userTable . "_" . $expires, $serialized_cookies, time() + (int) $expires, '/');
} else {
// clear cookies
setcookie(self :: $userTable . "_" . $expires, "", 0);
}
}
}
}
?>
See more files for this project here
EliteCore Project is a PHP5.1/Javascript/AJAX/XHTML/CSS framework for creating WEB 2.0 applications and services.The basic open-source instalation can be also used as an interactive personal page or BLOG.This project uses the latest features available.
Project homepage:
http://sourceforge.net/projects/elitecore
Programming language(s): JavaScript,PHP,XML
License: cpl
debug/
content.php
exceptions/
ajaxflush.php
nomodule.php
undefineddata.php
interface/
encryption.php
form.php
module_class.php
session_interface.php
renderers/
default.php
sql/
mysql.php
mysqli.php
themes/
ECP/
accept.png
add.png
alt_star.gif
anchor.png
arrow_refresh.png
asterisk_orange.png
asterisk_yellow.png
attach.png
back.png
cog_error.png
cog_go.png
comment.png
comment_add.png
comment_delete.png
comment_edit.png
comments.png
comments_add.png
comments_delete.png
control_play_blue.png
drive.png
gnome-fs-directory.png
gnome-mime-audio.png
layers.png
layout.png
layout_add.png
layout_content.png
layout_delete.png
layout_edit.png
layout_error.png
layout_header.png
layout_link.png
layout_sidebar.png
lightbulb.png
lightbulb_add.png
lightbulb_delete.png
lightbulb_off.png
lightning.png
lightning_add.png
lightning_delete.png
lightning_go.png
link.png
link_add.png
link_break.png
link_delete.png
link_edit.png
link_error.png
link_go.png
lock.png
lock_add.png
lock_break.png
lock_delete.png
lock_edit.png
lock_go.png
lock_open.png
newspaper.png
newspaper_add.png
newspaper_delete.png
newspaper_go.png
newspaper_link.png
note.gif
note.png
note_add.png
note_delete.gif
note_delete.png
note_edit.png
note_error.png
note_go.png
note_new.gif
overlays.png
package.png
package_add.png
package_delete.png
package_go.png
package_green.png
package_link.png
page.gif
page.png
page_add.png
page_attach.png
page_code.png
page_copy.png
page_delete.png
page_edit.png
page_error.png
page_excel.png
page_find.png
page_gear.png
page_go.png
page_green.png
page_key.png
page_lightning.png
page_link.png
page_paintbrush.png
page_paste.png
page_red.png
page_refresh.png
page_save.png
page_white.png
pencil.png
pencil_add.png
pencil_delete.png
pencil_go.png
photo.png
photo_add.png
photo_delete.png
photo_link.png
photos.png
picture.png
picture_add.png
picture_delete.png
picture_edit.png
picture_empty.png
picture_error.png
picture_go.png
picture_key.png
picture_link.png
picture_save.png
pictures.png
plugin.png
plugin_add.png
plugin_delete.png
plugin_disabled.png
plugin_edit.png
plugin_error.png
plugin_go.png
plugin_link.png
report.png
report_add.png
report_delete.png
report_disk.png
report_edit.png
report_go.png
report_key.png
report_link.png
report_magnify.png
report_picture.png
report_user.png
report_word.png
script.png
script_add.png
script_code.png
script_code_red.png
script_delete.png
script_edit.png
script_error.png
script_gear.png
script_go.png
script_key.png
script_lightning.png
script_link.png
script_palette.png
script_save.png
star.png
star_rating.gif
stop.png
style.png
text_align_center.png
text_align_justify.png
text_align_left.png
text_align_right.png
text_allcaps.png
text_bold.png
text_columns.png
text_dropcaps.png
text_heading_1.png
text_heading_2.png
text_heading_3.png
text_heading_4.png
text_heading_5.png
text_heading_6.png
text_horizontalrule.png
text_indent.png
text_indent_remove.png
text_italic.png
text_kerning.png
text_letter_omega.png
text_letterspacing.png
text_linespacing.png
text_list_bullets.png
text_list_numbers.png
text_lowercase.png
text_padding_bottom.png
text_padding_left.png
text_padding_right.png
text_padding_top.png
text_replace.png
text_signature.png
text_smallcaps.png
text_strikethrough.png
text_subscript.png
text_superscript.png
text_underline.png
text_uppercase.png
textfield.png
textfield_add.png
textfield_delete.png
textfield_key.png
textfield_rename.png
tux.png
vert_star.gif
ECP.xml
Icon.php
Location.php
Module.php
ModulesManager.php
MusicTags.php
Page.php
XHTMLParser.php
XMLForms.php
ajax.php
author.html
cache.php
config.php
date.php
db.php
debug.php
ecp-full.php
ecp-mini.php
engine.php
events.php
filesystem.php
footer.html
i18n.php
mailer.php
main.css
mcrypt.php
mime.php
mod_rewrite.php
perspective.php
rc4.php
reflection.php
session_passport.php
storage.php
string.php
template.php
texy.php
user.php
user_cache.php
wysiwyg_texy.php
xhtml_form.php
xtea.php