mirror of
https://github.com/Daichimarukana/uwuzu.git
synced 2026-06-04 19:14:41 +00:00
Add files via upload
This commit is contained in:
+21
-7
@@ -9,6 +9,11 @@ function createUniqId(){
|
|||||||
return base_convert($hashCreateTime,10,36);
|
return base_convert($hashCreateTime,10,36);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function random($length = 32)
|
||||||
|
{
|
||||||
|
return substr(str_shuffle('1234567890abcdefghijklmnopqrstuvwxyz'), 0, $length);
|
||||||
|
}
|
||||||
|
|
||||||
require('db.php');
|
require('db.php');
|
||||||
|
|
||||||
$servernamefile = "server/servername.txt";
|
$servernamefile = "server/servername.txt";
|
||||||
@@ -45,11 +50,16 @@ try {
|
|||||||
// 接続エラーのときエラー内容を取得する
|
// 接続エラーのときエラー内容を取得する
|
||||||
$error_message[] = $e->getMessage();
|
$error_message[] = $e->getMessage();
|
||||||
}
|
}
|
||||||
// 管理者としてログインしているか確認
|
if(isset($_SESSION['admin_login']) && $_SESSION['admin_login'] === true) {
|
||||||
if( empty($_SESSION['admin_login']) || $_SESSION['admin_login'] !== true ) {
|
|
||||||
// ログインページへリダイレクト
|
header("Location: home/index.php");
|
||||||
header("Location: ./login.php");
|
|
||||||
exit;
|
exit;
|
||||||
|
|
||||||
|
} elseif (isset($_COOKIE['admin_login']) && $_COOKIE['admin_login'] == true) {
|
||||||
|
|
||||||
|
header("Location: home/index.php");
|
||||||
|
exit;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
require_once 'authcode/GoogleAuthenticator.php';
|
require_once 'authcode/GoogleAuthenticator.php';
|
||||||
@@ -73,16 +83,19 @@ if( !empty($_POST['btn_submit']) ) {
|
|||||||
$checkResult = $chkauthcode->verifyCode($secret, $userauthcode, $discrepancy);
|
$checkResult = $chkauthcode->verifyCode($secret, $userauthcode, $discrepancy);
|
||||||
if ($checkResult) {
|
if ($checkResult) {
|
||||||
if( empty($error_message) ) {
|
if( empty($error_message) ) {
|
||||||
|
$backupcode = random();
|
||||||
$secret = $_SESSION['secretcode'];
|
$secret = $_SESSION['secretcode'];
|
||||||
|
|
||||||
// トランザクション開始
|
// トランザクション開始
|
||||||
$pdo->beginTransaction();
|
$pdo->beginTransaction();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
||||||
// SQL作成
|
// SQL作成
|
||||||
$stmt = $pdo->prepare("UPDATE account SET authcode = :authcode WHERE userid = :userid");
|
$stmt = $pdo->prepare("UPDATE account SET authcode = :authcode,backupcode = :backupcode WHERE userid = :userid");
|
||||||
|
|
||||||
$stmt->bindValue(':authcode', $secret, PDO::PARAM_STR);
|
$stmt->bindValue(':authcode', $secret, PDO::PARAM_STR);
|
||||||
|
$stmt->bindValue(':backupcode', $backupcode, PDO::PARAM_STR);
|
||||||
|
|
||||||
// ユーザーIDのバインド(WHERE句に必要)
|
// ユーザーIDのバインド(WHERE句に必要)
|
||||||
$stmt->bindValue(':userid', $userid, PDO::PARAM_STR);
|
$stmt->bindValue(':userid', $userid, PDO::PARAM_STR);
|
||||||
@@ -111,6 +124,7 @@ if( !empty($_POST['btn_submit']) ) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
$userid = "";
|
$userid = "";
|
||||||
|
$_SESSION['backupcode'] = $backupcode;
|
||||||
// リダイレクト先のURLへ転送する
|
// リダイレクト先のURLへ転送する
|
||||||
$url = 'success.php';
|
$url = 'success.php';
|
||||||
header('Location: ' . $url, true, 303);
|
header('Location: ' . $url, true, 303);
|
||||||
@@ -174,10 +188,10 @@ $pdo = null;
|
|||||||
|
|
||||||
$name = $userid;
|
$name = $userid;
|
||||||
|
|
||||||
$qrCodeUrl = $authcode->getQRCodeGoogleUrl($name, $secret, $title);
|
$qrCodeUrl = $authcode->getQRCodeUrl($name, $secret, $title);
|
||||||
?>
|
?>
|
||||||
<div class="authzone">
|
<div class="authzone">
|
||||||
<img src="<?php echo $qrCodeUrl;?>">
|
<img src="qr/php/qr_img.php?d=<?php echo $qrCodeUrl?>">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<form class="formarea" enctype="multipart/form-data" method="post">
|
<form class="formarea" enctype="multipart/form-data" method="post">
|
||||||
|
|||||||
+13
-1
@@ -32,6 +32,7 @@ $userid = $_SESSION['userid'];
|
|||||||
|
|
||||||
|
|
||||||
// データベースに接続
|
// データベースに接続
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
||||||
$option = array(
|
$option = array(
|
||||||
@@ -45,6 +46,17 @@ try {
|
|||||||
// 接続エラーのときエラー内容を取得する
|
// 接続エラーのときエラー内容を取得する
|
||||||
$error_message[] = $e->getMessage();
|
$error_message[] = $e->getMessage();
|
||||||
}
|
}
|
||||||
|
if(isset($_SESSION['admin_login']) && $_SESSION['admin_login'] === true) {
|
||||||
|
|
||||||
|
header("Location: home/index.php");
|
||||||
|
exit;
|
||||||
|
|
||||||
|
} elseif (isset($_COOKIE['admin_login']) && $_COOKIE['admin_login'] == true) {
|
||||||
|
|
||||||
|
header("Location: home/index.php");
|
||||||
|
exit;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
if( !empty($_POST['btn_submit']) ) {
|
if( !empty($_POST['btn_submit']) ) {
|
||||||
$_SESSION['userid'] = $userid;
|
$_SESSION['userid'] = $userid;
|
||||||
@@ -95,7 +107,7 @@ $pdo = null;
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
|
|
||||||
<div class="leftbox">
|
<div class="leftbox2">
|
||||||
<div class="logo">
|
<div class="logo">
|
||||||
<img src="img/uwuzulogo.svg">
|
<img src="img/uwuzulogo.svg">
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
+96
-52
@@ -20,12 +20,6 @@ $row["authcode"] = "";
|
|||||||
$ruserid = "";
|
$ruserid = "";
|
||||||
$rpassword = "";
|
$rpassword = "";
|
||||||
|
|
||||||
$userid = "";
|
|
||||||
$_SESSION["userid"]="";
|
|
||||||
|
|
||||||
$password = null;
|
|
||||||
$_SESSION["password"]="";
|
|
||||||
|
|
||||||
|
|
||||||
session_start();
|
session_start();
|
||||||
|
|
||||||
@@ -47,60 +41,18 @@ try {
|
|||||||
|
|
||||||
if(isset($_SESSION['admin_login']) && $_SESSION['admin_login'] === true) {
|
if(isset($_SESSION['admin_login']) && $_SESSION['admin_login'] === true) {
|
||||||
|
|
||||||
$passQuery = $pdo->prepare("SELECT username,userid,loginid,admin FROM account WHERE userid = :userid");
|
header("Location: home/index.php");
|
||||||
$passQuery->bindValue(':userid', $_SESSION['userid']);
|
|
||||||
$passQuery->execute();
|
|
||||||
$res = $passQuery->fetch();
|
|
||||||
if(empty($res["userid"])){
|
|
||||||
header("Location: login.php");
|
|
||||||
exit;
|
exit;
|
||||||
}elseif($_SESSION['loginid'] === $res["loginid"]){
|
|
||||||
// セッションに値をセット
|
|
||||||
$userid = $_SESSION['userid']; // セッションに格納されている値をそのままセット
|
|
||||||
$username = $_SESSION['username']; // セッションに格納されている値をそのままセット
|
|
||||||
$_SESSION['admin_login'] = true;
|
|
||||||
$_SESSION['userid'] = $userid;
|
|
||||||
$_SESSION['username'] = $username;
|
|
||||||
$_SESSION['loginid'] = $res["loginid"];
|
|
||||||
setcookie('userid', $userid, time() + 60 * 60 * 24 * 14);
|
|
||||||
setcookie('username', $username, time() + 60 * 60 * 24 * 14);
|
|
||||||
setcookie('loginid', $res["loginid"], time() + 60 * 60 * 24 * 14);
|
|
||||||
setcookie('admin_login', true, time() + 60 * 60 * 24 * 14);
|
|
||||||
header("Location: home/");
|
|
||||||
exit;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
} elseif (isset($_COOKIE['admin_login']) && $_COOKIE['admin_login'] == true) {
|
} elseif (isset($_COOKIE['admin_login']) && $_COOKIE['admin_login'] == true) {
|
||||||
|
|
||||||
$passQuery = $pdo->prepare("SELECT username,userid,loginid,admin FROM account WHERE userid = :userid");
|
header("Location: home/index.php");
|
||||||
$passQuery->bindValue(':userid', $_COOKIE['userid']);
|
|
||||||
$passQuery->execute();
|
|
||||||
$res = $passQuery->fetch();
|
|
||||||
if(empty($res["userid"])){
|
|
||||||
header("Location: login.php");
|
|
||||||
exit;
|
exit;
|
||||||
}elseif($_COOKIE['loginid'] === $res["loginid"]){
|
|
||||||
// セッションに値をセット
|
|
||||||
$userid = $_COOKIE['userid']; // クッキーから取得した値をセット
|
|
||||||
$username = $_COOKIE['username']; // クッキーから取得した値をセット
|
|
||||||
$_SESSION['admin_login'] = true;
|
|
||||||
$_SESSION['userid'] = $userid;
|
|
||||||
$_SESSION['username'] = $username;
|
|
||||||
$_SESSION['loginid'] = $res["loginid"];
|
|
||||||
setcookie('userid', $userid, time() + 60 * 60 * 24 * 14);
|
|
||||||
setcookie('username', $username, time() + 60 * 60 * 24 * 14);
|
|
||||||
setcookie('loginid', $res["loginid"], time() + 60 * 60 * 24 * 14);
|
|
||||||
setcookie('admin_login', true, time() + 60 * 60 * 24 * 14);
|
|
||||||
header("Location: home/");
|
|
||||||
exit;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if( !empty($_POST['btn_submit']) ) {
|
if( !empty($_POST['btn_submit']) ) {
|
||||||
|
$userbackupcode = $_POST['userbackupcode'];
|
||||||
|
|
||||||
$options = array(
|
$options = array(
|
||||||
// SQL実行失敗時に例外をスルー
|
// SQL実行失敗時に例外をスルー
|
||||||
@@ -116,11 +68,65 @@ if( !empty($_POST['btn_submit']) ) {
|
|||||||
|
|
||||||
require_once 'authcode/GoogleAuthenticator.php';
|
require_once 'authcode/GoogleAuthenticator.php';
|
||||||
|
|
||||||
$result = $dbh->prepare("SELECT authcode,loginid,username FROM account WHERE userid = :userid");
|
$result = $dbh->prepare("SELECT authcode,loginid,username,backupcode FROM account WHERE userid = :userid");
|
||||||
|
|
||||||
$result->bindValue(':userid', $userid);
|
$result->bindValue(':userid', $userid);
|
||||||
// SQL実行
|
// SQL実行
|
||||||
$result->execute();
|
$result->execute();
|
||||||
|
|
||||||
|
if(!(empty($userbackupcode))){
|
||||||
|
$row = $result->fetch();
|
||||||
|
if($row["backupcode"] === $userbackupcode){
|
||||||
|
$pdo->beginTransaction();
|
||||||
|
|
||||||
|
try {
|
||||||
|
$touserid = $userid;
|
||||||
|
$datetime = date("Y-m-d H:i:s");
|
||||||
|
$msg = "バックアップコードを使用しログインされました!\nバックアップコード変更のために二段階認証を再設定することを強くおすすめします。\nまた、もしバックアップコードを利用してログインした覚えがない場合は「その他」より全てのセッションを終了し、設定画面よりパスワードを変更し、二段階認証を再設定してください!";
|
||||||
|
$title = '🔴バックアップコード使用のお知らせ🔴';
|
||||||
|
$url = '/settings';
|
||||||
|
$userchk = 'none';
|
||||||
|
// 通知用SQL作成
|
||||||
|
$stmt = $pdo->prepare("INSERT INTO notification (touserid, msg, url, datetime, userchk, title) VALUES (:touserid, :msg, :url, :datetime, :userchk, :title)");
|
||||||
|
|
||||||
|
$stmt->bindParam(':touserid', $touserid, PDO::PARAM_STR);
|
||||||
|
$stmt->bindParam(':msg', $msg, PDO::PARAM_STR);
|
||||||
|
$stmt->bindParam(':url', $url, PDO::PARAM_STR);
|
||||||
|
$stmt->bindParam(':userchk', $userchk, PDO::PARAM_STR);
|
||||||
|
$stmt->bindParam(':title', $title, PDO::PARAM_STR);
|
||||||
|
|
||||||
|
$stmt->bindParam(':datetime', $datetime, PDO::PARAM_STR);
|
||||||
|
|
||||||
|
// SQLクエリの実行
|
||||||
|
$res = $stmt->execute();
|
||||||
|
|
||||||
|
// コミット
|
||||||
|
$res = $pdo->commit();
|
||||||
|
|
||||||
|
} catch(Exception $e) {
|
||||||
|
|
||||||
|
// エラーが発生した時はロールバック
|
||||||
|
$pdo->rollBack();
|
||||||
|
}
|
||||||
|
|
||||||
|
$_SESSION['admin_login'] = true;
|
||||||
|
$_SESSION['userid'] = $userid;
|
||||||
|
$_SESSION['loginid'] = $row["loginid"];
|
||||||
|
|
||||||
|
$_SESSION['username'] = $row["username"];
|
||||||
|
$_SESSION['password'] = "";
|
||||||
|
|
||||||
|
// リダイレクト先のURLへ転送する
|
||||||
|
$url = '/home';
|
||||||
|
header('Location: ' . $url, true, 303);
|
||||||
|
|
||||||
|
// すべての出力を終了
|
||||||
|
exit;
|
||||||
|
}else{
|
||||||
|
$error_message[] = "そのバックアップコードは使用できません。";
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
|
||||||
if($result->rowCount() > 0) {
|
if($result->rowCount() > 0) {
|
||||||
$row = $result->fetch();
|
$row = $result->fetch();
|
||||||
|
|
||||||
@@ -138,6 +144,38 @@ if( !empty($_POST['btn_submit']) ) {
|
|||||||
|
|
||||||
$checkResult = $chkauthcode->verifyCode($tousercode, $userauthcode, $discrepancy);
|
$checkResult = $chkauthcode->verifyCode($tousercode, $userauthcode, $discrepancy);
|
||||||
if ($checkResult) {
|
if ($checkResult) {
|
||||||
|
|
||||||
|
$pdo->beginTransaction();
|
||||||
|
try {
|
||||||
|
$touserid = $userid;
|
||||||
|
$datetime = date("Y-m-d H:i:s");
|
||||||
|
$msg = "アカウントにログインがありました。\nもしログインした覚えがない場合は「その他」よりセッションを終了し、パスワードを変更し、二段階認証を再設定してください。";
|
||||||
|
$title = '🚪ログイン通知🚪';
|
||||||
|
$url = '/settings';
|
||||||
|
$userchk = 'none';
|
||||||
|
// 通知用SQL作成
|
||||||
|
$stmt = $pdo->prepare("INSERT INTO notification (touserid, msg, url, datetime, userchk, title) VALUES (:touserid, :msg, :url, :datetime, :userchk, :title)");
|
||||||
|
|
||||||
|
$stmt->bindParam(':touserid', $touserid, PDO::PARAM_STR);
|
||||||
|
$stmt->bindParam(':msg', $msg, PDO::PARAM_STR);
|
||||||
|
$stmt->bindParam(':url', $url, PDO::PARAM_STR);
|
||||||
|
$stmt->bindParam(':userchk', $userchk, PDO::PARAM_STR);
|
||||||
|
$stmt->bindParam(':title', $title, PDO::PARAM_STR);
|
||||||
|
|
||||||
|
$stmt->bindParam(':datetime', $datetime, PDO::PARAM_STR);
|
||||||
|
|
||||||
|
// SQLクエリの実行
|
||||||
|
$res = $stmt->execute();
|
||||||
|
|
||||||
|
// コミット
|
||||||
|
$res = $pdo->commit();
|
||||||
|
|
||||||
|
} catch(Exception $e) {
|
||||||
|
|
||||||
|
// エラーが発生した時はロールバック
|
||||||
|
$pdo->rollBack();
|
||||||
|
}
|
||||||
|
|
||||||
$_SESSION['admin_login'] = true;
|
$_SESSION['admin_login'] = true;
|
||||||
$_SESSION['userid'] = $userid;
|
$_SESSION['userid'] = $userid;
|
||||||
$_SESSION['loginid'] = $row["loginid"];
|
$_SESSION['loginid'] = $row["loginid"];
|
||||||
@@ -159,6 +197,7 @@ if( !empty($_POST['btn_submit']) ) {
|
|||||||
}else{
|
}else{
|
||||||
$error_message[] = 'データの取得が出来ませんでした。再度お試しください。';
|
$error_message[] = 'データの取得が出来ませんでした。再度お試しください。';
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -203,6 +242,11 @@ $pdo = null;
|
|||||||
<p>二段階認証コード</p>
|
<p>二段階認証コード</p>
|
||||||
<div class="p2">6桁のコードを入力してください。</div>
|
<div class="p2">6桁のコードを入力してください。</div>
|
||||||
<input id="profile" type="number" placeholder="123456" class="inbox" name="usercode" value="">
|
<input id="profile" type="number" placeholder="123456" class="inbox" name="usercode" value="">
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<p>バックアップコード</p>
|
||||||
|
<div class="p2">もし二段階認証が出来ない場合は8桁英数字のバックアップコードを入力してください。</div>
|
||||||
|
<input id="profile" type="text" placeholder="通常は入力しなくて大丈夫です。" class="inbox" name="userbackupcode" value="">
|
||||||
</div>
|
</div>
|
||||||
<input type="submit" class = "irobutton" name="btn_submit" value="次へ">
|
<input type="submit" class = "irobutton" name="btn_submit" value="次へ">
|
||||||
</form>
|
</form>
|
||||||
|
|||||||
@@ -21,22 +21,8 @@ $row["password"] = array();
|
|||||||
$ruserid = array();
|
$ruserid = array();
|
||||||
$rpassword = array();
|
$rpassword = array();
|
||||||
|
|
||||||
$userid = null;
|
|
||||||
$_SESSION["userid"]="";
|
|
||||||
|
|
||||||
$password = null;
|
|
||||||
$_SESSION["password"]="";
|
|
||||||
|
|
||||||
|
|
||||||
session_start();
|
session_start();
|
||||||
|
|
||||||
// 管理者としてログインしているか確認
|
|
||||||
if( empty($_SESSION['admin_login']) || $_SESSION['admin_login'] !== true ) {
|
|
||||||
// ログインページへリダイレクト
|
|
||||||
header("Location: ./login.php");
|
|
||||||
exit;
|
|
||||||
}
|
|
||||||
|
|
||||||
// データベースに接続
|
// データベースに接続
|
||||||
try {
|
try {
|
||||||
|
|
||||||
@@ -108,6 +94,37 @@ try {
|
|||||||
|
|
||||||
if( !empty($_POST['btn_submit']) ) {
|
if( !empty($_POST['btn_submit']) ) {
|
||||||
|
|
||||||
|
$pdo->beginTransaction();
|
||||||
|
try {
|
||||||
|
$touserid = $userid;
|
||||||
|
$datetime = date("Y-m-d H:i:s");
|
||||||
|
$msg = "アカウントにログインがありました。\nもしログインした覚えがない場合は「その他」よりセッションを終了し、パスワードを変更してください。";
|
||||||
|
$title = '🚪ログイン通知🚪';
|
||||||
|
$url = '/settings';
|
||||||
|
$userchk = 'none';
|
||||||
|
// 通知用SQL作成
|
||||||
|
$stmt = $pdo->prepare("INSERT INTO notification (touserid, msg, url, datetime, userchk, title) VALUES (:touserid, :msg, :url, :datetime, :userchk, :title)");
|
||||||
|
|
||||||
|
$stmt->bindParam(':touserid', $touserid, PDO::PARAM_STR);
|
||||||
|
$stmt->bindParam(':msg', $msg, PDO::PARAM_STR);
|
||||||
|
$stmt->bindParam(':url', $url, PDO::PARAM_STR);
|
||||||
|
$stmt->bindParam(':userchk', $userchk, PDO::PARAM_STR);
|
||||||
|
$stmt->bindParam(':title', $title, PDO::PARAM_STR);
|
||||||
|
|
||||||
|
$stmt->bindParam(':datetime', $datetime, PDO::PARAM_STR);
|
||||||
|
|
||||||
|
// SQLクエリの実行
|
||||||
|
$res = $stmt->execute();
|
||||||
|
|
||||||
|
// コミット
|
||||||
|
$res = $pdo->commit();
|
||||||
|
|
||||||
|
} catch(Exception $e) {
|
||||||
|
|
||||||
|
// エラーが発生した時はロールバック
|
||||||
|
$pdo->rollBack();
|
||||||
|
}
|
||||||
|
|
||||||
$_SESSION['admin_login'] = true;
|
$_SESSION['admin_login'] = true;
|
||||||
$_SESSION['userid'] = $userid;
|
$_SESSION['userid'] = $userid;
|
||||||
$_SESSION['loginid'] = $userData["loginid"];
|
$_SESSION['loginid'] = $userData["loginid"];
|
||||||
|
|||||||
@@ -4,76 +4,18 @@
|
|||||||
require('db.php');
|
require('db.php');
|
||||||
|
|
||||||
session_start();
|
session_start();
|
||||||
|
|
||||||
try {
|
|
||||||
|
|
||||||
$option = array(
|
|
||||||
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
|
||||||
PDO::MYSQL_ATTR_MULTI_STATEMENTS => false
|
|
||||||
);
|
|
||||||
$pdo = new PDO('mysql:charset=utf8mb4;dbname='.DB_NAME.';host='.DB_HOST , DB_USER, DB_PASS, $option);
|
|
||||||
|
|
||||||
} catch(PDOException $e) {
|
|
||||||
|
|
||||||
// 接続エラーのときエラー内容を取得する
|
|
||||||
$error_message[] = $e->getMessage();
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isset($_SESSION['admin_login']) && $_SESSION['admin_login'] === true) {
|
if(isset($_SESSION['admin_login']) && $_SESSION['admin_login'] === true) {
|
||||||
|
|
||||||
$passQuery = $pdo->prepare("SELECT username,userid,loginid,admin FROM account WHERE userid = :userid");
|
header("Location: home/index.php");
|
||||||
$passQuery->bindValue(':userid', $_SESSION['userid']);
|
|
||||||
$passQuery->execute();
|
|
||||||
$res = $passQuery->fetch();
|
|
||||||
if(empty($res["userid"])){
|
|
||||||
header("Location: login.php");
|
|
||||||
exit;
|
exit;
|
||||||
}elseif($_SESSION['loginid'] === $res["loginid"]){
|
|
||||||
// セッションに値をセット
|
|
||||||
$userid = $_SESSION['userid']; // セッションに格納されている値をそのままセット
|
|
||||||
$username = $_SESSION['username']; // セッションに格納されている値をそのままセット
|
|
||||||
$_SESSION['admin_login'] = true;
|
|
||||||
$_SESSION['userid'] = $userid;
|
|
||||||
$_SESSION['username'] = $username;
|
|
||||||
$_SESSION['loginid'] = $res["loginid"];
|
|
||||||
setcookie('userid', $userid, time() + 60 * 60 * 24 * 14);
|
|
||||||
setcookie('username', $username, time() + 60 * 60 * 24 * 14);
|
|
||||||
setcookie('loginid', $res["loginid"], time() + 60 * 60 * 24 * 14);
|
|
||||||
setcookie('admin_login', true, time() + 60 * 60 * 24 * 14);
|
|
||||||
header("Location: home/");
|
|
||||||
exit;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
} elseif (isset($_COOKIE['admin_login']) && $_COOKIE['admin_login'] == true) {
|
} elseif (isset($_COOKIE['admin_login']) && $_COOKIE['admin_login'] == true) {
|
||||||
|
|
||||||
$passQuery = $pdo->prepare("SELECT username,userid,loginid,admin FROM account WHERE userid = :userid");
|
header("Location: home/index.php");
|
||||||
$passQuery->bindValue(':userid', $_COOKIE['userid']);
|
|
||||||
$passQuery->execute();
|
|
||||||
$res = $passQuery->fetch();
|
|
||||||
if(empty($res["userid"])){
|
|
||||||
header("Location: login.php");
|
|
||||||
exit;
|
exit;
|
||||||
}elseif($_COOKIE['loginid'] === $res["loginid"]){
|
|
||||||
// セッションに値をセット
|
|
||||||
$userid = $_COOKIE['userid']; // クッキーから取得した値をセット
|
|
||||||
$username = $_COOKIE['username']; // クッキーから取得した値をセット
|
|
||||||
$_SESSION['admin_login'] = true;
|
|
||||||
$_SESSION['userid'] = $userid;
|
|
||||||
$_SESSION['username'] = $username;
|
|
||||||
$_SESSION['loginid'] = $res["loginid"];
|
|
||||||
setcookie('userid', $userid, time() + 60 * 60 * 24 * 14);
|
|
||||||
setcookie('username', $username, time() + 60 * 60 * 24 * 14);
|
|
||||||
setcookie('loginid', $res["loginid"], time() + 60 * 60 * 24 * 14);
|
|
||||||
setcookie('admin_login', true, time() + 60 * 60 * 24 * 14);
|
|
||||||
header("Location: home/");
|
|
||||||
exit;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$servernamefile = "server/servername.txt";
|
$servernamefile = "server/servername.txt";
|
||||||
|
|
||||||
//------------------------
|
//------------------------
|
||||||
|
|||||||
@@ -42,58 +42,15 @@ try {
|
|||||||
// 接続エラーのときエラー内容を取得する
|
// 接続エラーのときエラー内容を取得する
|
||||||
$error_message[] = $e->getMessage();
|
$error_message[] = $e->getMessage();
|
||||||
}
|
}
|
||||||
|
|
||||||
if(isset($_SESSION['admin_login']) && $_SESSION['admin_login'] === true) {
|
if(isset($_SESSION['admin_login']) && $_SESSION['admin_login'] === true) {
|
||||||
|
|
||||||
$passQuery = $pdo->prepare("SELECT username,userid,loginid,admin FROM account WHERE userid = :userid");
|
header("Location: home/index.php");
|
||||||
$passQuery->bindValue(':userid', $_SESSION['userid']);
|
|
||||||
$passQuery->execute();
|
|
||||||
$res = $passQuery->fetch();
|
|
||||||
if(empty($res["userid"])){
|
|
||||||
header("Location: login.php");
|
|
||||||
exit;
|
exit;
|
||||||
}elseif($_SESSION['loginid'] === $res["loginid"]){
|
|
||||||
// セッションに値をセット
|
|
||||||
$userid = $_SESSION['userid']; // セッションに格納されている値をそのままセット
|
|
||||||
$username = $_SESSION['username']; // セッションに格納されている値をそのままセット
|
|
||||||
$_SESSION['admin_login'] = true;
|
|
||||||
$_SESSION['userid'] = $userid;
|
|
||||||
$_SESSION['username'] = $username;
|
|
||||||
$_SESSION['loginid'] = $res["loginid"];
|
|
||||||
setcookie('userid', $userid, time() + 60 * 60 * 24 * 14);
|
|
||||||
setcookie('username', $username, time() + 60 * 60 * 24 * 14);
|
|
||||||
setcookie('loginid', $res["loginid"], time() + 60 * 60 * 24 * 14);
|
|
||||||
setcookie('admin_login', true, time() + 60 * 60 * 24 * 14);
|
|
||||||
header("Location: home/");
|
|
||||||
exit;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
} elseif (isset($_COOKIE['admin_login']) && $_COOKIE['admin_login'] == true) {
|
} elseif (isset($_COOKIE['admin_login']) && $_COOKIE['admin_login'] == true) {
|
||||||
|
|
||||||
$passQuery = $pdo->prepare("SELECT username,userid,loginid,admin FROM account WHERE userid = :userid");
|
header("Location: home/index.php");
|
||||||
$passQuery->bindValue(':userid', $_COOKIE['userid']);
|
|
||||||
$passQuery->execute();
|
|
||||||
$res = $passQuery->fetch();
|
|
||||||
if(empty($res["userid"])){
|
|
||||||
header("Location: login.php");
|
|
||||||
exit;
|
exit;
|
||||||
}elseif($_COOKIE['loginid'] === $res["loginid"]){
|
|
||||||
// セッションに値をセット
|
|
||||||
$userid = $_COOKIE['userid']; // クッキーから取得した値をセット
|
|
||||||
$username = $_COOKIE['username']; // クッキーから取得した値をセット
|
|
||||||
$_SESSION['admin_login'] = true;
|
|
||||||
$_SESSION['userid'] = $userid;
|
|
||||||
$_SESSION['username'] = $username;
|
|
||||||
$_SESSION['loginid'] = $res["loginid"];
|
|
||||||
setcookie('userid', $userid, time() + 60 * 60 * 24 * 14);
|
|
||||||
setcookie('username', $username, time() + 60 * 60 * 24 * 14);
|
|
||||||
setcookie('loginid', $res["loginid"], time() + 60 * 60 * 24 * 14);
|
|
||||||
setcookie('admin_login', true, time() + 60 * 60 * 24 * 14);
|
|
||||||
header("Location: home/");
|
|
||||||
exit;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -229,7 +186,7 @@ $pdo = null;
|
|||||||
<!--アカウント関連-->
|
<!--アカウント関連-->
|
||||||
<div>
|
<div>
|
||||||
<label for="password">パスワード</label>
|
<label for="password">パスワード</label>
|
||||||
<input onInput="checkForm(this)" id="password" class="inbox" type="password" name="password" value="<?php if( !empty($_SESSION['password']) ){ echo htmlentities( $_SESSION['password'], ENT_QUOTES, 'UTF-8'); } ?>">
|
<input onInput="checkForm(this)" id="password" class="inbox" type="password" name="password" maxlength="32" value="<?php if( !empty($_SESSION['password']) ){ echo htmlentities( $_SESSION['password'], ENT_QUOTES, 'UTF-8'); } ?>">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<input type="submit" name="btn_submit" class="irobutton" value="ログイン">
|
<input type="submit" name="btn_submit" class="irobutton" value="ログイン">
|
||||||
|
|||||||
@@ -27,50 +27,6 @@ $stmt = null;
|
|||||||
$res = null;
|
$res = null;
|
||||||
$option = null;
|
$option = null;
|
||||||
|
|
||||||
if(isset($_COOKIE["username"])){
|
|
||||||
$_SESSION["username"]=$_COOKIE["username"];
|
|
||||||
}else{
|
|
||||||
$_SESSION["username"]="";
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isset($_COOKIE["userid"])){
|
|
||||||
$_SESSION["userid"]=$_COOKIE["userid"];
|
|
||||||
}else{
|
|
||||||
$_SESSION["userid"]="";
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isset($_COOKIE["password"])){
|
|
||||||
$_SESSION["password"]=$_COOKIE["password"];
|
|
||||||
}else{
|
|
||||||
$_SESSION["password"]="";
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isset($_COOKIE["mailadds"])){
|
|
||||||
$_SESSION["mailadds"]=$_COOKIE["mailadds"];
|
|
||||||
}else{
|
|
||||||
$_SESSION["mailadds"]="";
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isset($_COOKIE["profile"])){
|
|
||||||
$_SESSION["profile"]=$_COOKIE["profile"];
|
|
||||||
}else{
|
|
||||||
$_SESSION["profile"]="";
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//$username = array();
|
|
||||||
//$userid = array();
|
|
||||||
|
|
||||||
//$realname = array();
|
|
||||||
//$yominame = array();
|
|
||||||
|
|
||||||
//$password = array();
|
|
||||||
//$mailadds = array();
|
|
||||||
|
|
||||||
//$profile = array();
|
|
||||||
|
|
||||||
|
|
||||||
// データベースに接続
|
|
||||||
try {
|
try {
|
||||||
|
|
||||||
$option = array(
|
$option = array(
|
||||||
@@ -85,6 +41,61 @@ try {
|
|||||||
$error_message[] = $e->getMessage();
|
$error_message[] = $e->getMessage();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if(isset($_SESSION['admin_login']) && $_SESSION['admin_login'] === true) {
|
||||||
|
|
||||||
|
$passQuery = $pdo->prepare("SELECT username,userid,loginid,admin FROM account WHERE userid = :userid");
|
||||||
|
$passQuery->bindValue(':userid', $_SESSION['userid']);
|
||||||
|
$passQuery->execute();
|
||||||
|
$res = $passQuery->fetch();
|
||||||
|
if(empty($res["userid"])){
|
||||||
|
header("Location: login.php");
|
||||||
|
exit;
|
||||||
|
}elseif($_SESSION['loginid'] === $res["loginid"]){
|
||||||
|
// セッションに値をセット
|
||||||
|
$userid = $_SESSION['userid']; // セッションに格納されている値をそのままセット
|
||||||
|
$username = $_SESSION['username']; // セッションに格納されている値をそのままセット
|
||||||
|
$_SESSION['admin_login'] = true;
|
||||||
|
$_SESSION['userid'] = $userid;
|
||||||
|
$_SESSION['username'] = $username;
|
||||||
|
$_SESSION['loginid'] = $res["loginid"];
|
||||||
|
setcookie('userid', $userid, time() + 60 * 60 * 24 * 14);
|
||||||
|
setcookie('username', $username, time() + 60 * 60 * 24 * 14);
|
||||||
|
setcookie('loginid', $res["loginid"], time() + 60 * 60 * 24 * 14);
|
||||||
|
setcookie('admin_login', true, time() + 60 * 60 * 24 * 14);
|
||||||
|
header("Location: home/index.php");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
} elseif (isset($_COOKIE['admin_login']) && $_COOKIE['admin_login'] == true) {
|
||||||
|
|
||||||
|
$passQuery = $pdo->prepare("SELECT username,userid,loginid,admin FROM account WHERE userid = :userid");
|
||||||
|
$passQuery->bindValue(':userid', $_COOKIE['userid']);
|
||||||
|
$passQuery->execute();
|
||||||
|
$res = $passQuery->fetch();
|
||||||
|
if(empty($res["userid"])){
|
||||||
|
header("Location: ../login.php");
|
||||||
|
exit;
|
||||||
|
}elseif($_COOKIE['loginid'] === $res["loginid"]){
|
||||||
|
// セッションに値をセット
|
||||||
|
$userid = $_COOKIE['userid']; // クッキーから取得した値をセット
|
||||||
|
$username = $_COOKIE['username']; // クッキーから取得した値をセット
|
||||||
|
$_SESSION['admin_login'] = true;
|
||||||
|
$_SESSION['userid'] = $userid;
|
||||||
|
$_SESSION['username'] = $username;
|
||||||
|
$_SESSION['loginid'] = $res["loginid"];
|
||||||
|
setcookie('userid', $userid, time() + 60 * 60 * 24 * 14);
|
||||||
|
setcookie('username', $username, time() + 60 * 60 * 24 * 14);
|
||||||
|
setcookie('loginid', $res["loginid"], time() + 60 * 60 * 24 * 14);
|
||||||
|
setcookie('admin_login', true, time() + 60 * 60 * 24 * 14);
|
||||||
|
header("Location: home/index.php");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
if( !empty($_POST['btn_submit']) ) {
|
if( !empty($_POST['btn_submit']) ) {
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+10
@@ -1,5 +1,10 @@
|
|||||||
<?php
|
<?php
|
||||||
$servernamefile = "server/servername.txt";
|
$servernamefile = "server/servername.txt";
|
||||||
|
if(!(empty($_SESSION['backupcode']))){
|
||||||
|
$backupcode = $_SESSION['backupcode'];
|
||||||
|
}else{
|
||||||
|
$backupcode = null;
|
||||||
|
}
|
||||||
?>
|
?>
|
||||||
|
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
@@ -29,6 +34,11 @@ $servernamefile = "server/servername.txt";
|
|||||||
<p><br>いぇ~い!</p>
|
<p><br>いぇ~い!</p>
|
||||||
<p>88888888888</p>
|
<p>88888888888</p>
|
||||||
<p>アカウント登録が完了しました!</p>
|
<p>アカウント登録が完了しました!</p>
|
||||||
|
<?php
|
||||||
|
if(!(empty($backupcode))){?>
|
||||||
|
<p>バックアップコードは以下のものです!<br>以下のコードでスマートフォンをなくしてしまったなどのもしものときにログインいただけます。<br>絶対に大切に保管してください!<br>また、そのバックアップコードは絶対に公開しないでください。</p>
|
||||||
|
<p><?php echo $backupcode;?>
|
||||||
|
<?php }?>
|
||||||
|
|
||||||
<div class="btnbox">
|
<div class="btnbox">
|
||||||
<a href="login.php" class="sirobutton">ログイン</a>
|
<a href="login.php" class="sirobutton">ログイン</a>
|
||||||
|
|||||||
Reference in New Issue
Block a user