私の iPhone 3GS では問題なく動作しますが、iPhone 4 以降を使用している何人かの従業員は、ログイン資格情報が $_SESSION に保存されていないため、サファリ経由で私のサイトにログインできません。Chrome を自分の携帯電話にダウンロードすると機能します。
これを機能させる方法はありますか?
ユーザーがログインを試みると、最初に認証情報が正確であることが検証され、認証されると次の宛先に送信されます。
validate_login.php
<?php
session_start();
// sent from the login form
// employee id and username
$employeeId = $_POST['employee_id'];
$password = $_POST['password'];
//make connection to database, bail if no connection
$connection = odbc_pconnect('workorders','','');
if (!$connection) { exit("Connection Failed: " . $connection); }
//retrieve usernames and passwords
$sql = "SELECT * FROM LoginTable WHERE EmployeeID='$employeeId' and Password='$password'";
$rs = odbc_exec($connection, $sql);
if (!$rs) { exit("Error in SQL"); }
if(odbc_fetch_row($rs)) {
// register employeeId and password in session cookie and redirect to homepage
$_SESSION['employee_id'] = $employeeId;
header("location:../../home.php");
}
else {
header("location:../../login.php?error=0");
}
//close connection
odbc_close($connection);
?>
これはあなたができる限り簡単です...なぜそれが機能しないのでしょうか?ログインしているすべてのページの上部でチェックを行うと、次のようになります。
<?php
session_start();
//validate user logged in; if not, redirect to login
if(!isset($_SESSION['employee_id'])){
header("location:login.php");
}
?>
ログインしていないと判断し、login.php に戻します。
繰り返しますが、これは私が知る限り、新しい iPhone の Safari の問題です。提案?