никак немогу понять почему после разлогиневания не получается авторизироватся повторно, приходится чистить куки и только тогда авторизация работает снова
вот код проверки логина
# Авторизация
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
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Всем привет, есть уже давно слитый код горизонтальной рулетки, вопрос в том как мне после нажатия кнопки сделать так чтобы её нельзя было...
Каким образом можно выбрать данные из БД путем ввода цифры, после которой будут выбираться данные
Ошибка из сабжа появляется при попытки рендеринга xls файлаНасколько я понимаю это ошибка из-за того что ячейки из excel документа не влезают...
Использую CIУ меня есть папка projects в корне, где находятся папки с проектами к каждой которой есть файл index