function check_session_expired() { my_session_start(); if (get_session_expired()) { return json_encode(array(new command("alert", "Your session has expired. You are now being redirected to the login screen.\n(change the time it takes to expire under settings)"), new command("load page", "/pages/login/index.php"))); } else { return "[]"; } }
function logout_session() { my_session_start(); if (isset($_SESSION)) { foreach ($_SESSION as $k => $v) { $_SESSION[$k] = NULL; unset($_SESSION[$k]); } } }
<?php //Contrôleur principal include_once 'config/config.php'; include_once 'model/param.php'; include_once 'lib/session.php'; include_once 'lib/panier.php'; my_session_start(SESSION); if (isset($_GET['a'])) { if ($_GET['a'] == 'dc') { session_destroy(); session_unset(); header('location:index.php'); } } panier_creer(); if (isset($_GET['module'])) { $module = $_GET['module']; } else { $module = 'home'; } if (isset($_GET['action'])) { $action = $_GET['action']; } else { $action = 'accueil'; } $url = 'controller/' . $module . '/' . $action . '.php'; if (file_exists($url)) { include_once $url; } else { $title = 'page introuvable';
$sessionID = $_COOKIE['PHPSESSID']; } else { if (isset($_GET['PHPSESSID'])) { $sessionID = $_GET['PHPSESSID']; } else { session_start(); return false; } } if (!preg_match('/^[a-z0-9]{32}$/', $sessionID)) { return false; } session_start(); return true; } my_session_start(); //定义支持的多国语言列表 $languageList = array("zh_cn" => "简体中文", "zh_tw" => "繁體中文", "en" => "English"); // 增加版本逻辑 $path = dirname(__FILE__) . "/../../upload/"; //默认存储路径 $configPath = dirname(__FILE__) . '/miniyun-config.php'; // // 共享memcache时namespace // define('MEMCACHE_KEY', ''); //配置文件存在的话,进行系统初始化操作 $initialized = false; //系统是否初始化 $tablePrefix = "miniyun_"; $key = "key";
$sn = session_name(); if (isset($_COOKIE[$sn])) { $sessid = $_COOKIE[$sn]; } else { if (isset($_GET[$sn])) { $sessid = $_GET[$sn]; } else { return session_start(); } } if (!preg_match('/^[a-zA-Z0-9,\\-]{22,40}$/', $sessid)) { return false; } return session_start(); } if (!my_session_start()) { session_id(uniqid()); session_start(); session_regenerate_id(); } define('DS', DIRECTORY_SEPARATOR); define('ROOT', dirname(dirname(__FILE__))); define('TIME_OUT', 3600); # Nombre d'horaire pour les appels, 9 pour les 1ere et Terminale define("MAX_HORAIRE", 7); if (!defined("CAL_GREGORIAN")) { define("CAL_GREGORIAN", 0); } /** * Utiliser dans les fonctions getDateIntervale du controller principale */
function actSign() { global $ST, $post; if (!($err = $this->checkAll($post))) { $field = array("login" => $post->get('mail'), "name" => $post->get('name'), "address" => $post->get('address'), "city" => $post->get('city'), "phone" => $post->get('phone'), "mail" => $post->get('mail'), "type" => 'vendor', "hide" => 1); $password = substr(md5(time()), 0, 6); $field[] = "password=MD5('" . $password . "')"; $id = DB::insert('sc_users', $field, 'u_id'); $ext_data = array('vendor_id' => $id, 'info' => $post->get('info'), 'comment' => $post->get('comment')); DB::insert('sc_users_vendor', $ext_data, 'u_id'); my_session_start(); $_SESSION['_USER']['u_id'] = intval($id); //уведомление о регистрации $this->sendTemplateMail($field['mail'], 'notice_new_user', array('FROM_SITE' => FROM_SITE, 'LOGIN' => $field['login'], 'PASSWORD' => $password)); //уведомление о регистрации админу $this->sendTemplateMail($this->cfg('MAIL'), 'notice_new_user4admin', array('FROM_SITE' => FROM_SITE, 'LOGIN' => $field['login'], 'name' => $field['name'])); $this->noticeICQ($this->cfg('ICQ'), 'Новый пользователь на сайте'); //Добавим в подписку // $rs=$ST->select("SELECT * FROM sc_subscribe WHERE mail='{$this->field['mail']}'"); // if(!$rs->next()){ // $ST->insert('sc_subscribe',array('mail'=>$this->field['mail'],'type'=>'news send')); // } echo printJSON(array('status' => 'ok')); exit; } else { echo printJSON(array('error' => $err)); exit; } }
function actPassword() { global $ST, $get; $this->setPageTitle('Сменить пароль'); if ($get->exists('key')) { $rs = $ST->select("SELECT * FROM sc_users WHERE key_unlock='" . SQL::slashes($get->get('key')) . "'"); if ($rs->next()) { my_session_start(); $_SESSION['_USER']['u_id'] = $rs->getInt('u_id'); $this->setUser($rs->getRow()); } } $this->needAuth(); $data = array('login' => $this->getUser('login')); $this->display($data, dirname(__FILE__) . '/cabinet_password.tpl.php'); }
function check_logged_in() { global $session_expired; my_session_start(); $o_user = get_logged_in(); if ($o_user === NULL) { return FALSE; } return TRUE; }
function actSign() { include_once 'modules/shop/ShopBonus.class.php'; global $ST, $post; if (!($err = $this->checkAll($post))) { $field = array("login" => $post->get('mail'), "name" => $post->get('name'), "address" => $post->get('address'), "phone" => $post->get('phone'), "mail" => $post->get('mail')); //Добавим реферала if ($refid = $post->getInt('refid')) { $rs = DB::select("SELECT * FROM sc_users WHERE u_id={$refid}"); if ($rs->next()) { $field['refid'] = $post->getInt('refid'); } else { //Если неправильный refid } } if ($refid = ShopBonus::getPromoRefId($post->get('promo'))) { $rs = DB::select("SELECT * FROM sc_users WHERE u_id={$refid}"); if ($rs->next()) { $field['refid'] = $post->getInt('refid'); } else { //Если неправильный refid } } if (!$post->exists('address')) { $field['address'] = $field['street'] . ', ' . $field['house'] . '-' . $field['flat'] . ', подъезд ' . $field['porch'] . ', этаж ' . $field['floor']; } $password = substr(md5(time()), 0, 6); if ($p = $post->get('password')) { $password = $p; } $field[] = "password=MD5('" . $password . "')"; $id = $ST->insert('sc_users', $field, 'u_id'); my_session_start(); $_SESSION['_USER']['u_id'] = intval($id); //уведомление о регистрации $this->sendTemplateMail($field['mail'], 'notice_new_user', array('FROM_SITE' => FROM_SITE, 'LOGIN' => $field['login'], 'PASSWORD' => $password)); //уведомление о регистрации админу $this->sendTemplateMail($this->cfg('MAIL'), 'notice_new_user4admin', array('FROM_SITE' => FROM_SITE, 'LOGIN' => $field['login'], 'name' => $field['name'])); $this->noticeICQ($this->cfg('ICQ'), 'Новый пользователь на сайте'); //Добавим в подписку // $rs=$ST->select("SELECT * FROM sc_subscribe WHERE mail='{$this->field['mail']}'"); // if(!$rs->next()){ // $ST->insert('sc_subscribe',array('mail'=>$this->field['mail'],'type'=>'news send')); // } echo printJSON(array('status' => 'ok')); exit; } else { echo printJSON(array('error' => $err)); exit; } }