実現したいこと
いつもお世話になっております。
ただいまログイン画面を作っていまして、
ログイン画面でDBから持った来たnameをPOSTで、
ログイン後画面に送り(ようこそnameさん)と表示したいです。
現状
ログイン後画面では(ようこそさん)しか表示されずにいます。
画面
ログイン画面
PHP
1<?php 2 // データベース接続の処理 3 4//loginを押されたら 5if(isset($_POST['login'])){ 6 7 $mail = $_POST['mail']; 8 $pass = $_POST['pass']; 9 10try{ 11 12 //SQL文を準備 13 $sql = "SELECT name FROM web1 WHERE mail = ? AND password = ?"; 14 //インジェクション対策 15 $stmt = $pdo->prepare($sql); 16 //バインドする 17 $stmt->bindValue(1,$mail); 18 $stmt->bindValue(2,$pass); 19 //SQLを実行 20 $stmt->execute(); 21 //1行だけ取り出す 22 $user = $stmt->fetch(); 23 24 echo "$user"; 25 26}catch (PDOException $e){ 27 exit(mb_convert_encoding($e->getMessage(),'UTF-8','SJIS-win')); 28} 29 if($mail == null){ 30 $errormessage='※メールアドレスが空白です'; 31 } 32 elseif($pass == null){ 33 $errormessage='※パスワードが空白です'; 34 } 35 elseif($user){ 36 37 $_POST['username'] = $user; 38 39 $pdo = nul; 40 // リダイレクト 41 header("Location: index3.php"); 42 exit(); 43 } 44 else{ 45 $errormessage='※メールアドレスかパスワードが間違えています'; 46 } 47 48 49} 50 51?> 52 53<!DOCTYPE html> 54<html lang="ja"> 55<head> 56<meta charset="utf-8"> 57<title>ログイン画面</title> 58</head> 59<body> 60 61<h1>ログイン</h1> 62 <form method="POST" action=""> 63 <table> 64 <tr> 65 <th>メールアドレス</th> 66 <td><input type="text" name="mail" value="<?=htmlspecialchars($mail);?>"></td> 67 </tr> 68 <tr> 69 <th>パスワード</th> 70 <td><input type="password" name="pass" value=""></td> 71 </tr> 72 <tr> 73 <th><input type="submit" name="login" value="ログイン" ></th> 74 </tr> 75 </table> 76 <span style="color:red;"><?php print htmlspecialchars($errormessage,ENT_QUOTES, "UTF-8"); ?></FONT> 77 </form> 78 79 80</body> 81</html>
ログイン後画面
PHP
1<?php 2 3 $username = $_POST['username']; 4 5?> 6 7<!DOCTYPE html> 8<html lang="ja"> 9<head> 10<meta charset="utf-8"> 11<title>トップページ</title> 12</head> 13<body> 14 15<p>ようこそ<?php print htmlspecialchars($username); ?>さん</p> 16 17</body> 18</html>
自分の思う問題点
echoでSQLを実行した後の$userを表示したが何も表示せれずここが問題だと思ったが調べても分からなかった。
ログインの機能はしっかりと動いています。
回答2件
あなたの回答
tips
プレビュー