0, 'path' => '/', 'domain' => '', 'secure' => true, 'httponly' => true, 'samesite' => 'Lax' ]); session_start(); session_regenerate_id(true); 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(); } //ログイン認証--------------------------------------------------- blockedIP($_SERVER['REMOTE_ADDR']); $is_login = uwuzuUserLogin($_SESSION, $_COOKIE, $_SERVER['REMOTE_ADDR'], "admin"); if($is_login === false){ header("Location: ../index.php"); exit; }else{ $userid = safetext($is_login['userid']); $username = safetext($is_login['username']); $loginid = safetext($is_login["loginid"]); $role = safetext($is_login["role"]); $sacinfo = safetext($is_login["sacinfo"]); $myblocklist = safetext($is_login["blocklist"]); $myfollowlist = safetext($is_login["follow"]); $is_Admin = safetext($is_login["admin"]); } $notiQuery = $pdo->prepare("SELECT COUNT(*) as notification_count FROM notification WHERE touserid = :userid AND userchk = 'none'"); $notiQuery->bindValue(':userid', $userid); $notiQuery->execute(); $notiData = $notiQuery->fetch(PDO::FETCH_ASSOC); $notificationcount = $notiData['notification_count']; if( !empty($pdo) ) { // データベース接続の設定 $dbh = new PDO('mysql:charset=utf8mb4;dbname='.DB_NAME.';host='.DB_HOST, DB_USER, DB_PASS, array( PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true, )); $userQuery = $dbh->prepare("SELECT username, userid, profile, role FROM account WHERE userid = :userid"); $userQuery->bindValue(':userid', $userid); $userQuery->execute(); $userData = $userQuery->fetch(); $role = $userData["role"]; $dbh = new PDO('mysql:charset=utf8mb4;dbname='.DB_NAME.';host='.DB_HOST , DB_USER, DB_PASS, $option); $rerole = $dbh->prepare("SELECT username, userid, password, mailadds, profile, iconname, headname, role, datetime FROM account WHERE userid = :userid"); $rerole->bindValue(':userid', $userid); // SQL実行 $rerole->execute(); $userdata = $rerole->fetch(); // ここでデータベースから取得した値を $role に代入する } if (!empty($pdo)) { $sql = "SELECT code,used,datetime FROM invitation ORDER BY datetime DESC"; $invcode = $pdo->query($sql); while ($row = $invcode->fetch(PDO::FETCH_ASSOC)) { $codes[] = $row; } } if( !empty($_POST['code_btn_submit']) ) { $make_code = safetext($_POST['make_code']); $code_num = 0; while ($code_num < (int)$make_code) { $code_num++; $pdo->beginTransaction(); $datetime = date("Y-m-d H:i:s"); try { $new_invcode = random_code(); $used = "none"; // SQL作成 $stmt = $pdo->prepare("INSERT INTO invitation (code, used, datetime) VALUES (:code, :used, :datetime)"); $stmt->bindParam(':code', $new_invcode, PDO::PARAM_STR); $stmt->bindParam(':used', $used, PDO::PARAM_STR); $stmt->bindParam(':datetime', $datetime, PDO::PARAM_STR); // SQLクエリの実行 $res = $stmt->execute(); // コミット $res = $pdo->commit(); } catch (Exception $e) { // エラーが発生した時はロールバック $pdo->rollBack(); } } if ($res) { actionLog($userid, "info", "codeadmin", null, "招待コードを".$make_code."件発行しました", 0); $url = (empty($_SERVER['HTTPS']) ? 'http://' : 'https://') . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; header("Location:".$url.""); exit; } else { actionLog($userid, "error", "codeadmin", null, "招待コードを".$make_code."件発行できませんでした", 3); $error_message[] = '発行に失敗しました。(REGISTERED_DAME)'; } // プリペアドステートメントを削除 $stmt = null; } require('../logout/logout.php'); ?> 招待コード発行所 - <?php echo safetext($serversettings["serverinfo"]["server_name"]);?>

招待コード発行所

下の発行ボタンで新しくコードを発行できます!
なお、コードは一回限り有効です。

発行数

コード:

使用状況:発行日時:".$value["datetime"].""; }elseif($value["used"] === "true"){ echo "使用済み
使用日時:".$value["datetime"].""; }}?>

削除ボタンを押すとこのコードは使用できなくなります。

招待コードは発行されていません。

サーバーは招待制にされていないため招待コードは利用できません。