function login() { if ($this->checkUserEmail($this->email_id)) { if ($this->checkpassword($this->password)) { $db = new Db(); $mailid = $db->quote($this->email_id); $pass = $db->quote($this->password); $query = "SELECT * FROM " . $this->tableName() . " WHERE EmailId = {$mailid} and Password = {$pass} "; $row = $db->select($query); if (count($row) == 0) { Error::set(ACCOUNT_IS_NOT_EXIST); return FALSE; } else { if ($row[0]["active"] == 0) { Error::set(ACCOUNT_IS_BLOCKED); return FALSE; } else { Session::write("email", $row[0]["EmailId"]); Session::write("userid", $row[0]["UserId"]); Session::write("access_type", $row[0]["RoleId"]); return TRUE; } } } } }
function login() { if (isset($this->data['request']) && isset($this->data["request"]['submit'])) { if ($this->checkUserEmail($this->data['request']['email'])) { if ($this->checkpassword($this->data['request']['password'])) { $db = new Db(); $mailid = $db->quote($this->data['request']["email"]); $pass = $db->quote($this->data['request']["password"]); $query = "select * from " . $this->tableName() . " where EmailId={$mailid} and Password={$pass} "; $row = $db->select($query); if (count($row) == 0) { Error::set(ACCOUNT_IS_NOT_EXIST); return FALSE; } else { if ($row[0]["active"] == 0) { Error::set(ACCOUNT_IS_BLOCKED); return FALSE; } else { Session::write("email", $row[0]["EmailId"]); Session::write("userid", $row[0]["UserId"]); Session::write("access_type", $row[0]["RoleId"]); return TRUE; } } } } } return false; }
function buildXml() { // A "must have", checking whether the connector is enabled and the basic parameters (like current folder) are safe. $this->checkConnector(); $this->checkRequest(); // Checking ACL permissions, we're just getting an information about a file, so FILE_VIEW permission seems to be ok. if (!$this->_currentFolder->checkAcl(CKFINDER_CONNECTOR_ACL_FILE_VIEW)) { $this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_UNAUTHORIZED); } // Make sure we actually received a file name if (!isset($_GET["fileName"])) { $this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_INVALID_NAME); } $fileName = CKFinder_Connector_Utils_FileSystem::convertToFilesystemEncoding($_GET["fileName"]); $resourceTypeInfo = $this->_currentFolder->getResourceTypeConfig(); // Use the resource type configuration object to check whether the extension of a file to check is really allowed. if (!$resourceTypeInfo->checkExtension($fileName)) { $this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_INVALID_EXTENSION); } // Make sure that the file name is really ok and has not been sent by a hacker if (!CKFinder_Connector_Utils_FileSystem::checkFileName($fileName) || $resourceTypeInfo->checkIsHiddenFile($fileName)) { $this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_INVALID_REQUEST); } $filePath = CKFinder_Connector_Utils_FileSystem::combinePaths($this->_currentFolder->getServerPath(), $fileName); if (!file_exists($filePath) || !is_file($filePath)) { $this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_FILE_NOT_FOUND); } //set session values to be check by process.php upon returning from pixlr.com $maketoken = md5(session_id()); /////////////////// //HACK KOEZIONCMS// $thumbFolder = $this->_currentFolder->getThumbsServerPath(); $pixlrSession = array('token' => substr($maketoken, 0, 16), 'ImagePath' => $filePath, 'clientImagePath' => $this->_currentFolder->getUrl(), 'fileName' => $fileName, 'return' => $_SERVER['HTTP_REFERER'], 'thumbLocation' => $thumbFolder . $fileName); Session::write('Pixlr', $pixlrSession); //$_SESSION['pixlr']['token'] = substr($maketoken,0,16); //$_SESSION['pixlr']['ImagePath'] = $filePath; //$_SESSION['pixlr']['clientImagePath'] = $this->_currentFolder->getUrl(); // ie: /CMSfiles/images/subdirectory/ //$_SESSION['pixlr']['fileName'] = $fileName; //$_SESSION['pixlr']['return'] = $_SERVER['HTTP_REFERER']; //$thumbFolder = $this->_currentFolder->getThumbsServerPath(); //$_SESSION['pixlr']['thumbLocation'] = $thumbFolder . $fileName; //get the client-side absolute path to the image being edited //$absolute_filePath = "http://".$_SERVER['HTTP_HOST'].$_SESSION['pixlr']['clientImagePath'].$_SESSION['pixlr']['fileName']; $absolute_filePath = "http://" . $_SERVER['HTTP_HOST'] . $pixlrSession['clientImagePath'] . $pixlrSession['fileName']; //get teh directory this plugin is in so we can return to the process.php script in this folder $pluginFolder = dirname(__FILE__); //the directory holding this plugin //make the directory a client-side absolute URL $clientPluginFolder = preg_replace("@" . $_SERVER['DOCUMENT_ROOT'] . "@", "http://" . $_SERVER['HTTP_HOST'], $pluginFolder); //parameters to send to pixlr.com $pixlr_params = array("referrer" => $_SERVER['HTTP_HOST'], "loc" => "en", "exit" => $_SERVER['HTTP_REFERER'] != "" ? urlencode($_SERVER['HTTP_REFERER']) : "http://www.pixlr.com", "image" => $absolute_filePath, "title" => $fileName, "method" => "GET", "target" => urlencode($clientPluginFolder . "/process.php?token=" . $pixlrSession['token']), "locktarget" => "TRUE", "locktitle" => "TRUE", "locktype" => "TRUE", "lockquality" => "80"); $pixlr_link = "http://www.pixlr.com/editor?"; foreach ($pixlr_params as $key => $val) { $pixlr_link .= $key . "=" . $val . "&"; } $pixlr_link = rtrim($pixlr_link, "&"); $oNode = new Ckfinder_Connector_Utils_XmlNode("Pixlr"); $oNode->addAttribute("pixlr_link", $pixlr_link); $this->_connectorNode->addChild($oNode); }
/** * ファイルを保存する * * @param Model $model * @param array 画像保存対象フィールドの設定 * @return ファイル名 Or false * @access public */ function saveFile(&$model, $field) { // データを取得 $file = $model->data[$model->name][$field['name']]; if (empty($file['tmp_name'])) { return false; } if (!empty($file['error']) && $file['error'] != 0) { return false; } // プレフィックス、サフィックスを取得 $prefix = ''; $suffix = ''; if (!empty($field['prefix'])) { $prefix = $field['prefix']; } if (!empty($field['suffix'])) { $suffix = $field['suffix']; } // 保存ファイル名を生成 $basename = preg_replace("/\\." . $field['ext'] . "\$/is", '', $file['name']); if (!$this->tmpId) { $fileName = $prefix . $basename . $suffix . '.' . $field['ext']; } else { if (!empty($field['namefield'])) { $model->data[$model->alias][$field['namefield']] = $this->tmpId; $fileName = $this->getFieldBasename($model, $field, $field['ext']); } else { $fileName = $this->tmpId . '_' . $field['name'] . '.' . $field['ext']; } } $filePath = $this->savePath . $fileName; if (!$this->tmpId) { if (copy($file['tmp_name'], $filePath)) { chmod($filePath, 0666); // ファイルをリサイズ if (!empty($field['imageresize']) && ($field['ext'] == 'jpg' || $field['ext'] == 'gif' || $field['ext'] == 'png')) { if (!empty($field['imageresize']['thumb'])) { $thumb = $field['imageresize']['thumb']; } else { $thumb = false; } $this->resizeImage($filePath, $filePath, $field['imageresize']['width'], $field['imageresize']['height'], $thumb); } $ret = $fileName; } else { $ret = false; } } else { $_fileName = str_replace('.', '_', $fileName); $this->Session->write('Upload.' . $_fileName, $field); $this->Session->write('Upload.' . $_fileName . '.type', $file['type']); $this->Session->write('Upload.' . $_fileName . '.data', file_get_contents($file['tmp_name'])); return $fileName; } return $ret; }
public static function set($error = "") { if (!Session::read("error")) { $err = array(); $err[] = $error; Session::write("error", $err); } else { $err = Session::read("error"); $err[] = $error; Session::write("error", $err); } }
function is_logged_in() { if (isset($_SESSION['logged_in'])) { $DB = Mysql::init(); $data = $DB->select('*', ACCOUNT_DATABASE . '.account', "id='" . $_SESSION['user_data']['id'] . "'"); clear_site(); if (is_array($data)) { assign('user_data', $data); Session::write('user_data', $data); return true; } } return false; }
/** * Cette fonction permet la récupération des données du site courant * * @return varchar Url du site à prendre en compte * @access public * @author koéZionCMS * @version 0.1 - 02/05/2012 by FI * @version 0.2 - 14/06/2012 by FI - Modification de la récupération du site pour la boucle locale - On récupère le premier site de la liste et plus celui avec l'id 1 pour éviter les éventuelles erreurs * @version 0.3 - 04/09/2012 by FI - Mise en place d'un passage de paramètre en GET pour pouvoir changer de site en local * @version 0.4 - 02/04/2014 by FI - Mise en place d'un passage de paramètre en GET pour pouvoir changer le host du site en local * @version 0.5 - 21/05/2014 by FI - Mise en place d'un passage de paramètre dans la fonction pour pouvoir changer le host du site * @version 0.6 - 23/04/2015 by FI - Rajout de la condition OR dans la récupération du site courant afin de traiter également les alias d'url * @version 0.7 - 24/04/2015 by FI - Gestion de la traduction */ public function get_website_datas($hackWsHost = null) { //Si un hack du host est passé dans l'url on le stocke dans la variable de session if (isset($_GET['hack_ws_host'])) { Session::write('Frontoffice.hack_ws_host', $_GET['hack_ws_host']); } //On va contrôler que le hack du host n'est pas passé en paramètre de la fonction si c'est le cas il prendra le dessus sur celui dans la variable de session $hackWsHost = isset($hackWsHost) ? $hackWsHost : Session::read('Frontoffice.hack_ws_host'); $httpHost = isset($hackWsHost) && !empty($hackWsHost) ? $hackWsHost : $_SERVER["HTTP_HOST"]; //Récupération de l'url $cacheFolder = TMP . DS . 'cache' . DS . 'variables' . DS . 'Websites' . DS; //On contrôle si le modèle est traduit $this->load_model('Website'); //Chargement du modèle if ($this->Website->fieldsToTranslate) { $cacheFile = $httpHost . '_' . DEFAULT_LANGUAGE; } else { $cacheFile = $httpHost; } $website = Cache::exists_cache_file($cacheFolder, $cacheFile); if (!$website) { //HACK SPECIAL LOCAL POUR CHANGER DE SITE pour permettre la passage de l'identifiant du site en paramètre if (isset($_GET['hack_ws_id'])) { Session::write('Frontoffice.hack_ws_id', $_GET['hack_ws_id']); } $hackWsId = Session::read('Frontoffice.hack_ws_id'); if ($httpHost == 'localhost' || $httpHost == '127.0.0.1') { if ($hackWsId) { $websiteId = $hackWsId; } else { $websites = $this->Website->findList(array('order' => 'id ASC')); $websiteId = current(array_keys($websites)); } $websiteConditions = array('conditions' => array('id' => $websiteId, 'online' => 1)); } else { if ($hackWsId) { $websiteConditions = array('conditions' => array('id' => $hackWsId, 'online' => 1)); } else { //On récupère les sites dont l'url ou un alias est égal à $httpHost $websiteConditions = array('conditions' => array('OR' => array("url LIKE '%" . $httpHost . "%'", "url_alias LIKE '%" . $httpHost . "%'"), 'online' => 1)); } } $website = $this->Website->findFirst($websiteConditions); Cache::create_cache_file($cacheFolder, $cacheFile, $website); } if (!defined('CURRENT_WEBSITE_ID')) { define('CURRENT_WEBSITE_ID', $website['id']); } return array('layout' => $website['tpl_layout'], 'website' => $website); }
/** * ファイルを保存する * * @param Model $Model * @param array 画像保存対象フィールドの設定 * @return ファイル名 Or false * @access public */ public function saveFile(Model $Model, $field) { // データを取得 $file = $Model->data[$Model->name][$field['name']]; if (empty($file['tmp_name'])) { return false; } if (!empty($file['error']) && $file['error'] != 0) { return false; } // プレフィックス、サフィックスを取得 $prefix = ''; $suffix = ''; if (!empty($field['prefix'])) { $prefix = $field['prefix']; } if (!empty($field['suffix'])) { $suffix = $field['suffix']; } // 保存ファイル名を生成 $basename = preg_replace("/\\." . $field['ext'] . "\$/is", '', $file['name']); if (!$this->tmpId) { $fileName = $prefix . $basename . $suffix . '.' . $field['ext']; } else { if (!empty($field['namefield'])) { $Model->data[$Model->alias][$field['namefield']] = $this->tmpId; $fileName = $this->getFieldBasename($Model, $field, $field['ext']); } else { $fileName = $this->tmpId . '_' . $field['name'] . '.' . $field['ext']; } } $filePath = $this->savePath[$Model->alias] . $fileName; if (!$this->tmpId) { if (copy($file['tmp_name'], $filePath)) { chmod($filePath, 0666); $ret = $fileName; } else { $ret = false; } } else { $_fileName = str_replace(array('.', '/'), array('_', '_'), $fileName); $this->Session->write('Upload.' . $_fileName, $field); $this->Session->write('Upload.' . $_fileName . '.type', $file['type']); $this->Session->write('Upload.' . $_fileName . '.data', file_get_contents($file['tmp_name'])); return $fileName; } return $ret; }
public function loadControllerFile($controllerToLoad) { $controllerName = Inflector::underscore($controllerToLoad); $controller_path = CONTROLLERS . DS . $controllerName . '_controller.php'; //On récupère dans une variable le chemin du controller ////////////////////////////////////////////// // RECUPERATION DES CONNECTEURS PLUGINS // //Les connecteurs sont utilisés pour la correspondance entre les plugins et les dossiers des plugins $pluginsConnectors = get_plugins_connectors(); if (isset($pluginsConnectors[$controllerName])) { $this->request->pluginFolder = $sFolderPlugin = $pluginsConnectors[$controllerName]; //Récupération du dossier du plugin si le controller appellé est dans un connector d'un plugin $controller_path = PLUGINS . DS . $sFolderPlugin . DS . 'controllers' . DS . $controllerName . '_controller.php'; $controller_name = strtolower($controllerName . '_plugin_controller'); } else { $controller_name = strtolower($controllerName . '_controller'); } ////////////////////////////////////////////// if (file_exists($controller_path)) { if (isset($sFolderPlugin)) { //On doit contrôler si le plugin est installé en allant lire le fichiers $pluginsList = Cache::exists_cache_file(TMP . DS . 'cache' . DS . 'variables' . DS . 'Plugins' . DS, "plugins"); $pluginControllerToLoad = Inflector::camelize($sFolderPlugin); if (!isset($pluginsList[$pluginControllerToLoad])) { Session::write('redirectMessage', $message); $this->redirect('home/e404'); die; } $pluginControllerBoostrap = PLUGINS . DS . $sFolderPlugin . DS . 'controller.php'; if (file_exists($pluginControllerBoostrap)) { require_once $pluginControllerBoostrap; } } require_once $controller_path; //Inclusion de ce fichier si il existe return $controller_name; } else { if (isset($sFolderPlugin)) { $message = "Le controller du plugin " . $controllerToLoad . " n'existe pas" . " dans le fichier dispatcher ou n'est pas correctement installé"; } else { $message = "Le controller " . $controllerToLoad . " n'existe pas" . " dans le fichier dispatcher"; } Session::write('redirectMessage', $message); $this->redirect('home/e404'); die; } }
$mail->Body = "\nRECRU(リクルー)の事前登録を受け付けました。\n" . "\nこの度は就活生同士のクローズドSNS「RECRU(リクルー)」への事前登録\n" . "誠にありがとうございます。\n" . "今後、本サービスの開始まで\n" . "お得な就活情報やサービスリリースに関する情報をお知らせいたしますので、\n" . "ぜひご活用ください!!\n" . "\n※このメールはサービスの事前登録受付後、自動送信されております.\n" . "返信には対応しておりませんので、ご注意くださいませ。\n" . "\n============================================================\n" . "RECRU(リクルー)\n" . "運営事務局\n" . "http://recru.asia" . ""; $mailfailed = ""; if (!$mail->send()) { $mailfailed = "\n事前登録のメールの送信に失敗しました。\n" . "手動での送信が必要になります\n" . "以下登録者への完了メール===================\n\n" . "件名: " . $mail->Subject . "\n" . "本文:\n" . $mail->Body . "\n" . "\n===============登録者への完了メール内容ここまで\n" . ""; $logger->error("ユーザーへのメール送信に失敗しました。"); $logger->error($mail->ErrorInfo); } // to bellpark $mail->clearAllRecipients(); foreach (Mailconfig::$to as $address => $name) { $mail->addAddress($address, $name); } foreach (Mailconfig::$cc as $address => $name) { $mail->addCC($address, $name); } foreach (Mailconfig::$bcc as $address => $name) { $mail->addBCC($address, $name); } $mail->Subject = '【RECRU】事前登録の受付'; $mail->Body = "\nサービスの事前登録を受け付けました。\n\n" . $mailfailed . "メールアドレス:{$posted['mail']}\n" . "\n※このメールはサービスの事前登録受付後、自動送信されております.\n" . "返信には対応しておりませんので、ご注意くださいませ。\n" . "\n============================================================\n" . "RECRU(リクルー)\n" . "運営事務局\n" . "http://recru.asia" . ""; if (!$mail->send()) { $logger->fatal("管理者へのメール送信に失敗しました。"); $logger->fatal($mail->ErrorInfo); $logger->fatal($mail->Body); Session::write('failed.register', "登録処理中にエラーが発生しました。<br/>お手数ですが、登録内容をご確認の上再度ご登録をお願いします。"); // $dbconn->rollback(); //DB rollback return header('Location: index.php'); } // $dbconn->commit(); //DB commit Session::delete('posted'); return header('Location: complete.php');
/** * Session write handler. * This method should be overridden if {@link setUseCustomStorage UseCustomStorage} is set true. * @param string session ID * @param string session data * @return boolean whether session write is successful */ public function _write($id, $data) { $session = Session::write($id, $data); return $session instanceof Session; }
* @link http://madebykieron.co.uk * @copyright http://unlicense.org/ */ /** * Boot the environment */ require SYS . 'boot' . EXT; /** * Boot the application */ require APP . 'run' . EXT; /** * Set input */ Input::detect(Request::method()); /** * Read session data */ Session::read(); /** * Route the request */ $response = Router::create()->dispatch(); /** * Update session */ Session::write(); /** * Output stuff */ $response->send();
/** * Test writing something to the session */ public function testSessionWrite() { Session::write($this->testSessionID, $this->testSessionData); }
if (Session::read('login_attempts') > 3) { if (isset($_SESSION['security_code']) && $_SESSION['security_code'] != $captcha) { $login_failed = true; } } if (!$login_failed) { $data = $DB->select("*", ACCOUNT_DATABASE . ".account", "login LIKE '" . $username . "' AND password LIKE PASSWORD('" . $password . "')"); if (is_array($data)) { if ($data['status'] == 'BLOCK') { $smarty->assign('blocked_account', true); $smarty->assign('active', $data['active']); } else { $_SESSION['logged_in'] = true; $_SESSION['user_data'] = $data; $logged_in = true; Session::write('login_attempts', 0); } } } } if ($logged_in) { header('Location: ' . site_url() . '/main/index'); exit; } else { if (Session::read('login_attempts') > 3) { assign('captcha', site_url() . 'captcha.php'); } if ($logged_in == false) { assign('login_error', true); if (isset($_SESSION['login_attempts'])) { $_SESSION['login_attempts']++;
/** * Cette fonction va insérer dans le fichier de log les différentes erreurs rencontrées * * @param varchar $message Message à insérer dans les logs * @access public * @author koéZionCMS * @version 0.1 - 23/12/2011 */ public function error($message) { require_once LIBS . DS . 'config_magik.php'; $cfg = new ConfigMagik(CONFIGS . DS . 'files' . DS . 'core.ini', true, false); $coreConfs = $cfg->keys_values(); if ($coreConfs['log_php']) { //Rajout le 02/04/2013 $date = date('Y-m-d'); $traceSql = date('Y-m-d H:i:s') . "|#|" . $message . "|#|" . $this->request->url . "\n"; FileAndDir::put(TMP . DS . 'logs' . DS . 'php' . DS . 'e404_' . $date . '.log', $traceSql, FILE_APPEND); } $url = Router::url('e404'); $url .= "?e404=" . $this->request->url; Session::write('redirectMessage', $message); header("Location: " . $url); die; }
private function SetIntState($state) { $this->_intState = $state; $sid = 'upnp_ply_' . $this->_description_url; $data = json_encode($this->_intState); if (!Session::exists('api', $sid)) { Session::create(array('type' => 'api', 'sid' => $sid, 'value' => $data)); } else { Session::write($sid, $data); } debug_event('upnpPlayer', 'SetIntState:' . $this->_intState, 5); }
private function PlayListSave() { $sid = 'upnp_pls_' . $this->_deviceGUID; $pls_data = serialize(array('upnp_playlist' => $this->_songs, 'upnp_current' => $this->_current)); if (!Session::exists('api', $sid)) { Session::create(array('type' => 'api', 'sid' => $sid, 'value' => $pls_data)); } else { Session::write($sid, $pls_data); } }
<?php include_once 'utils/Session.php'; header("Content-type: image/jpg"); $img_string = "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"; $data = base64_decode($img_string); $string = rand(1000, 9999) . ' ' . rand(1000, 9999); // replace this with $_POST, $_SESSION, or anything $im = imagecreatefromstring($data); $color = imagecolorallocate($im, 255, 255, 255); $px = (imagesx($im) - 7.5 * strlen($string)) / 2; Session::write('captcha', $string); imagestring($im, 5, $px, 9, $string, $color); imagejpeg($im); imagedestroy($im); /* * References * http://stackoverflow.com/questions/4572121/how-to-create-gd-image-from-base64-encoded-jpeg * http://www.base64-image.de/ * http://www.99points.info/2011/01/recaptcha-style-captcha-with-jquery-and-php/ */
public static function setFlash($message, $type = B_ERROR, $return = false) { $messages = Session::read('flash_message'); $messages[] = $message; Session::write('flash_message', $messages); Session::write('flash_type', $type); if ($return) { return SEssion::flash(); } }
<?php // Appel les modèles require 'modeles/maPDOClass.php'; require 'modeles/sessionClass.php'; require 'modeles/UtilisateurClass.php'; require 'modeles/UtilisateurManagerClass.php'; // si on essaye de se connecter if (isset($_POST['lelogin'])) { $manage = new UtilisateurManager(); $un = $manage->connectUn($_POST['lelogin'], $_POST['lepass']); if ($un) { $maSession = new Session(); foreach ($un as $clef => $valeur) { $maSession->write($clef, $valeur); } $maSession->write("idutil", session_id()); // redirection header("Location: ./"); } else { // création erreur $erreur_login = "******"; // Appel de la vue require_once 'vues/connexionVue.php'; } // si on veut se déconnecter ou que notre connexion n'est plus valide } elseif (isset($_GET['deco'])) { Session::deconnectSession(); // redirection header("Location: ./"); // si on est connecté
/** * Cette fonction permet l'affichage d'une page * * @param integer $id Identifiant de la page à afficher * @param varchar $slug Url de la page * @access public * @author koéZionCMS * @version 0.1 - 03/01/2012 by FI * @version 0.2 - 23/02/2012 by FI - Mise en place de la sélection des frères pour affichage dans la colonne de droite * @version 0.3 - 25/02/2012 by FI - Mise en place de la redirection vers une autre catégorie * @version 0.4 - 25/02/2012 by FI - Mise en place de la gestion d'un titre pour la colonne de droite lors de l'affichage des catégories "frères" * @version 0.5 - 28/02/2012 by FI - Modification de l'affichage du détail d'une catégorie, mise en place de la variable is_full_page calculée en fonction des éléments de la colonne de droite * @version 0.6 - 01/03/2012 by FI - Rajout de la gestion du formulaire de contact dans la page catégorie * @version 0.7 - 06/03/2012 by FI - récupération de la liste des rédacteurs * @version 0.8 - 12/03/2012 by FI - Modification de la récupération des types d'articles * @version 0.9 - 12/04/2012 by FI - Mise en place de l'internationnalisation * @version 1.0 - 26/04/2012 by FI - Rajout d'un mot de passe pour consulter la page * @version 1.1 - 22/05/2012 by FI - Mise en place de la gestion des filtres des articles * @version 1.2 - 05/06/2012 by FI - Modification de la gestion de la sécurité de la page * @version 1.3 - 16/07/2012 by FI - Rajout de la requête pour la récupération des produits * @version 1.4 - 02/08/2012 by FI - Passage de la gestion du formulaire de contact dans une fonction pour le mutualiser avec d'autres contrôleurs * @version 1.5 - 02/10/2012 by FI - Mise en place d'un slider pour les catégories, Mise en place de la possibilité de changer le template des pages * @version 1.6 - 05/11/2012 by FI - Mise en fonction privée de la récupération de la catégorie ainsi que la récupération des articles associés pour pouvoir l'utiliser dans le flux rss */ public function view($id, $slug) { //Session::delete('Frontoffice.Category'); /////////////////////////////////////////////// // RECUPERATION DE LA CATEGORIE DEMANDEE // /////////////////////////////////////////////// $datas = $this->_get_datas_category($id); //////////////////////////////////////////////////////////////////////////////////// // GESTION DES EVENTUELLES ERREURS DANS LE RETOUR DE LA REQUETE OU DANS L'URL // //Si le tableau de retour de la bdd est vide on va afficher une erreur 404 car aucun élément ne correspond //if(empty($datas['category'])) { $this->e404('Page introuvable'); } if (empty($datas['category'])) { Session::write('redirectMessage', "La catégorie est vide"); $this->redirect('home/e404'); } //Si l'url est différente de celle en base de données on va renvoyer sur la bonne page if ($slug != $datas['category']['slug']) { $this->redirect("categories/view/id:{$id}/slug:" . $datas['category']['slug'], 301); } //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////// // GESTION DE LA REDIRECTION VERS UNE AUTRE CATEGORIE // if ($datas['category']['redirect_category_id'] != 0) { //Cas particulier la redirection vers la home page if ($datas['category']['redirect_category_id'] == -1) { $redirectUrl = '/'; } else { $redirectId = $datas['category']['redirect_category_id']; //Identifiant de la catégorie de redirection $redirectConditions = array('fields' => array('slug'), 'conditions' => array('id' => $redirectId)); //Conditions de recherche $redirectCategory = $this->Category->findFirst($redirectConditions); //Récupération des données de la catégorie $redirectSlug = $redirectCategory['slug']; //Récupération du slug $redirectUrl = "categories/view/id:{$redirectId}/slug:" . $redirectSlug; //On lance la redirection } $this->redirect($redirectUrl, 301); //On lance la redirection } //////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////// // TEST POUR SAVOIR SI UN TEMPLATE PARTICULIER EST DEMANDE // if ($datas['category']['template_id']) { $controllerVars = $this->get('vars'); //Récupération des données du controller $websiteParams = $controllerVars['websiteParams']; //Récupération des données concernants le site courant $websiteParams['tpl_layout'] = $datas['category']['tpl_layout']; //Mise à jour du layout $websiteParams['tpl_code'] = $datas['category']['tpl_code']; //Mise à jour du code du layout $websiteParams['template_id'] = $datas['category']['template_id']; //Mise à jour de l'identifiant du template $this->layout = $datas['category']['tpl_layout']; $this->set('websiteParams', $websiteParams); //Mise à jour des données du site } ///////////////////////////////////////////////////////////////// $datas['breadcrumbs'] = $this->Category->getPath($id); //Récupération du fil d'ariane //Récupération de l'éventuelle données permettant de savoir si la page est visible (dans la variable de session) $isAuthCategory = Session::read('Frontoffice.Category.' . $datas['category']['id'] . '.isAuth'); //Si la page est sécurisée il va falloir vérifier si l'utilisateur ne s'est pas déjà connecté if (isset($datas['category']['is_secure']) && $datas['category']['is_secure'] && !$isAuthCategory) { /////////////////////////////// // GESTION DU FORMULAIRE // if (isset($this->request->data['formulaire_secure'])) { //Si le formulaire de contact est posté $data = $this->request->data; //Mise en variable des données postées $data['password'] = sha1($data['password']); //Cryptage du mot de passe //Récupération du login et du mot de passe dans des variables $postLogin = $data['login']; $postPassword = $data['password']; //Récupération de l'utilisateur $this->load_model('User'); $user = $this->User->findFirst(array('conditions' => array('login' => $postLogin))); //Si on récupère un utilisateur if (!empty($user)) { //Récupération des données de l'utilisateur dans des variables $bddPassword = $user['password']; $bddRole = $user['role']; $bddOnline = $user['online']; //On va contrôler que le mot de passe saisi soit identique à celui en base de données if ($postPassword == $bddPassword) { //Ensuite on contrôle que cet utilisateur à bien le droit de se connecter au backoffice if ($bddOnline) { if ($bddRole == 'user') { //Récupération des sites auxquels l'utilisateurs peut se connecter $this->load_model('UsersGroupsWebsite'); //Chargement du modèle $usersGroupsWebsites = $this->UsersGroupsWebsite->find(array('conditions' => array('users_group_id' => $user['users_group_id']))); //On check qu'il y ait au moins un site if (count($usersGroupsWebsites) > 0) { //On récupère la liste des sites dans un tableau $usersGroupsWebsitesList = array(); foreach ($usersGroupsWebsites as $k => $v) { $usersGroupsWebsitesList[] = $v['website_id']; } if (in_array(CURRENT_WEBSITE_ID, $usersGroupsWebsitesList)) { Session::write('Frontoffice.Category.' . $datas['category']['id'] . '.isAuth', true); $this->redirect("categories/view/id:{$id}/slug:" . $datas['category']['slug'], 301); } else { //Gestion des erreurs $message = '<p class="error">Vous ne disposez pas des droits nécessaires pour accéder à cette page (CAS 2)</p>'; $this->set('message', $message); } } else { //Gestion des erreurs $message = '<p class="error">Vous ne disposez pas des droits nécessaires pour accéder à cette page (CAS 1)</p>'; $this->set('message', $message); } } else { //Gestion des erreurs $message = '<p class="error">Désolé mais votre typologie ne vous donne pas accès à cette page</p>'; $this->set('message', $message); } } else { //Gestion des erreurs $message = '<p class="error">Désolé mais votre accès n\'est pas autorisé</p>'; $this->set('message', $message); } } else { //Gestion des erreurs $message = '<p class="error">Désolé mais le mot de passe ne concorde pas</p>'; $this->set('message', $message); } } else { //Gestion des erreurs $message = '<p class="error">Désolé aucun utilisateur n\'a été trouvé</p>'; $this->set('message', $message); } } ////////////////////////////////////////// $this->set($datas); //On fait passer les données à la vue $this->render('/categories/not_auth'); } else { //$datas['is_full_page'] = 1; //Par défaut on affichera le détail de la catégorie en pleine page $datas['children'] = array(); $datas['brothers'] = array(); $datas['postsTypes'] = array(); ////////////////////////////////// // RECUPERATION DES ENFANTS // $datas = $this->_get_children_category($datas); ///////////////////////////////// // RECUPERATION DES FRERES // $datas = $this->_get_brothers_category($datas); ////////////////////////////// // GESTION DES ARTICLES // $datas = $this->_get_posts_category($datas); ////////////////////////////// // GESTION DES BOUTONS // $datas = $this->_get_right_buttons_category($datas); $this->set($datas); //On fait passer les données à la vue //On va tester si des données sont postées par un formulaire et que le plugin Formulaires n'est pas installé if (isset($this->request->data['type_formulaire']) && !isset($this->plugins['Formulaires'])) { $this->_send_mail_contact(); } } }
foreach ($required as $key => $errmsg) { $val = Arr::get($_POST, $key, ""); if ($val === "") { $failed[$key] = $errmsg; } } if (!isset($failed['mail']) and !is_valid_email($mail)) { $failed['mail'] = 'メールの形式に誤りがあるか、既に登録されています'; } /** メールの重複チェック. DB登録がある場合はコメントアウトして下さい. if (! isset($failed['mail'])) { $dbconn = Dbmanage::connect(); $dbtable = Dbmanage::$table; $stmt = $dbconn->prepare("SELECT id from {$dbtable} WHERE `mail` = :mail;"); $stmt->bindValue(':mail', Arr::get($_POST, 'mail'), PDO::PARAM_STR); try { $stmt->execute(); } catch (PDOException $e) { $failed['mail'] = 'メールの形式に誤りがあるか、既に登録されています'; } if ($stmt->fetchColumn() !== false) { $failed['mail'] = 'メールの形式に誤りがあるか、既に登録されています'; } } */ if (!empty($failed)) { Session::write('failed', $failed); return header('Location: index.php'); } return header('Location: send_mail.php');
/** * 認証処理 * @param Model * @param string $consumerKey * @param array $consumerSecret * @param string $callbackUri * @param Session $Session * @return void * @access public */ function authorize(&$Model, $consumerKey, $consumerSecret, $callbackUri, &$Session) { $this->callbackUri = $callbackUri; $this->consumerKey = $consumerKey; $this->consumerSecret = $consumerSecret; if ($this->createConsumer($Model)) { $requestToken = $this->getRequestToken($Model); if ($requestToken) { $Session->write('request_token', $requestToken); return $this->authorizeUri . '?oauth_token=' . $requestToken->key; } } return false; }
/** * Armazena a action requisitada quando a autorização falhou. * * @param string $action Endereço da action * @return void */ public function setAction($action) { Session::write("Auth.action", $action); }
/** * Function for saving the current game context into the session * @return void */ public function save(Game $game) { $data = $game->getContext(); $this->storage->write(Settings::APP_SESSION_NAME, $data); }
if (Validation::isIP($_SERVER['REMOTE_ADDR']) && !Validation::isLocalIP($_SERVER['REMOTE_ADDR'])) { define('IP', $_SERVER['REMOTE_ADDR']); } else { define('IP', '0.0.0.0'); } } } // Security : The session is wiped if the user-agent change if (Session::exists('HTTP_USER_AGENT')) { if (Session::read('HTTP_USER_AGENT') != $_SERVER['HTTP_USER_AGENT']) { Session::regenerate_id(); Session::wipe(); Session::write('HTTP_USER_AGENT', $_SERVER['HTTP_USER_AGENT']); } } else { Session::write('HTTP_USER_AGENT', $_SERVER['HTTP_USER_AGENT']); } // Security : The page is reloaded without session id in the URL if the session id is present in the URL if (strpos($_SERVER['REQUEST_URI'], Session::name()) && count($_POST) == 0) { Session::close(); setcookie(Session::name(), Session::id(), null, '/', '.' . $domaine); $page_address = preg_replace('#(?<=&|\\?)' . Session::name() . '=[^&]+(?:&|$)#', '', $_SERVER['REQUEST_URI']); $page_address = rtrim($page_address, '?&'); header('Location: http://' . $_SERVER['HTTP_HOST'] . $page_address); exit; } // Security : The $_POST variables are wiped if the referer domain is different from the current domain if (isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER'] != '' && !preg_match('#^https?://' . preg_quote($_SERVER['SERVER_NAME']) . '#', $_SERVER['HTTP_REFERER'])) { // On vide $_POST $_POST = array(); }
private function storeSRReferer() { $session = new Session(); $session->write('sr_referer', 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], TRUE); }
/** * Cette fonction permet le chargement d'un model * * Appel possible dans un contrôleur : * * $databaseConfigs = array( * 'host' => "localhost", * 'login' => "root", * 'password' => "", * 'database' => "koezion_madatabase", * 'prefix' => "", * 'socket' => "", * 'port' => "", * 'source' => "mysql" * ); * $externalSlider = $this->load_model('Slider', true, $databaseConfigs); * pr($externalSlider->find()); * * @param varchar $name Nom du model à charger * @param boolean $return Indique si il faut ou non retourner l'objet * @param array $databaseConfigs Configuration de connexion différentes de celles par défaut * @return Objet ou rien * @access public * @author koéZionCMS * @version 0.1 - 23/12/2011 by FI * @version 0.2 - 18/03/2014 by FI - Reprise du chargement des modèles des plugins * @version 0.3 - 03/06/2014 by FI - Rajout de la variable $databaseConfigs permettant la connexion à une autre BDD * @version 0.4 - 08/08/2014 by FI - Modification des données envoyées au constructeur, création de la variable $modelParams */ public function load_model($name, $return = false, $databaseConfigs = null) { //En premier lieu on test si le model n'est pas déjà instancié //et si il ne l'est pas on procède à son intenciation if (!isset($this->{$name})) { $file_path = ''; $file_name = Inflector::underscore($name) . '.php'; //Nom du fichier à charger $file_path_default = ROOT . DS . 'models' . DS . $file_name; //Chemin vers le fichier à charger //Pour déterminer le dossier du plugin nous devons transformer le nom du model à charger //Etape 1 : passage au pluriel //Etape 2 : transformation du camelCased en _ $pluginPluralizeName = Inflector::pluralize($name); $pluginUnderscoreName = Inflector::underscore($pluginPluralizeName); ////////////////////////////////////////////// // RECUPERATION DES CONNECTEURS PLUGINS // $pluginsConnectors = get_plugins_connectors(); if (isset($pluginsConnectors[$pluginUnderscoreName])) { $connectorModel = $pluginsConnectors[$pluginUnderscoreName]; $file_path_plugin = PLUGINS . DS . $connectorModel . DS . 'models' . DS . $file_name; //Chargement de l'éventuel fichier supplémentaire pour les models $pluginModelBoostrap = PLUGINS . DS . $connectorModel . DS . 'model.php'; if (file_exists($pluginModelBoostrap)) { require_once $pluginModelBoostrap; } } ////////////////////////////////////////////// if (isset($file_path_plugin) && file_exists($file_path_plugin)) { $file_path = $file_path_plugin; } else { if (file_exists($file_path_default)) { $file_path = $file_path_default; } } //Sinon on test si le model par défaut existe //On va tester l'existence de ce fichier if (!file_exists($file_path)) { Session::write('redirectMessage', "Impossible de charger le modèle " . $name . " dans le fichier controller"); $this->redirect('home/e404'); die; } require_once $file_path; //Inclusion du fichier $modelParams = null; if (isset($this->request)) { $modelParams['url'] = $this->request->fullUrl; $modelParams['controller_action'] = isset($this->request->controller) && isset($this->request->action) ? $this->request->controller . '/' . $this->request->action : ''; } if ($return) { return new $name($modelParams, $databaseConfigs); } else { $this->{$name} = new $name($modelParams, $databaseConfigs); } //Création d'un objet Model de type $name que l'on va instancier dans la classe } }
public function __beforeAction() { // User authentication $user_model = new User_Model(); User_Model::$auth_status = User_Model::AUTH_STATUS_NOT_LOGGED; // Authentication by post if (isset($_POST['username']) && isset($_POST['password'])) { $username = $_POST['username']; $password = $_POST['password']; try { if (!preg_match('#^[a-z0-9-]+$#', $username)) { throw new Exception('Invalid username'); } if ($user_model->authenticate($username, $password)) { User_Model::$auth_status = User_Model::AUTH_STATUS_LOGGED; // Write session and cookie to remember sign-in Cookie::write('login', Encryption::encode($username . ':' . $password), 60 * 24 * 3600); Session::write('username', $username); } else { throw new Exception('Bad username or password'); } } catch (Exception $e) { User_Model::$auth_status = User_Model::AUTH_STATUS_BAD_USERNAME_OR_PASSWORD; Cookie::delete('login'); Session::delete('username'); } } else { // Authentication by session if (($username = Session::read('username')) !== null) { try { $user_model->loadUser($username); User_Model::$auth_status = User_Model::AUTH_STATUS_LOGGED; } catch (Exception $e) { Session::delete('username'); Cookie::delete('login'); } // Authentication by cookies } else { if (($login = Cookie::read('login')) !== null) { try { if (isset($login) && ($login = Encryption::decode($login))) { $login = explode(':', $login); $username = $login[0]; if (!preg_match('#^[a-z0-9-]+$#', $username)) { throw new Exception('Invalid username'); } array_splice($login, 0, 1); $password = implode(':', $login); if ($user_model->authenticate($username, $password)) { User_Model::$auth_status = User_Model::AUTH_STATUS_LOGGED; // Write session to remember sign-in Session::write('username', $username); } else { throw new Exception('Bad username or password'); } } else { throw new Exception('Invalid user cookie'); } } catch (Exception $e) { Cookie::delete('login'); } } } } }
public static function handler($data = null) { Session::write(); }