У меня есть система входа в систему, которая проходит аутентификацию через сеанс php. Мой клиент говорит, что логин теперь не работает, когда я переместил сайт на новый сервер. Но только когда он использует IE 8. Я не смог воспроизвести эти проблемы.
Что еще более странно, так это то, что все работает на предыдущем хосте. Я не понимаю, является ли это проблемой браузера, изменением сервера или чем-либо еще.
Есть ли какие-либо проблемы с информацией? Я думал, что это может быть проблема с заголовком («местоположение»), но, похоже, она работает на предыдущем хосте.
Любая помощь оценивается
Код входа – это (он продолжает возвращать мой клиент index.php? Недействителен, хотя он говорит, что вводит правильные данные для входа, и я могу получить доступ без проблем.
<?php require('includes/functions.php'); require('includes/db.php'); $user=clean($_POST[user]); $pass=clean($_POST[pass]); $qry="SELECT id FROM table WHERE userfield='$user' AND passwordfield='".md5($pass)."'"; $result=mysql_query($qry); if(mysql_num_rows($result)>0) { //Login Successful //Regenerate session ID to //prevent session fixation attacks session_start(); session_regenerate_id(); $result=mysql_fetch_assoc($result); $_SESSION['USER']=$result['id']; //Write session to disc session_write_close(); header("location: success.php"); exit(); } header("location: index.php?invalid"); ?>
Да, IE8 имеет эту проблему с кукисами сеансов, особенно при использовании перенаправления. Попробуйте поставить session_set_cookie_params(0);
перед началом сеанса – это гарантирует, что cookie сеанса не истечет, пока браузер не будет закрыт.