MacでMAMPを利用してローカル開発環境でWebサイトを作っています。
phpで新規会員登録フォームを作ろうとしているのですが
どこが間違っていて正常に機能しないのかがわかりません。
一応どこがきちんと動いていないのかは目測がついていて
header('Location: '.SITE_URL. 'login.php');
の部分だと思っています。
新規登録のボタンを押すとlogin.phpに飛んで欲しいのですが
なぜか飛びません。
エラーログも出ません。
おそらくheader()の処理が飛ばされているのだと思います。
新規登録(submitボタン)を押すとテーブル内に情報は正常に入ります。
どこがいけないのか教えて欲しいです。
少し長いですが以下、問題のregist.phpです。
よろしくお願いします。
php
1<?php 2require_once('config.php'); 3require_once('functions.php'); 4session_start(); 5### 6if($_SERVER['REQUEST_METHOD'] != 'POST'){ 7 //CSRF対策 8 setToken(); 9}else{ 10 checkToken(); 11 $name = $_POST['name']; 12 $email = $_POST['email']; 13 $password = $_POST['password']; 14 $dbh = connectDb(); 15 $err = array(); 16 //名前がから? 17 if($name == NULL){ 18 $err['name'] = '名前を入力してください'; 19 } 20 21 if(emailExists($email, $dbh)){ 22 $err['email'] = 'このメールアドレスは既に登録されています'; 23 } 24 25 //メールアドレスがから? 26 if($email == NULL){ 27 $err['email'] = 'メールアドレスを入力してください'; 28 } 29 30 //パスワードがから? 31 if($password == NULL){ 32 $err['password'] = 'パスワードを入力してください'; 33 } 34 35 if(empty($err)){ 36 //登録処理 37 $sql = "insert into wintb 38 (name,email,password,created,modified) 39 values 40 (:name, :email, :password, now(), now())"; 41 $stmt = $dbh -> prepare($sql); 42 $params = array( 43 ":name"=>$name, 44 ":email"=>$email, 45 ":password"=>getSha1Password($password) 46 ); 47 $stmt -> execute($params); 48 header('Location: '.SITE_URL. 'login.php'); 49 50 exit; 51 } 52 53} 54 55?> 56 57<!DOCTYPE html> 58<html lang="ja"> 59 <head> 60 <meta charset="utf-8"> 61 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 62 <meta name="viewport" content="width=device-width, initial-scale=1"> 63 <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags --> 64 <title>Bootstrap 101 Template</title> 65 66 <!-- Bootstrap --> 67 <link href="BootStrap/css/bootstrap.min.css" rel="stylesheet"> 68 <link href="style.css" rel="stylesheet"> 69 70 <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> 71 <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> 72 <!--[if lt IE 9]> 73 <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> 74 <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> 75 <![endif]--> 76 </head> 77 <body> 78 79 <div class="head col-sm-4 text-center" style="background-color: #3B5DE4;"> 80 <div class="logo"> 81 logo 82 </div> 83 </div> 84 <div class="head col-sm-8 text-center" style="background-color: #3B5DE4;"> 85 </div> 86 87 88<h1>新規ユーザー登録</h1> 89 90 91<form action="" method="POST"> 92<p>お名前:<input type="text" name="name" value="<?php echo h($name); ?>"><?php echo h($err['name']); ?></p> 93<p>メールアドレス:<input type="text" name="email" value="<?php echo h($email); ?>"> <?php echo h($err['email']); ?></p> 94<p>パスワード:<input type="password" name="password" value=""> <?php echo h($err['password']); ?></p> 95 96<input type="hidden" name="token" value="<?php echo h($_SESSION['token']); ?>"> 97 98<p><input type="submit" value="新規登録"><a href="index.php">戻る</a></p> 99</form> 100 101 102 <!-- jQuery (necessary for Bootstrap's JavaScript plugins) --> 103 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script> 104 <!-- Include all compiled plugins (below), or include individual files as needed --> 105 <script src="BootStrap/js/bootstrap.min.js"></script> 106 </body> 107</html>
回答1件
あなたの回答
tips
プレビュー