コード例 #1
0
 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;
                 }
             }
         }
     }
 }
コード例 #2
0
 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;
 }
コード例 #3
0
ファイル: plugin.php プロジェクト: strifefrosst/koeZionCMS
 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);
 }
コード例 #4
0
ファイル: bc_upload.php プロジェクト: ryuring/basercms
 /**
  * ファイルを保存する
  * 
  * @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;
 }
コード例 #5
0
 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);
     }
 }
コード例 #6
0
ファイル: functions.php プロジェクト: ionutmilica/my-archive
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;
}
コード例 #7
0
ファイル: website.php プロジェクト: strifefrosst/koeZionCMS
 /**
  * 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);
 }
コード例 #8
0
ファイル: BcUploadBehavior.php プロジェクト: kenz/basercms
 /**
  * ファイルを保存する
  * 
  * @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;
 }
コード例 #9
0
ファイル: view.php プロジェクト: strifefrosst/koeZionCMS
 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;
     }
 }
コード例 #10
0
ファイル: send_mail.php プロジェクト: tak-msk/Recru_teaser
$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');
コード例 #11
0
ファイル: SessionDb.php プロジェクト: larryu/magento-b2b
 /**
  * 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;
 }
コード例 #12
0
ファイル: start.php プロジェクト: biggtfish/anchor-cms
 * @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();
コード例 #13
0
ファイル: SessionLibTest.php プロジェクト: Tapac/hotscot
 /**
  * Test writing something to the session
  */
 public function testSessionWrite()
 {
     Session::write($this->testSessionID, $this->testSessionData);
 }
コード例 #14
0
ファイル: login.php プロジェクト: ionutmilica/my-archive
    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']++;
コード例 #15
0
 /**
  * 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;
 }
コード例 #16
0
ファイル: upnpplayer.class.php プロジェクト: bl00m/ampache
 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);
 }
コード例 #17
0
ファイル: upnpplaylist.php プロジェクト: nioc/ampache
 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);
     }
 }
コード例 #18
0
<?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/
*/
コード例 #19
0
ファイル: baseapp.php プロジェクト: nowk/baseapp-framework
 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();
     }
 }
コード例 #20
0
ファイル: AdminControler.php プロジェクト: Nassgul/testoo
<?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é
コード例 #21
0
 /**
  * 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();
         }
     }
 }
コード例 #22
0
ファイル: validate.php プロジェクト: tak-msk/Recru_teaser
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');
コード例 #23
0
ファイル: twitter.php プロジェクト: nazo/phpcondo
 /**
  * 認証処理
  * @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;
 }
コード例 #24
0
 /**
  *  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);
 }
コード例 #25
0
 /**
  * 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);
 }
コード例 #26
0
ファイル: init.php プロジェクト: Godefroy/confeature
        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();
}
コード例 #27
0
 private function storeSRReferer()
 {
     $session = new Session();
     $session->write('sr_referer', 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], TRUE);
 }
コード例 #28
0
ファイル: object.php プロジェクト: strifefrosst/koeZionCMS
 /**
  * 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
     }
 }
コード例 #29
0
ファイル: Layout.php プロジェクト: hugonicolas/Site
 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');
                 }
             }
         }
     }
 }
コード例 #30
0
 public static function handler($data = null)
 {
     Session::write();
 }