前提・実現したいこと
PHPで簡単な会員登録画面を作っています。
以下のエラーメッセージが発生し、具体的にどこにエラーがあるのか見当がつかず、困っています。
ご指摘いただいたいです。よろしくお願いします。
発生している問題・エラーメッセージ
HTTP ERROR 500
該当のソースコード
PHP
1<?php 2 3error_reporting(E_ALL); 4ini_set('display_errors','On'); 5 6if(!empty($_POST)){ 7 8 define(MSG01,'入力必須です'); 9 define(MSG02,'E-mailの形式ではありません'); 10 define(MSG03,'半角英数字で入力してください'); 11 define(MSG04,'6文字以上で入力してください'); 12 define(MSG05,'パスワードが一致しません'); 13 14 $email = $_POST['email']; 15 $pass = $_POST['pass']; 16 $pass_re = $_POST['pass_re']; 17 18 $err_msg = array(); 19 20 if(empty($email)){ 21 $err_msg['email'] = MSG01; 22 }elseif(!preg_match("/^([a-zA-Z0-9])+([a-zA-Z0-9?*[|]%'=~^\{\}/+!#&$._-])*@([a-zA-Z0-9_-])+.([a-zA-Z0-9._-]+)+$/",$email){ 23 $err_msg['email'] = MSG02; 24 } 25 26 if(empty($pass)){ 27 $err_msg['pass'] = MSG01; 28 }elseif(!preg_match("/^[a-zA-Z0-9]+$/",$pass){ 29 $err_msg['pass'] = MSG03; 30 }elseif(mb_strlen($pass) < 6){ 31 $err_msg['pass'] = MSG04; 32 } 33 34 if(empty($pass_re)){ 35 $err_msg['pass_re'] = MSG01; 36 } 37 38 if($pass !== $pass_re){ 39 $err_msg['pass'] = MSG05; 40 } 41 42 if(empty($err_msg)){ 43 $dsn = 'mysql:dbname=php_sample01;host=localhost;charset=utf8'; 44 $user = 'root'; 45 $password = 'root'; 46 $options = array( 47 PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, 48 PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, 49 PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true, 50 ); 51 52 $pdo = new PDO($dsn, $user, $password, $options); 53 $stmt = $pdo -> prepare('INSERT INTO users (email,pass) VALUES (:email,:pass)'); 54 $stmt -> execute(array(':email' => $email, ':pass' => $pass)); 55 56 header('Location:mypage.php'); 57 } 58 } 59 60?>
試したこと
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/25 06:29