これはphpセッションの問題です..ユーザーが複数回ログインできる場所..同じ/異なる資格情報を持つ同じブラウザで..
1) User1 がログイン..
2) User1 新しいタブで LoginIndex.php を開こうとします..
3) 以前にログインしたページ (User1 がログインした) ではなく、LoginIndex.php ページを表示しています...
4)User1が同じ/異なる資格情報で再度ログインすることを受け入れる..同じブラウザで
ログイン値を再度取得する理由がわかりません..
これは LoginViewController.php のスニペットです
<?php
if (!isset($_POST['submit']))
{
?>
<html>
<table align="center">
<tr>
<td>
<input class="input" type="text" name="uname" id="uid" placeholder="Username" >
</td>
</tr>
<tr>
<td>
<input class="input" type="password" name="pwd" id="pid" placeholder="Password" >
</td>
</tr>
<tr>
<td> <input type="submit" name="submit" value="" > </td>
</tr>
</table>
<?PHP
}
else
{
//If you are submitting the form insert the details into database
$Username = $_POST['uname'];
$Password = $_POST['pwd'];
session_start();
If (!(empty($Username) && empty($Password)))
{
$model = new UsersModel();
$rowsCount = $model->checkUser($Username,$Password,$User_Type);
if ($rowsCount!=0)
{
$_SESSION['user'] = $Username;
header("location:loggedin.php");
} else
{
echo '<script type="text/javascript">alert("Enter username and password correctly");
window.location.href="LoginViewController.php";</script>';
}
}
}
?>
ここに私が取り組んでいるlogged-in.phpコードがあります...
<?php
header("Cache-Control: private, must-revalidate, max-age=0");
header("Pragma: no-cache");
header("Expires: Fri, 4 Jun 2010 12:00:00 GMT");
include('GenericClasses/GenericCollectionClass.php');
include('Models/UsersModel.php');
include('DataObjects/Users.php');
include('DatabaseAccess/DBHandler.php');
session_start();
if(!isset($_SESSION['user']))
{
header('Location: LoginViewController.php');
exit();
}
echo '"<div style="background:white; text-align:right"> Login as:'.$_SESSION['user'].'
<a href="LogoutViewController.php" style="text-align:right">Logout</a></div>"';
?>
どんな提案でも受け入れられます...