Я только что обнаружил довольно раздражающую проблему IE8, затрагивающую страницу входа в систему, с которой я работаю.Форма входа работает правильно в FF (3.6 - MAC & PC), Chrome, Safari, но делает эквивалент обновления, когда вы отправляете UN / PW в IE8.Нет ошибок, просто пустая форма, которая смотрит мне в лицо.
PHP-код на странице входа в систему:
<?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 = '';
?>
Код для входа в систему в '(панель) страницы:
<?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;
}
?>
Наконец, код формы:
<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