diff --git a/new.php b/new.php deleted file mode 100644 index 382078e..0000000 --- a/new.php +++ /dev/null @@ -1,498 +0,0 @@ - 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( !empty($_POST['btn_submit']) ) { - - - //$row['userid'] = "daichimarukn"; - - // 空白除去 - $username = $_POST['username']; - $userid = $_POST['userid']; - - $password = $_POST['password']; - $chkpass = $_POST['chkpass']; - $mailadds = $_POST['mailadds']; - - $profile = $_POST['profile']; - - - //cookieに保存 - setcookie("username",$username,time()+60*60*24*14); - setcookie("userid",$userid,time()+60*60*24*14); - - setcookie("password",$password,time()+60*60*24*14); - setcookie("mailadds",$mailadds,time()+60*60*24*14); - - setcookie("profile",$profile,time()+60*60*24*14); - - if (!empty($_FILES['image']['name'])) { - $img = $_FILES['image']; - }else{ - $localFilePath = 'img/deficon/icon.png'; - $img = [ - 'name' => 'deficon.png', - 'type' => 'image/png', // 仮の Content-Type を指定(必要に応じて適切なものに変更してください) - 'tmp_name' => $localFilePath, - 'error' => 0, - 'size' => filesize($localFilePath) - ]; - } - - $localFilePathhead = 'img/defhead/head.png'; - $headimg = [ - 'name' => 'defhead.png', - 'type' => 'image/png', // 仮の Content-Type を指定(必要に応じて適切なものに変更してください) - 'tmp_name' => $localFilePathhead, - 'error' => 0, - 'size' => filesize($localFilePathhead) - ]; - - - - $options = array( - // SQL実行失敗時に例外をスルー - PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, - // デフォルトフェッチモードを連想配列形式に設定 - PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, - // バッファードクエリを使う(一度に結果セットを全て取得し、サーバー負荷を軽減) - // SELECTで得た結果に対してもrowCountメソッドを使えるようにする - PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true, - ); - - $dbh = new PDO('mysql:charset=utf8mb4;dbname='.DB_NAME.';host='.DB_HOST , DB_USER, DB_PASS, $option); - - - $query = $dbh->prepare('SELECT * FROM account WHERE userid = :userid limit 1'); - - $query->execute(array(':userid' => $userid)); - - $result = $query->fetch(); - - - // ユーザーネームの入力チェック - if( empty($username) ) { - $error_message[] = '表示名を入力してください。'; - } else { - // 文字数を確認 - if( 25 < mb_strlen($username, 'UTF-8') ) { - $error_message[] = 'ユーザーネームは25文字以内で入力してください。'; - } - } - - // IDの入力チェック - if( empty($userid) ) { - $error_message[] = 'ユーザーIDを入力してください。'; - } else { - - // 文字数を確認 - if( 20 < mb_strlen($userid, 'UTF-8') ) { - $error_message[] = 'IDは20文字以内で入力してください。'; - } - - if($userid === 'uwuzu_official'){ - $error_message[] = 'そのIDは登録禁止になっています。'; - } - - if($result > 0){ - $error_message[] = 'このID('.$userid.')は既に使用されています。他のIDを作成してください。'; //このE-mailは既に使用されています。 - } - - } - - // パスワードの入力チェック - if( empty($password) ) { - $error_message[] = 'パスワードを入力してください。'; - } else { - - $weakPasswords = array( - "password", - "123456", - "123456789", - "12345", - "12345678", - "123123", - "1234567890", - "1234567", - "1q2w3e", - "qwerty123", - "aa12345678", - "password1", - "1234", - "qwertyuiop", - "123321", - "12321", - "qwertyui", - "abcd1234", - "zaq12wsx", - "1q2w3e4r", - "qwer1234", - "sakura", - "asdf1234", - "asdfghjkl", - "asdfghjk", - "member", - "1qaz2wsx", - "doraemon", - "makoto", - "takeshi", - "machi1", - "machida", - "machida1", - "tokyo", - "arashi", - "dropbox", - "twitter", - "elonmusk", - "xcorp", - "1234qwer", - "japan", - "nippon", - "tukareta", - "tweet", - "discord", - "misskey", - "qwerty", - "123456789", - "abc123", - "password123", - "admin", - "letmein", - "iloveyou", - "111111", - "12345678910", - "user", - "root", - "system", - // 他にも弱いパスワードを追加できます - ); - - function isWeakPassword($passwords) { - global $weakPasswords; - return in_array($passwords, $weakPasswords); - } - - // テスト用のパスワード(実際にはユーザー入力などから取得することになります。 - - if (isWeakPassword($password)) { - $error_message[] = "パスワードが弱いです。セキュリティ上変更してください。"; - } else { - - } - - if ($chkpass == $password ){ - - }else{ - $error_message[] = '確認用パスワードが違います。'; - } - - if( 4 > mb_strlen($password, 'UTF-8') ) { - $error_message[] = 'パスワードは4文字以上である必要があります。'; - } - - // 文字数を確認 - if( 100 < mb_strlen($password, 'UTF-8') ) { - $error_message[] = 'パスワードは100文字以内で入力してください。'; - } - } - - if( empty($error_message) ) { - // トランザクション開始 - $pdo->beginTransaction(); - $datetime = date("Y-m-d H:i:s"); - - try { - - $role = "user"; - $admin = "none"; - $hashpassword = password_hash($password, PASSWORD_DEFAULT); - $loginid = sha1(uniqid(mt_rand(), true)); - - // SQL作成 - $stmt = $pdo->prepare("INSERT INTO account (username, userid, password, loginid, mailadds, profile, iconname, iconcontent, icontype, iconsize, headname, headcontent, headtype, headsize, role, datetime, admin) VALUES (:username, :userid, :password, :loginid, :mailadds, :profile, :iconname, :iconcontent, :icontype, :iconsize, :headname, :headcontent, :headtype, :headsize, :role, :datetime, :admin )"); - - $iconName = $img['name']; - $iconType = $img['type']; - $iconContent = file_get_contents($img['tmp_name']); - $iconSize = $img['size']; - - // アイコン画像のバインド - $stmt->bindValue(':iconname', $iconName, PDO::PARAM_STR); - $stmt->bindValue(':icontype', $iconType, PDO::PARAM_STR); - $stmt->bindValue(':iconcontent', $iconContent, PDO::PARAM_STR); - $stmt->bindValue(':iconsize', $iconSize, PDO::PARAM_INT); - - // ヘッダー画像関連の処理 - $headName = $headimg['name']; - $headType = $headimg['type']; - $headContent = file_get_contents($headimg['tmp_name']); - $headSize = $headimg['size']; - - // ヘッダー画像のバインド - $stmt->bindValue(':headname', $headName, PDO::PARAM_STR); - $stmt->bindValue(':headtype', $headType, PDO::PARAM_STR); - $stmt->bindValue(':headcontent', $headContent, PDO::PARAM_STR); - $stmt->bindValue(':headsize', $headSize, PDO::PARAM_INT); - - // 他の値をセット - $stmt->bindParam(':username', $username, PDO::PARAM_STR); - $stmt->bindParam(':userid', $userid, PDO::PARAM_STR); - $stmt->bindParam(':password', $hashpassword, PDO::PARAM_STR); - $stmt->bindParam(':loginid', $loginid, PDO::PARAM_STR); - $stmt->bindParam(':mailadds', $mailadds, PDO::PARAM_STR); - $stmt->bindParam(':profile', $profile, PDO::PARAM_STR); - $stmt->bindParam(':role', $role, PDO::PARAM_STR); - $stmt->bindParam(':datetime', $datetime, PDO::PARAM_STR); - - $stmt->bindParam(':admin', $admin, PDO::PARAM_STR); - - // SQLクエリの実行 - $res = $stmt->execute(); - - // コミット - $res = $pdo->commit(); - - } catch (Exception $e) { - - // エラーが発生した時はロールバック - $pdo->rollBack(); - } - - if ($res) { - // リダイレクト先のURLへ転送する - $url = 'success.php'; - header('Location: ' . $url, true, 303); - - // すべての出力を終了 - exit; - } else { - $error_message[] = '登録に失敗しました。'; - } - - // プリペアドステートメントを削除 - $stmt = null; - } -} - -// データベースの接続を閉じる -$pdo = null; - -?> - - - - - - - - -アカウント登録 - <?php echo file_get_contents($servernamefile);?> - - - - - - - -
- - -
-

アカウント登録

- -

アカウント登録です。

-

必須項目には「*」があります。 - - -

- - -
- -
-
- -
- -
- - - - -
-

ユーザーネーム *

-
プロフィールページに掲載され公開されます。
※サービス管理者が確認できます。
- -
-
-

ユーザーID *

-
後から変更はできません。
プロフィールページに掲載され公開されます。
※サービス管理者が確認できます。
- -
- -
-

パスワード *

-
ログイン時に必要となります。
※サービス管理者が確認できません。
- -
- -
-

パスワード再確認 *

- -
- -
-

メールアドレス

-
設定しておくとアカウント復旧に利用できます。
※サービス管理者が確認できます。
- -
- -
-

プロフィール

-
プロフィールページに掲載され公開されます。
※サービス管理者が確認できます。
- -
- - - -

登録を押すと利用規約とプライバシーポリシーに同意したこととなります。
未確認の場合は上のボタンよりお読みください。

- - - -
- -
- 戻る -
-
- -
- - - - - - - - \ No newline at end of file