ご覧いただきありがとうございます。
PHPで会員登録フォームを作成しています。
PHP
1<!DOCTYPE html> 2<html lang="ja"> 3 4<head> 5 <meta charset="utf-8"> 6 <title>居酒屋従業員サイト</title> 7 <meta name="description" content="ディスクリプションを入力"> 8 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 9 <link rel="stylesheet" href="style.css"> 10 <!-- [if lt IE 9] --> 11 <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> 12 <script src="http://css3-mediaqueries-js.googlecode.com/svn/trunk/css3-mediaqueries.js"></script> 13 <!-- [endif] --> 14 <script src="app.js"></script> 15</head> 16 17<body> 18 <?php 19 require('function.php'); 20 $err_msg['common'] = ''; 21 22 if($_POST){ 23 debug('POST送信がありました'); 24 25 $email = $_POST['email']; 26 $username = $_POST['username']; 27 $password = $_POST['password']; 28 $password2 = $_POST['password2']; 29 $hash = password_hash($password, PASSWORD_DEFAULT); 30 31 /*try{ 32 $dbh = dbConnect(); 33 $sql = 'INSERT INTO USERS (username,email,password,login_time,delete_flg,create_date,update_date) VALUES (:username,:email,:password,:login_time,0,:create_date,:update_date)'; 34 $data = array(':username' => $userName,':password' => $hash,':login_time'=> date('Y-m-d H:i:s'),':create_date' => date('Y-m-d H:i:s'),'update_date' => date('Y-m-d H:i:s')); 35 $stmt = queryPost($dbh, $sql, $data); 36 debug('クエリ結果の中身:'.print_r($result,true)); 37 38 if($stmt){ 39 $sesLimit = 60*60; 40 $_SESSION['login_date'] = time(); 41 $_SESSION['login_limit'] = $sesLimit; 42 $_SESSION['user_id'] = $dbh->lastInsertId(); 43 $_SESSION['username'] = $username; 44 45 debug('従業員登録クエリ成功'); 46 debug('セッション変数の中身:'.print_r($_SESSION,true)); 47 header("Location:mypage.php"); 48 } 49 50 } catch (Exception $e) { 51 error_log('エラー発生:' . $e->getMessage()); 52 $err_msg['common'] = MSG07; 53 }*/ 54 } 55 56?> 57 <!----- main -----> 58 <h1>居酒屋の従業員サイトです</h1> 59 <section class="main-panel"> 60 <h2>ログイン</h2> 61 <form action="" method="post"> 62 <input type="text" name="email" placeholder="メールアドレス"> 63 <input type="text" id="userName" name="username" placeholder="ユーザ名"> 64 <br> 65 <input type="password" id="password" name="password" placeholder="パスワード"> 66 <br> 67 <input type="password" id="password2" name="password2" placeholder="パスワード(再入力)"> 68 <br> 69 <span class="msg"><?php echo $err_msg['common']; ?></span><br> 70 <input type="submit" value="登録する " id="regist"> 71 </form> 72 </section> 73 <!----- /main -----> 74 75 <!-- footer --> 76 <?php 77 require('footer.php'); 78 ?> 79
このコードはフォームに文字を入力して登録するボタンを押すと内容がPOSTされる
(23行目のPOST送信がありましたのメッセージがログに出力される)のですが
62行目のメールアドレスの入力フォームの後に<br>タグを入れると登録ボタンが効かなくなり
内容がPOSTされなくなります。
原因として考えられることがありましたらご教示ください。
動かないコードは下記になります
PHP
1<!DOCTYPE html> 2<html lang="ja"> 3 4<head> 5 <meta charset="utf-8"> 6 <title>居酒屋従業員サイト</title> 7 <meta name="description" content="ディスクリプションを入力"> 8 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 9 <link rel="stylesheet" href="style.css"> 10 <!-- [if lt IE 9] --> 11 <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> 12 <script src="http://css3-mediaqueries-js.googlecode.com/svn/trunk/css3-mediaqueries.js"></script> 13 <!-- [endif] --> 14 <script src="app.js"></script> 15</head> 16 17<body> 18 <?php 19 require('function.php'); 20 $err_msg['common'] = ''; 21 22 if($_POST){ 23 debug('POST送信がありました'); 24 25 $email = $_POST['email']; 26 $username = $_POST['username']; 27 $password = $_POST['password']; 28 $password2 = $_POST['password2']; 29 $hash = password_hash($password, PASSWORD_DEFAULT); 30 31 /*try{ 32 $dbh = dbConnect(); 33 $sql = 'INSERT INTO USERS (username,email,password,login_time,delete_flg,create_date,update_date) VALUES (:username,:email,:password,:login_time,0,:create_date,:update_date)'; 34 $data = array(':username' => $userName,':password' => $hash,':login_time'=> date('Y-m-d H:i:s'),':create_date' => date('Y-m-d H:i:s'),'update_date' => date('Y-m-d H:i:s')); 35 $stmt = queryPost($dbh, $sql, $data); 36 debug('クエリ結果の中身:'.print_r($result,true)); 37 38 if($stmt){ 39 $sesLimit = 60*60; 40 $_SESSION['login_date'] = time(); 41 $_SESSION['login_limit'] = $sesLimit; 42 $_SESSION['user_id'] = $dbh->lastInsertId(); 43 $_SESSION['username'] = $username; 44 45 debug('従業員登録クエリ成功'); 46 debug('セッション変数の中身:'.print_r($_SESSION,true)); 47 header("Location:mypage.php"); 48 } 49 50 } catch (Exception $e) { 51 error_log('エラー発生:' . $e->getMessage()); 52 $err_msg['common'] = MSG07; 53 }*/ 54 } 55 56?> 57 <!----- main -----> 58 <h1>居酒屋の従業員サイトです</h1> 59 <section class="main-panel"> 60 <h2>ログイン</h2> 61 <form action="" method="post"> 62 <input type="text" name="email" placeholder="メールアドレス"> 63 <br> 64 <input type="text" id="userName" name="username" placeholder="ユーザ名"> 65 <br> 66 <input type="password" id="password" name="password" placeholder="パスワード"> 67 <br> 68 <input type="password" id="password2" name="password2" placeholder="パスワード(再入力)"> 69 <br> 70 <span class="msg"><?php echo $err_msg['common']; ?></span><br> 71 <input type="submit" value="登録する " id="regist"> 72 </form> 73 </section> 74 <!----- /main -----> 75 76 <!-- footer --> 77 <?php 78 require('footer.php'); 79 ?> 80
m.ts10806さんからいただいた指摘をもとに検証を続けていたところ
style.cssを取り込む記述を外すとbrタグを入れてもsubmitされることがわかりました
css
1h1{ 2 font-size: 36px; 3 text-align: center; 4 color: #fa8072; 5} 6 7h2{ 8 color: #ff6347; 9} 10 11body{ 12 display: flex; 13 flex-flow: column; 14 min-height: 100vh; 15} 16 17a{ 18 text-decoration: none; 19 color: #ff4500; 20} 21 22.main-panel{ 23 width: 100%; 24 height: 420px; 25 padding-top: 60px; 26 text-align: center; 27} 28 29input[type="text"],input[type="password"]{ 30 width: 250px; 31 height: 40px; 32 margin-bottom: 45px; 33 border: 2px solid #e9967a; 34 border-radius: 0.8em; 35} 36 37::placeholder { 38 color: #ff4500; 39} 40 41.msg{ 42 color: red; 43} 44 45#login,#regist,.button{ 46 width: 100px; 47 height: 40px; 48 margin: 20px; 49 border: 2px solid #e9967a; 50 border-radius: 0.8em; 51 background-color: #ffeaea; 52 color: #ff4500; 53} 54 55#login:disabled ,#regist:disabled { 56 background: #dfdfdf; 57} 58 59p{ 60 color: #ff4500; 61} 62 63footer{ 64 width: 100%; 65 text-align: center; 66 color: #ff4500; 67 flex: 1; 68}
回答1件
あなたの回答
tips
プレビュー