前提・実現したいこと
MAMPを利用しています。ローカル環境で動かしている自作サービスで画面上のユーザー登録やログインを行うと永遠にリロードしていて画面遷移しないので、画面遷移するようにしたいです。
phpMyAdminを使ったMySQLへの接続が必要な場合に限り画面遷移しない状況です。
これはMAMPの設定が正確にできていないことが原因なのでしょうか?
自力での原因解決が3日経ってもできず悩んでいます。
独学でプログラミングを学んでいて、周りに質問できるような知り合いがいません。
どうかお力添え頂けませんでしょうか。
以下のコードで以前はユーザー登録ができ画面遷移もしていたので
個人的にはphp.iniの設定がおかしい または MAMPのUPDATE時のインストールが原因だと考えています。
該当のソースコード
以下はユーザー登録ページのコードです。
HTML
1<?php 2 3//共通変数・関数ファイルを読み込み 4require('function.php'); 5 6debug('「「「「「「「「「「「「「「「「「「「「「「「「「「「「「'); 7debug('「 ユーザー登録ページ '); 8debug('「「「「「「「「「「「「「「「「「「「「「「「「「「「「「'); 9debugLogStart(); 10 11//post送信されていた場合 12if (!empty($_POST)) { 13 14 //変数にユーザー情報を代入 15 $email = $_POST['email']; 16 $pass = $_POST['pass']; 17 $pass_re = $_POST['pass_re']; 18 19 //未入力チェック 20 validRequired($email, 'email'); 21 22 validRequired($pass, 'pass'); 23 24 validRequired($pass_re, 'pass_re'); 25 26 27 if (empty($err_msg)) { 28 29 //emailの形式チェック 30 validEmail($email, 'email'); 31 //emailの最大文字数チェック 32 validMaxLen($email, 'email'); 33 //email重複チェック 34 validEmailDup($email); 35 36 //パスワードの半角英数字チェック 37 validHalf($pass, 'pass'); 38 //パスワードの最大文字数チェック 39 validMaxLen($pass, 'pass'); 40 //パスワードの最小文字数チェック 41 validMinLen($pass, 'pass'); 42 43 //パスワード(再入力)の最大文字数チェック 44 validMaxLen($pass_re, 'pass_re'); 45 //パスワード(再入力)の最小文字数チェック 46 validMinLen($pass_re, 'pass_re'); 47 48 if (empty($err_msg)) { 49 50 //パスワードとパスワード再入力が合っているかチェック 51 validMatch($pass, $pass_re, 'pass_re'); 52 53 if (empty($err_msg)) { 54 55 //例外処理 56 try { 57 //DBへ接続 58 $dbh = dbConnect(); 59 //SQL文作成 60 $sql = 'INSERT INTO users (email,password,login_time,create_date) VALUES(:email,:pass,:login_time,:create_date)'; 61 var_dump($sql); 62 $data = array( 63 ':email' => $email, ':pass' => password_hash($pass, PASSWORD_DEFAULT), 64 ':login_time' => date('Y-m-d H:i:s'), 65 ':create_date' => date('Y-m-d H:i:s') 66 ); 67 var_dump($data); 68 //クエリ実行 69 $stmt = queryPost($dbh, $sql, $data); 70 var_dump($stmt); 71 72 //クエリ成功の場合 73 if ($stmt) { 74 //ログイン有効期限(デフォルトを1時間とする) 75 $sesLimit = 60 * 60; 76 //最終ログイン日時を現在日時に 77 $_SESSION['login_date'] = time(); 78 $_SESSION['login_limit'] = $sesLimit; 79 //ユーザーIDを格納 80 $_SESSION['user_id'] = $dbh->lastInsertId(); 81 82 debug('セッション変数の中身:' . print_r($_SESSION, true)); 83 84 header("Location:mypage.php"); //マイページへ 85 } 86 } catch (Exception $e) { 87 error_log('エラー発生:' . $e->getMessage()); 88 $err_msg['common'] = MSG07; 89 } 90 } 91 } 92 } 93} 94?> 95 96<?php 97$siteTitle = 'ユーザー登録'; 98require('head.php'); 99?> 100 101<body class="page-signup page-1colum"> 102 103 <!-- ヘッダー --> 104 <?php 105 require('header.php'); 106 ?> 107 108 <!-- メインコンテンツ --> 109 <div id="contents" class="site-width"> 110 111 <!-- Main --> 112 <section class="main"> 113 <div class="form-container"> 114 <form action="" method="post" class="form"> 115 116 <h2 class="title">ユーザー登録</h2> 117 118 <div class="area-msg"> 119 <?php 120 if (!empty($err_msg['common'])) echo $err_msg['common']; 121 ?> 122 </div> 123 124 125 <label class="<?php if (!empty($err_msg['email'])) echo $err_msg['email']; ?>"> 126 Email 127 <input type="text" name="email" value="<?php if (!empty($_POST['email'])) echo $_POST['email']; ?>"> 128 </label> 129 <div class="area-msg"> 130 <?php 131 if (!empty($err_msg['email'])) echo $err_msg['email']; 132 ?> 133 </div> 134 135 136 <label class="<?php if (!empty($err_msg['pass'])) echo $err_msg['pass']; ?>"> 137 パスワード<input type="password" name="pass" value="<?php if (!empty($_POST['pass'])) echo $_POST['pass']; ?>"> 138 </label> 139 <div class="area-msg"> 140 <?php 141 if (!empty($err_msg['pass'])) echo $err_msg['pass']; 142 ?> 143 </div> 144 <label class="<?php if (!empty($err_msg['pass_re'])) echo $err_msg['pass_re']; ?>"> 145 パスワード(再入力) 146 <input type="password" name="pass_re" value="<?php if (!empty($_POST['pass_re'])) echo $_POST['pass_re']; ?>"> 147 </label> 148 <div class="area-msg"> 149 <?php 150 if (!empty($err_msg['pass_re'])) echo $err_msg['pass_re']; 151 ?> 152 </div> 153 154 <div class="btn-container"> 155 <input type="submit" class="btn btn-mid" value="登録する"> 156 <div> 157 </form> 158 </div> 159 160 </section> 161 </div> 162 163 <!-- footer --> 164 <?php 165 require('footer.php'); 166 ?> 167
試したこと
MAMPの再インストール後、初期設定をしました。
補足情報(FW/ツールのバージョンなど)
macOS Mojave バージョン 10.14.6
MAMP バージョン 5.4
Database server
Server: Localhost via UNIX socket
Server type: MySQL
Server connection: SSL is not being used Documentation
Server version: 5.7.26 - MySQL Community Server (GPL)
Protocol version: 10
User: root@localhost
Server charset: UTF-8 Unicode (utf8)
Web server
Apache/2.2.34 (Unix) mod_wsgi/3.5 Python/2.7.13 PHP/7.3.7 mod_ssl/2.2.34 OpenSSL/1.0.2o DAV/2 mod_fastcgi/mod_fastcgi-SNAP-0910052141 mod_perl/2.0.10 Perl/v5.24.0
Database client version: libmysql - mysqlnd 5.0.12-dev - 20150407 - $Id: 7cc7cc96e675f6d72e5cf0f267f48e167c2abb23 $
PHP extension: mysqliDocumentation curlDocumentation mbstringDocumentation
PHP version: 7.3.7
ここにより詳細な情報を記載してください。