никак немогу понять почему после разлогиневания не получается авторизироватся повторно, приходится чистить куки и только тогда авторизация работает снова
вот код проверки логина
# Авторизация
session_set_cookie_params(1800,"/");
session_start();
print_r($_SESSION);
print_r($_COOKIE);
if (!$mPartner->CheckLogin())
{
$no_header = true;
$content = '
<h1>Не можете войти?</h1><br />
<p>Можете зарегистрироваться в партнёрской программе.</p>
<p><a href="new.php" class="btn btn-primary btn-large">Перейти к регистрации</a></p>
<br /><br />
<p>Или восстановить пароль, если вы его потеряли.</p>
<p><a href="restore.php" class="btn btn-primary">Восстановление пароля</a></p>';
include_once dirname(__FILE__) . '/../design/partnerCreate.tpl.php';
die;
}
/**
* Функция авторизации
*
* @return boolean
*/
public function CheckLogin()
{
global $config;
$login_successful = false;
$logout = (isset($_SESSION['logout'])) ? $_SESSION['logout'] : false;
# Проверка логина и пароля
if (isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW']))
{
$params = array ('email =', 'password =');
$values = array ('\'' . mysqli_real_escape_string($this->mysqli_db, $_SERVER['PHP_AUTH_USER']) . '\'', '\'' . mysqli_real_escape_string($this->mysqli_db, $_SERVER['PHP_AUTH_PW']) . '\'');
$search_type = array ('AND');
$result = $this->mDB->SearchItemsByParamArray('partner', $params, $values, $search_type);
if ($result == true && $logout != true)
{
$_SESSION['id_partner'] = $result[0]['id_partner'];
$login_successful = true;
}
}
# Если юзер не залогинен
if (!$login_successful)
{
# Форма авторизации
header('WWW-Authenticate: Basic realm="Enter login and password"');
header('HTTP/1.0 401 Unauthorized');
}
else
{
return true;
}
}
public function Login($login, $password)
{
global $config;
$login = trim($login);
$password = trim($password);
# проверка пароля
if (md5($password) != $config['partner']['password'] || $login != $config['partner']['login'])
return false;
# открытие сессии
session_start();
$_SESSION['is_partner'] = true;
$_SESSION['logout'] = false;
unset($_SESSION['logout']);
return true;
}
}
а это код разлогиневания
session_start();
$_SESSION['logout'] = true;
$_SESSION['id_partner'] = false;
unset($_COOKIE["PHPSESSID"]);
setcookie("PHPSESSID", "", time() - 100);
header('Location: index.php');
причем куки так и не удаляются почему-то
UP: попробовал так:
session_destroy();
header('Location: index.php');
после перенапавления на index.php команда: print_r($_SESSION); выдает следующее:
Array
(
[id_partner] => 5
)
Цитата:
session_destroy();
header('Location: index.php');
Функция session_destroy уничтожает все данные, связанные с текущей сессией, но не удаляет какие-либо глобальные переменные, связанные с сессией и не удаляет сессионные cookie.
Попробуйте использовать session_unset
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости