初めて自分の家と他人の家が違う、と意識した時

PHPのセッションについて

現在ログインフォームを作成しているのですが、
ログインフォームからIDとパスワードを送信して、合っていれば
セッションを発行してロケーションで飛ばそうと思っているのですが、

初回時にIDとパスワードを入力して送信しても、セッションが引き継がれず
2回目以降だとセッションが引き継がれる症状に悩んでおります。


どなたかご教授ください。
宜しくお願いいたします。

【login.php】--------------------------------
<?php
session_name("stock");
session_start();
$error_flag = 0;
if(isset($_POST["login"])){
$id = htmlentities($_POST["id"],ENT_COMPAT);
$password = trim(htmlentities($_POST["password"],ENT_COMPAT));
if($login_id == $id && $login_pass == $password){
$_SESSION["id"] = $id;
$_SESSION["password"] = $password;
header("Location:stock.php");
exit;
}else{
$error_flag = 1;
}
}
echo <<<EOD
<form method="post" action="login.php" id="login">
<input type="text" name="id" id="id" >
<input type="password" name="password" id="password">
<input type="submit" name="login" value="ログイン" />
</form>
EOD;

【stock.php】---------------------------------
<?php
session_name("stock");
session_start();
echo $_SESSION["id"];
echo $_SESSION["password"];
?>

A 回答 (1件)

ためしに値を入れてみました、正常に動くようです。



【login.php】
<?php
session_name("stock");
session_start();

/*試しに値を決める*/
$login_id=a;
$login_pass =a;

$error_flag = 0;
if(isset($_POST["login"])){
$id = htmlentities($_POST["id"],ENT_COMPAT);
$password = trim(htmlentities($_POST["password"],ENT_COMPAT));
if($login_id == $id && $login_pass == $password){
$_SESSION["id"] = $id;
$_SESSION["password"] = $password;
header("Location:stock.php");
exit;
}else{
$error_flag = 1;
}
}
echo <<<EOF
<form method="post" action="login.php" id="login">
<input type="text" name="id" id="id" >
<input type="password" name="password" id="password">
<input type="submit" name="login" value="ログイン" />
</form>
EOF;

?>

【stock.php】
<?php
session_name("stock");
session_start();
echo $_SESSION["id"];
echo $_SESSION["password"];
?>
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報