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

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

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

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

Q&A

解決済

1回答

1013閲覧

ログイン画面でチェックボックスをONにしてログイン成功したときのみ次回のログインでメアドとパスワードを自動表示させたい。

sodium_chem

総合スコア2

PHP

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

0グッド

0クリップ

投稿2020/05/26 11:52

前提・実現したいこと

ログイン画面でチェックボックスをONにしてログイン成功したときのみ次回のログインでメアドとパスワードを自動表示させたい。

発生している問題

上記内容を実現するためのコードを書いたがなぜかパスワードとメアドが自動表示されない
どうして表示されないのかご教授いただければ幸いです。

該当のソースコード

ログイン login.php

php

1 2<?php 3session_start(); 4if(isset($_SESSION['id'])){ 5header("Location:mypage.php"); 6} 7?> 8<!DOCTYPE HTML> 9<html lang="ja"> 10<head> 11<meta charset="UTF-8"> 12<title>マイページ登録</title> 13<link rel="stylesheet" type="text/css" href="login.css"> 14</head> 15<body> 16<header> 17 18<div class="login"><a href="login.php">ログイン</a></div> 19</header> 20<main> 21<form action="mypage.php" method="post"> 22<div class="form_contents"> 23<div class="mail"> 24<label>メールアドレス</label><br> 25<input type="text" class="formbox" size="40" value="<?php if(!empty($_POST['login_keep'])){ echo $_COOKIE['mail'];}?>" name="mail"> 26</div> 27<div class="password"> 28<label>パスワード</label><br> 29<input type="password" class="formbox" size="40" value="<?php if(!empty($_POST['login_keep'])){echo $_COOKIE['password'];} ?>" name="password"> 30</div> 31<div class="login_check"> 32<lavel><input type="checkbox" class="formbox"size="40"name="login_keep"value="login_keep" 33<?php 34if(isset($_COOKIE['login_keep'])){ 35 echo"checked='checked'"; 36} 37?>ログイン状態を保持する</label> 38</div> 39<div class="loginbutton"> 40<input type="submit" class="submit_button" size="35" value="ログイン"> 41</div> 42</div> 43</form> 44</main> 45</body> 46</html>

該当のソースコード

ログインエラー login_err.php

php

1 2<?php 3session_start(); 4if(isset($_SESSION['id'])){ 5header("Location:mypage.php"); 6} 7?> 8 9<!DOCTYPE HTML> 10<html lang="ja"> 11<head> 12<meta charset="UTF-8"> 13<title>マイページ登録</title> 14<link rel="stylesheet" type="text/css" href="login_error.css"> 15</head> 16<body> 17 18<header> 19 20<div class="login"><a href="login.php">ログイン</a></div> 21</header> 22<main> 23<form action="mypage.php" method="post"> 24<div class="form_contents"> 25<div class="error_message">メールアドレスまたはパスワードが間違っています。</div> 26<div class="mail"> 27<label>メールアドレス</label><br> 28<input type="text" class="formbox" size="40" value="" name="mail"> 29</div> 30<div class="password"> 31<label>パスワード</label><br> 32<input type="password" class="formbox" size="40" value="" name="password"> 33</div> 34<div class="login_check"> 35<label><input type="checkbox" class="formbox"size="40"name="login_keep"value="login_keep"></label> 36</div> 37<div class="loginbutton"> 38<input type="submit" class="submit_button" size="35" value="ログイン"> 39</div> 40</div> 41</form> 42</main> 43</body> 44</html> 45

該当のソースコード

マイページ mypage.php

php

1<?php 2mb_internal_encoding("utf8"); 3session_start(); 4 5if(empty($_SESSION['id'])){ 6try{ 7$pdo = new PDO("mysql:dbname=izawa_akemi;host=localhost;","root",""); 8}catch(PDOException $e){ 9die("<p>申し訳ございません。現在サーバーが混み合っており一時的にアクセスが出来ません。<br>しばらくしてから再度ログインをしてください。</p> 10<a href='http://localhost/login_mypage/login.php'>ログイン画面へ</a>" 11); 12} 13 14 15$stmt = $pdo->prepare("select * from login_mypage where mail = ? && password = ?"); 16$stmt->bindValue(1,$_POST["mail"]); 17$stmt->bindValue(2,$_POST["password"]); 18$stmt->execute(); 19$pdo = NULL; 20while($row=$stmt->fetch()){ 21$_SESSION['id']=$row['id']; 22$_SESSION['name']=$row['name']; 23$_SESSION['mail']=$row['mail']; 24$_SESSION['password']=$row['password']; 25$_SESSION['picture']=$row['picture']; 26$_SESSION['comments']=$row['comments']; 27} 28if(empty($_SESSION['id'])){ 29header("Location:login_error.php"); 30} 31if(!empty($_POST['login_keep'])){ 32 $_SESSION['login_keep']=$_POST['login_keep']; 33} 34} 35if(!empty($_SESSION['id'])&&!empty($_SESSION['login_keep'])){ 36setcookie('mail',$_SESSION['mail'],time()+60*60*24*7,); 37setcookie('password',$_SESSION['password'],time()+60*60*24*7); 38setcookie('login_keep',$_SESSION['login_keep'],time()+60*60*24*7); 39 40}else if(empty($_SESSION['login_keep'])){ 41 setcookie('mail','',time()-1); 42 setcookie('password','',time()-1); 43 setcookie('login_keep','',time()-1); 44} 45?> 46 47<!DOCTYPE html> 48<html lang="ja"> 49<head> 50<meta charset="UTF-8"> 51<title>マイページ登録</title> 52<link rel="stylesheet" type="text/css" href="mypage.css"> 53</head> 54 55<body> 56<header> 57<div class="logout"><a href="log_out.php">ログアウト</a></div> 58</header> 59<main> 60<div class="box"> 61<h2>会員情報</h2> 62<div class="hello"> 63<?php echo "こんにちは! ".$_SESSION['name']."さん"; ?> 64</div> 65<div class="profile_pic"> 66<img src="<?php echo $_SESSION['picture']; ?>"> 67</div> 68<div class="basic_info"> 69<p>氏名: 70<?php echo $_SESSION['name']; ?> 71</p> 72<p>メール: 73<?php echo $_SESSION['mail']; ?> 74</p> 75<p>パスワード: 76<?php echo $_SESSION['password']; ?> 77</p> 78</div> 79<div class="comments"> 80<?php echo $_SESSION['comments']; ?> 81</div> 82<form action="mypage_hensyu.php" method="post" class="form_center"> 83<input type="hidden" value="<?php echo rand(1,10);?>" name="from_mypage"> 84<div class="hensyubutton"> 85<input type="submit" class="submit_button" size="35" value="編集する"> 86</div> 87</form> 88</div> 89</main> 90</body> 91</html>

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

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

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

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

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

guest

回答1

0

自己解決

login.phpの下記に記載したコードでやり直した結果、無事に解決できました。

php

1<label>メールアドレス</label><br> 2<input type="text" class="formbox" size="40" value="<?php if(isset($_COOKIE['login_keep'])){ echo $_COOKIE['mail'];}?>" name="mail"> 3</div> 4<div class="password"> 5<label>パスワード</label><br> 6<input type="password" class="formbox" size="40" value="<?php if(isset($_COOKIE['login_keep'])){echo $_COOKIE['password'];} ?>" name="password"> 7</div>

投稿2020/05/26 12:30

sodium_chem

総合スコア2

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問