|
|
|
| пВообщем взял с сайта http://softtime.ru/info/authorization.php?down=authorization.zip , эти фалый сделал авторизацию через ДЭНВЕР все работало, выложил сайт на рег.ру настроил фаил конфиг тобыш само подключеник базе итд , вылетает окно ввода логина и пароля (по алгоритму туда забил уже логин и парол АДМИН, АДМИН) и в итоге нефига не пускат меня при вводе пароля все перелазел мозги уже на бикрень, думаю может глюк какойнить в файле security_mod.php,
<?php
///////////////////////////////////////////////////
// Система авторизации HTTP-Basic авторизации
// 2003-2005 (C) IT-студия SoftTime (http://www.softtime.ru)
// Симдянов И.В. (simdyanov@softtime.ru)
///////////////////////////////////////////////////
// Устанавливаем соединение с базой данных
require_once("config.php");
// Если пользователь не авторизовался - авторизуемся
if(!isset($_SERVER['PHP_AUTH_USER']))
{
Header("WWW-Authenticate: Basic realm=\"Admin Page\"");
Header("HTTP/1.0 401 Unauthorized");
exit();
}
else
{
// Утюжим переменные $_SERVER['PHP_AUTH_USER'] и $_SERVER['PHP_AUTH_PW'],
// чтобы мышь не проскочила
if (!get_magic_quotes_gpc())
{
$_SERVER['PHP_AUTH_USER'] = mysql_escape_string($_SERVER['PHP_AUTH_USER']);
$_SERVER['PHP_AUTH_PW'] = mysql_escape_string($_SERVER['PHP_AUTH_PW']);
}
$_SERVER['PHP_AUTH_USER'] = str_replace("'","`",$_SERVER['PHP_AUTH_USER']);
$_SERVER['PHP_AUTH_PW'] = str_replace("'","`",$_SERVER['PHP_AUTH_PW']);
$query = "SELECT pass FROM userlist WHERE name='".$_SERVER['PHP_AUTH_USER']."'";
$lst = @mysql_query($query);
// Если ошибка в SQL-запросе - выдаём окно
if(!$lst)
{
Header("WWW-Authenticate: Basic realm=\"Admin Page\"");
Header("HTTP/1.0 401 Unauthorized");
exit();
}
// Если такого пользователя нет - выдаём окно
if(mysql_num_rows($lst) == 0)
{
Header("WWW-Authenticate: Basic realm=\"Admin Page\"");
Header("HTTP/1.0 401 Unauthorized");
exit();
}
// Если все проверки пройдены, сравниваем хэши паролей
$pass = @mysql_fetch_array($lst);
if(md5($_SERVER['PHP_AUTH_PW']) != $pass['pass'])
{
Header("WWW-Authenticate: Basic realm=\"Admin Page\"");
Header("HTTP/1.0 401 Unauthorized");
exit();
}
}
?> | |
|
|
|
|
|
|
|
для: Stariy2014
(09.11.2010 в 09:55)
| | Смотри внимательнее!
На хостинге обычно к названию БД добавляют префикс например если была BD на локальной машине, то на хостинге u4875_BD либо хост не поддерживают POST передачу. | |
|
|
|
|
|
|
|
для: codename
(13.11.2010 в 21:48)
| | чоткий хост еси не поддерживает) | |
|
|
|
|
|
|
|
для: sl1p
(13.11.2010 в 22:02)
| | Если не поддерживает страхуйся таким образом:
if(isset($_POST['login']))
{
$login=$_POST['login'];
}
if(isset($_POST['pass']))
{
$pass=$_POST['pass'];
}
Тобиш, если имеется $_POST['login'] а он передается из формы Логина.
И то же действие с пассом | |
|
|
|
|
|
|
|
для: codename
(13.11.2010 в 22:16)
| | А причем тут вообще POST?
Автору темы:
Вы бы убрали на время установки подавление ошибок, мало ли что, может проблема там(не проходит запрос к базе, например), да и вообще если что-то не работает, то первым делом нужно включать вывод всех ошибок на экран, а дальше по обстоятельствам
у вас случаем платформа не виндоус на хосте, если да то скорей меняйте? :)
По идее это должно работать, если php стоит как модуль апача | |
|
|
|
|
|
|
|
для: Stariy2014
(09.11.2010 в 09:55)
| | РНР отдельно стоит или как модуль Апапче? | |
|
|
|
|
|
|
|
для: mihdan
(14.11.2010 в 01:08)
| | Столкнулся с подобной проблемой. Авторизация отказывается работать на мой взгляд если php как fast cgi. Как обойти данную проблему? | |
|
|
|
|
|
|
|
для: z668
(15.03.2011 в 23:31)
| | Если CGI - нужно переписывать авторизацию, этот режим не поддерживает Basic-авторизацию. Если вызывает затруднение, могу выложить патч для security_mod.php, который преобразует Basic-авторизацию в обычную. | |
|
|
|
|
|
|
|
для: cheops
(15.03.2011 в 23:36)
| | Было бы очень кстати. Спасибо. | |
|
|
|
|
|
|
|
для: z668
(15.03.2011 в 23:37)
| | Замените содржимое файла на следующее
<?php
////////////////////////////////////////////////////////////
// 2003-2011 (C) IT-студия SoftTime (http://www.softtime.ru)
////////////////////////////////////////////////////////////
// Стартуем сессию
@session_start();
if(empty($_SESSION['PHP_AUTH_USER']))
{
$elem['name'] = new field_text_english("name",
"Имя пользователя",
true,
$_POST['name']);
$elem['pass'] = new field_password("pass",
"Пароль",
true,
$_POST['pass'],
255,
41);
$form = new form($elem,
"Войти",
"main_txt",
"",
"input");
if(!empty($_POST))
{
// Проверяем корректность заполнения HTML-формы
// и обрабатываем текстовые поля
$error = $form->check();
// Проверяем зарегистрирован ли пользователь
$query = "SELECT COUNT(*) FROM $tbl_accounts
WHERE name = '{$form->fields[name]->value}'";
if(!query_result($query))
{
$error[] = "Пользователь с именем
"{$form->fields[name]->value}" не существует";
}
// Входим
if(empty($error))
{
$query = "SELECT COUNT(*) FROM $tbl_accounts
WHERE name = '{$form->fields[name]->value}' AND
pass = MD5('{$form->fields[pass]->value}')";
if(query_result($query))
{
$_SESSION['PHP_AUTH_USER'] = $form->fields['name']->value;
}
// Возвращаемся на индексную страницу
header("Location: $_SERVER[REQUEST_URI]");
exit();
}
}
$pagename = "Необходима авторизация";
// Включаем заголовок страницы
require_once("../utils/top.php");
if(is_object($form))
{
// Выводим сообщения об ошибках если они имеются
if(!empty($error)) echo error($error);
// Выводим HTML-форму
$form->print_form();
}
// Включаем завершение страницы
require_once("../utils/bottom.php");
exit();
}
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(15.03.2011 в 23:40)
| | Спасибо | |
|
|
|