質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

2629閲覧

どこでエラーが起きているのかわからない

YamamotoHiroki

総合スコア57

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2015/08/03 13:57

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>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kurosawa

2015/08/03 14:07

新規登録のボタンを押した後に、画面では何か表示されてますか?
YamamotoHiroki

2015/08/03 14:14

何も移遷しません。 押しても反応なしです。 テーブルに情報が追加されるだけです。 参考になるのかわかりませんがheader()にたどり着くまでのどこかで echo 1; などのようにしておくと画面上に1が表示されます。
guest

回答1

0

ベストアンサー

うーん…SITE_URLの最後にスラッシュがついてないとかいうオチはないですよね…。

投稿2015/08/03 14:14

yu-ri

総合スコア634

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

YamamotoHiroki

2015/08/03 14:15

大丈夫です define('SITE_URL','localhost:81/WIM/');
yu-ri

2015/08/03 14:16

ん?その指定方法ですとhttp://はいずこへ?
YamamotoHiroki

2015/08/03 14:19

あれ、間違えていますか汗 どう直したらいいのでしょうか? ローカル開発環境ですのでつかないと思ってました。
yu-ri

2015/08/03 14:21

ローカルだろうが絶対パス指定であればhttp://は必要です(汗 define('SITE_URL', 'http://localhost:81/WIM/'); で解決かと。
kurosawa

2015/08/03 14:22

それですね!
YamamotoHiroki

2015/08/03 14:25

解決しました! ありがとうございます!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問