セッションをログインについて
はじめまして。
今、セッションを使ったログインのページを作っています。
流れは、
1.ログインページでIDとパスワードを入力。
2.入力したID・パスワードがあらかじめMysqlに保存してあったのと一致していたら会員ページに移動。
3.セッションにID・パスワードを保存してブラウザを閉じない限り、次回はログイン無しで会員ページに直接いけるようにする。セッションに保存されてないときはログインページにもどす。
以上の流れにそってプログラムを作りました
しかし1・2は上手くいったのですが3の部分がうまくいきません。セッションにIDとパスワードを保存することができてるようなのですが、ブラウザを閉じずに、いったん別にページに行き、もう一度会員ページにもどろうとすると、ログインページ戻されてしまい、もう一度ログインしなければいけません。
以下に今回のプログラムを書きました。このプログラムのどこを直せば、いいのかお分かりになる方いらっしゃいましたらアドバイスのほうよろしくお願いします。
使用環境は
PHP 5.2.5(xampp使用)
MySQL 5.0.51a
register_globals = Onになっています。
/*ログインページは省略しました。パスワードとユーザーIDを入力してこのページに飛びます。*/
<?php
function redirect($url)
{
header("Location: ".$url);
exit;
}
session_start();
/*保存していたセッションが存在するか確認なければログインのページにもどす。$_SESSION['username']) の部分を$_POST…にしたのですがそれでも結果は同じでした。*/
if(empty($_SESSION['username']) || empty($_SESSION['password'])) redirect("loginpage.php");
$user = $_POST['username'];
$pass = md5($_POST['password']);
/*Mysqlへ接続。セッションの問題が解決したらMysql用のクラスを作る予定です。*/
$dbHost = "localhost";
$dbUser = "*****";
$dbPass = "******";
$dbDatabase = "mysql";
$db = mysql_connect("$dbHost", "$dbUser", "$dbPass") or die ("Error connecting to database.");
mysql_select_db("$dbDatabase", $db) or die ("Couldn't select the database.");
$result=mysql_query("select * from users where username='$user' AND password='$pass'", $db);
$rowCheck = mysql_num_rows($result);
/*ID・パスワードが間違ってたら、ログインページに戻す。*/
if(empty($rowCheck)) redirect("loginpage.php");
$row = mysql_fetch_array($result);
/*IDとパスワードをセッションに保存*/
$_SESSION['username'] = $user;
$_SESSION['password'] = $pass;
if($rowCheck > 0)
{
while($row = mysql_fetch_array($result))
{
}
/*ログイン成功したら会員ページを表示。*/
echo "Login Succeeded!".$_SESSION['username'];/*←セッションに保存されてるかのテスト。ちゃんと表示されました*/
include("C:/xampp/htdocs/cvptoylibrary.com.au/assets/includes/link1.php");
include("C:/xampp/htdocs/cvptoylibrary.com.au/assets/includes/link3.php");
}
else
{
/*ID・パスワードを間違えてたらログインページに戻す。*/
echo 'Incorrect login name or password. Please try again.';
redirect("loginPage.php" );
}
?>