私は、作業しているログインページに影響を与えるかなり厄介なIE8の問題を明らかにしました。ログインフォームは、FF(3.6 - MAC & PC)、Chrome、Safariで正常に動作していますが、IE8でUN/PWを提出すると最新版に相当します。間違いなく、私の顔を見る空白の形。ログインページPHP - IE8で動作しないログインフォーム
PHPコード:
<?php
session_name('tzLogin');
session_set_cookie_params(2*7*24*60*60);
session_start();
error_reporting(E_ALL^E_NOTICE);
define('INCLUDE_CHECK',true);
include 'includes/connect.php';
if(isset($_GET['logoff']))
{
$_SESSION = array();
session_destroy();
header("Location: login.php");
exit;
}
?>
最後に、フォームコード::(着陸)ページ 'ダッシュボード' に関する
<?php
define('INCLUDE_CHECK',true);
include 'includes/connect.php';
session_name('tzLogin');
session_set_cookie_params(2*7*24*60*60);
session_start();
if($_SESSION['id'] && !isset($_COOKIE['tzRemember']) && !$_SESSION['rememberMe'])
{
$_SESSION = array();
session_destroy();
}
if(isset($_GET['logoff']))
{
$_SESSION = array();
session_destroy();
header("Location: login.php");
exit;
}
if($_POST['submit']=='Login')
{
$err = array();
if(!$_POST['username'] || !$_POST['password'])
$err[] = 'Sorry, all the fields must be completed.';
if(!count($err))
{
$_POST['username'] = mysql_real_escape_string($_POST['username']);
$_POST['password'] = mysql_real_escape_string($_POST['password']);
$_POST['rememberMe'] = (int)$_POST['rememberMe'];
$row = mysql_fetch_assoc(mysql_query("SELECT id,usr,permission,fullName FROM adidas_members WHERE usr='{$_POST['username']}' AND pass='".md5($_POST['password'])."'"));
if($row['usr'])
{
$_SESSION['usr']=$row['usr'];
$_SESSION['id'] = $row['id'];
$_SESSION['fullName'] = $row['fullName'];
$_SESSION['permission'] = $row['permission'];
$_SESSION['rememberMe'] = $_POST['rememberMe'];
setcookie('tzRemember',$_POST['rememberMe']);
}
else $err[]='Opps, wrong username and/or password.';
}
if($err)
$_SESSION['msg']['login-err'] = implode('<br />',$err);
header("Location: dashboard.php");
exit;
}
else {
}
$script = '';
?>
ログイン関連のコード
<form action="" method="post" class="contactForm" id="loginForm">
<?php
if($_SESSION['msg']['login-err'])
{
echo '<div class="error">'.$_SESSION['msg']['login-err'].'</div>';
unset($_SESSION['msg']['login-err']);
}
?>
<table class="loginTable" cellspacing="0">
<tr>
<th width="50"><label for="username">Username:</label></th>
<td><input type="text" name="username" id="username" class="validate[required] textBox" /></td>
</tr>
<tr>
<th><label for="password">Password:</label></th>
<td><input type="password" name="password" id="password" class="validate[required] textBox" /></td>
</tr>
<tr>
<th></th>
<td style="padding-top:5px;"><input type="image" src="images/button_login.gif" alt="Login" name="submit" value="Login" /><span class="remember"><input name="rememberMe" id="rememberMe" type="checkbox" checked="checked" value="1" />Remember me</span></td>
</tr>
</table>
</form>
IE8がクッキーをうまく処理しないと私が思いつく/見つけられる唯一のことです。つまり、私はどのクッキーが設定されているかを確認するためにチェックして、私はtzLoginは(年齢の古い有効期限がある)と言います。
注:私のログインページでは、この欲求不満を助けることができる誰かを願ってhttp://tutorialzine.com/2009/10/cool-login-system-php-jquery/
>オフこの基づいています!
rrfive
ブリリアント!ありがとう@theScrumMeister! – rrfive
これは正しい解決策ですが、私はjavascriptの解決策を考えていますが、長期的には面倒さが少なくて済むからです。 IEのみで隠れた入力を注入すると、他の正常なブラウザのDOMもダーティになりません。 プログレッシブ破壊。 – twicejr