//$exeo_auth_check:true ログイン済み、未ログインどちらでも表示可能
// false ログインが必要なページ(ログインしていない場合は、ログインページへ)
//ini_set('session.use_cookies', 1); // クッキーを使用する
//ini_set('session.use_only_cookies', 0); // セッションIDの保存はクッキーのみにしない
//ini_set('session.use_trans_sid', 1); // URL等にセッションIDを埋め込む
//ini_set('session.cookie_domain', '.excellent-party.com'); // クッキーを有効にするドメイン
//ini_set('session.cookie_lifetime', 0); // ブラウザを閉じるまでクッキー有効
//ini_set('session.cache_limiter', 'none'); // セッションを管理してブラウザでキャッシュ
//if (!ini_get("session.auot_start")) {
// session_start();
//}
//
//var_dump($_SESSION);
define("CONF_SESSION_IDOLTIME", 1);
$is_auth = false;
$user = array();
$s_id = '';
//---ログイン処理----------------------------------------------------------------------------|
if ($_POST['mode'] == 'login') {
$mail = addslashes($_POST['mail']);
$pass = addslashes($_POST['pass']);
if (!$mail) {
$err[] = "メールアドレスを記入して下さい";
}
if (!$pass) {
$err[] = "パスワードを記入して下さい";
}
if ($err) {
$error_count = count($err);
for ($i = 0; $i < $error_count; ++$i) {
$error_massage .= $err[$i]."
";
}
to_login($error_massage);
}
$sql = "SELECT * FROM exeo_user WHERE (mail_pc=? or mail_mobile=?) and password=? AND switch IS TRUE";
$params = array($mail, $mail, $pass);
$result = $db->query($sql, $params);
if ($db->isError($result)) {
to_login('予期せぬエラーが発生しました');
}
$count = $result->numRows();
if ($count > 0) {
$is_auth = true;
$user = $result->fetchRow();
$s_id = md5(uniqid(rand(), 1));
$sth = $db->prepare("UPDATE exeo_user SET session=?, last_login=NOW() WHERE seq=? AND switch IS TRUE");
$params = array($s_id, $user['seq']);
$db->execute($sth, $params);
if ($db->isError($result)) {
to_login('予期せぬエラーが発生しました');
}
} else {
to_login('ログインできません。メールアドレスとパスワードをご確認ください。');
}
}
//---ログインチェック--------------------------------------------------------------------------|
if ($_GET['id']) {
$s_id = $_GET['id'];
}
if ($_POST['id']) {
$s_id = $_POST['id'];
}
if (!$s_id) {
if (!$exeo_auth_check) {
to_login();
}
} else {
$sql = "SELECT * FROM exeo_user WHERE session=? AND last_login + interval'".CONF_SESSION_IDOLTIME." hour' > NOW() AND switch IS TRUE LIMIT 1";
$params = array($s_id);
$ref =& $db->getRow($sql, $params);
if ($db->isError($result)) {
to_login('予期せぬエラーが発生しました');
}
if (!$ref) {
to_login();
}
$is_auth = true;
$user = $ref;
$sth = $db->prepare("UPDATE exeo_user SET last_login=NOW() WHERE seq=? AND switch IS TRUE");
$params = array($user['seq']);
$db->execute($sth, $params);
if ($db->isError($result)) {
to_login('予期せぬエラーが発生しました');
}
}
function to_login($str = '', $mail = '', $pass = '') {
global $smarty;
$smarty->assign('err_message', $str);
$smarty->assign('script_name', $_SERVER['SCRIPT_NAME']);
$smarty->assign('mail', $mail);
$smarty->assign('pass', $pass);
$smarty->display('i/my/login_entry.tpl');
exit;
}
?>