#phpでログイン処理実装中に詰まりました....
$_SESSION
にログイン情報を保存し、別のページでそれを読んでページを表示
するかログイン画面に飛ばすか
を判断する処理を書いていますが、$_SESSION
に情報を書き込んだつもりでも、ログインページ
に飛ばされてしまいます。
login.php(一部略)
php
1<?php 2if(isset($_POST["login"])){ 3$_SESSION["user"] = "user"; 4header("Location:https://〇〇〇〇/home.php"); 5exit(); 6} 7?>
home.php(一部略)
php
1<?php 2session_start(); 3if(!isset($_SESSION["user"])){ 4 header("Location:https://〇〇〇〇.login.php"); 5 exit; 6} 7?>
このようになっています。
login.phpの方でセッションのuserにuserを書き込んでいるにもかかわらず、home.phpの方ではログイン出来ずに、login.phpに戻されてしまいます。
まだ、どちらのファイルに問題があるのかすら分かっていません。
login.phpでセッションに書き込んで、home.phpで読み込み、ログインする処理をするために、どの部分を直せばいいか教えて下さい。
#追記
##サーバー上のファイルはこのようになっています。
→:フォルダ ・:ファイル →file ・index.php ・〇〇.css →home ・index.php
##コピペのみで再現できるファイルを作成しました。
▼index.php
php
1<?php 2if(isset($_POST["login"])){ 3 if($_POST["user_id"] == "test_id" && $_POST["password"] == "test_password"){ 4 $_SESSION["user"] = "user"; 5 header("Location:home.php"); 6 exit(); 7 } 8 $message = "ミス"; 9} 10?> 11<!doctype html> 12<html lang="ja"> 13<head> 14<meta charset="UTF-8"> 15<title>test</title> 16</head> 17<header> 18</header> 19<body> 20<?php 21if($message){ 22 echo "<div class=text>$message</div>"; 23} 24?> 25 26<form action="index.php" method="POST"> 27 <p class="text">ID:<input type="text" name="user_id"></p> 28 <p class="text">Password:<input type="password" name="password"></p> 29 <input type="submit" name="login" value="login"> 30</body> 31</html>
▼home.php
php
1<?php 2session_start(); 3if(!isset($_SESSION["user"])){ 4 header("Location:index.php"); 5 exit; 6} 7?> 8<!doctype html> 9<html lang="ja"> 10<head> 11<meta charset="UTF-8"> 12<title>test</title> 13</head> 14<header> 15</header> 16<body> 17成功 18</body> 19</html>
回答1件
あなたの回答
tips
プレビュー