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

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

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

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

Q&A

解決済

1回答

7851閲覧

PHPでページ遷移できない

Zousan

総合スコア29

PHP

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

0グッド

0クリップ

投稿2015/05/24 11:08

以下のコードでPHPのログイン処理を実装したのですが、コメントの//ログイン成功までは動いているのですが、その後のfunction login()でheader()を使ってページ遷移を実装しているのですが、ページ遷移せずに、真っ白なページのままです。
urlはhttp://sandbox.localhost/basic_login.phpのままになっています。どこが間違っているかわかりますか?

Basic_login.php

lang

1<?php 2require('common.php'); 3require('functions.php'); 4 5$pdo = connectDB(); 6 7session_start(); 8$_SESSION['id']=0; 9$_SESSION['mail_address']=""; 10$_SESSION['login']=0; 11 12$error=""; 13$mail_address = ""; 14$password = ""; 15 16switch ($_SERVER['REQUEST_METHOD']) { 17 case 'POST': 18 if(isset($_POST["login"])){ 19 $mail_address = htmlspecialchars($_POST["mail_address"], ENT_QUOTES); 20 $password = htmlspecialchars($_POST["password"], ENT_QUOTES); 21 if(strlen($mail_address)==0) 22 $error = "メールアドレスが入力されていません。"; 23 if(strlen($password)==0) 24 $error = "パスワードが入力されていません。"; 25 if(strlen($error)==0){ 26 $pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true); 27 $st = $pdo->prepare("SELECT * FROM user WHERE mail_address=:mail_address"); 28 $st->bindParam(':mail_address', $mail_address); 29 $st->execute(); 30 if($st->rowCount()>0){ 31 $row = $st->fetch(); 32 if($row['password']==$password){ 33 //ログイン成功! 34 login($row); 35 }else{ 36 $error ="メールアドレスまたはパスワードが違います。"; 37 } 38 }else{ 39 $error = "メールアドレスまたはパスワードが違います。"; 40 } 41 } 42 } 43 break; 44 45 default: 46 if(isset($_COOKIE['cookie'])){ 47 $cookie = $_COOKIE['cookie']; 48 $mail_address = $cookie['mail_address']; 49 $password = $cookie['password']; 50 } 51 break; 52} 53function login($user){ 54 $_SESSION["id"]=$user["id"]; 55 $_SESSION["mail_address"]=$user["mail_address"]; 56 $_SESSION["login"]=1; 57 58 $checkboxValue = $_POST['remember']; 59 if($checkboxValue){ 60 setcookie("cookie[mail_address]", $user["mail_address"]); 61 setcookie("cookie[password]", $user["password"]); 62 }else{ 63 if(isset($_COOKIE['cookie[mail_address]'])) 64 setcookie('cookie[mail_address]', time() -1800); 65 if(isset($_COOKIE['cookie[password]'])) 66 setcookie('cookie[password]', time() - 1800); 67 } 68 header("Location : edit_profile.php"); 69 exit; 70} 71?> 72<!DOCTYPE html> 73<html lang="ja"> 74<head> 75 <meta charset="utf-8"> 76 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 77 <meta name="viewport" content="width=device-width, initial-scale=1"> 78 <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags --> 79 <title>ログイン</title> 80 81 <!-- Bootstrap --> 82<link href="bower_components/bootswatch/paper/bootstrap.min.css" rel="stylesheet"> 83<link rel="stylesheet" type="text/css" href="css/basic_signin.css"> 84 85 <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> 86 <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> 87 <!--[if lt IE 9]> 88 <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> 89 <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> 90 <![endif]--> 91 </head> 92 <body> 93 <div class="container"> 94 <form class="form-signin" method="POST" action="basic_login.php"> 95 <h2 class="form-signin-heading">ログイン</h2> 96 <?php 97 if(strlen($error)>0){ 98 echo "<div class='alert alert-danger' > エラー : {$error}</div>"; 99 } 100 ?> 101 <div class="form-group"> 102 <label for="email" class="sr-only">メールアドレス</label> 103 <input type="email" name="mail_address" class="form-control" placeholder="Email address" required autofucus value="<?php echo $mail_address ?>"> 104 </div> 105 <div class="form-group"> 106 <label for="password" class="sr-only" >パスワード</label> 107 <input type="password" id="password" name="password" class="foem-control" placeholder="Password" required value="<?php echo $password ?>"> 108 </div> 109 <div class="checkbox"> 110 <label> 111 <input type="checkbox" value="remember-me" name="remember">Remember me 112 </label> 113 </div> 114 <input type="submit" name="login" class="btn btn-lg btn-primary btn-block" value="ログイン"> 115 </form> 116 <button class="btn btn-default btn-lg btn-block" id="signin" onclick="toSignin()">サインイン</button> 117 </div> 118 119 <!-- jQuery (necessary for Bootstrap's JavaScript plugins) --> 120 <script src="bower_components/jquery/dist/jquery.min.js"></script> 121 <!-- Include all compiled plugins (below), or include individual files as needed --> 122 <script src="bower_components/bootstrap/dist/js/bootstrap.min.js"></script> 123 <script type="text/javascript" src="script/basic_login.js"></script> 124 </body> 125</html> 126

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

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

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

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

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

guest

回答1

0

自己解決

header("Location: edit_profile.php")のコロンに空白が入っていることが原因でした。

投稿2015/05/24 11:44

Zousan

総合スコア29

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問