|
|
|
|
|
для: Keks
(15.09.2008 в 15:52)
| | исправил код, перезалил на два сервера (3eu.ru и jino-net.ru), авторизация работает, спасибо за помощь! на 3eu.ru работает нормально, а вот на джино-нет.ру что-то не то! сначала выдает страницу, на которой написано, что авторизация пройдена и вы сейчас будете перемещены (даже меню авторизированного пользователя есть), а при переходе на другую страницу (т.е. при обновлении страницы) вся "авторизованность" как-будто теряется! словно я и не проходил авторизацию, снова форма вверху каждой страницы рисуется! не знаете, из за чего?
повторюсь, это только на джино-нет такая байда.... | |
|
|
|
|
|
|
|
для: Trianon
(15.09.2008 в 15:43)
| | ну они там не определены потому, что вытаскиваются из базы в самом начале файла global.php, вот код:
<?php
$get_settings = @mysql_query("SELECT * FROM settings WHERE id_user=1");
// Если при запросе произошла ошибка
if (!$get_settings)
{
// то выводим сообщение об ошибке пользователю
mysql_error();
exit;
}
else
{
// если ошибки не произошло,
// то преобразуем результат запроса в переменные
while ($settings = mysql_fetch_array($get_settings))
{
// Логин и пароль пользователя
$login = $settings['login'];
$passw = $settings['passw'];
}
}
?>
|
не удивляйтесь, что логин и пароль запрашиваются из таблицы settings, просто сайт рассчитан только на одного зарегистрированного пользователя, и регистрация происходит сразу при установке скрипта на сервер.
P.S. в файле authorization.php форма и не должна выводиться, в этом файле только проверка осущесвляется | |
|
|
|
|
|
|
|
для: Keks
(15.09.2008 в 15:37)
| | в строке if (!check_auth($login, $password))
обе переменные не определены.
И как результат,если в $_COOKIE['login'] и $_COOKIE['password'] окажутся сравнимые с нулем значения (false или нули, к примеру) - форма выведена не будет .
А если кроме формы не выводилось вообще ничего, то при заблокированных нотайсах мы увидим пустую страницу. | |
|
|
|
|
|
|
|
для: Trianon
(15.09.2008 в 14:26)
| | вот код формы:
<?php
// инициируем сессию
session_start();
// Функция, которая проверяет, авторизирован ли пользователь блога
function check_auth ($login, $password)
{
// Проверяем, авторизирован ли пользователь в этой сессии
if (isset($_SESSION['auth']))
{
if ($_SESSION['auth'] == "yes") return $check = true;
else return $check = false;
}
// если нет, то проверяем куки
elseif (isset($_COOKIE['login']) && isset($_COOKIE['password']))
{
if ($_COOKIE['login'] == $login && $_COOKIE['password'] == $password) return $check = true;
else return $check = false;
}
// иначе возвращаем отрицательный результат проверки
else
{
return $check = false;
}
}
if (!check_auth($login, $password))
{
echo "<form action='./authorization.php' method='post'>
<div>Логин:</div>
<div><input type='text' maxlength='32' name='login'></div>
<div>Пароль:</div>
<div><input type='password' maxlength='32' name='passw'></div>
<div><input type='checkbox' name='setcookie'>Запомнить меня</div>
<input type='hidden' name='sid' value='".session_id()."'>
<div><input type='submit' value='Войти'></div>
</form>";
}
?>
|
ну этот код находится в файле global.php, который во все остальные посредством require_once() вставляется. | |
|
|
|
|
|
|
|
для: mihdan
(15.09.2008 в 14:42)
| | Это ответ на Ваше предложение. | |
|
|
|
|
|
|
|
для: Trianon
(15.09.2008 в 14:40)
| | Согласен с вами
>А статьей бороться с книгой (и не одной) которую, не исправляя, повторно переиздают - бессмысленно.
Это я понял камень в огород cheops'a | |
|
|
|
|
|
|
|
для: mihdan
(15.09.2008 в 14:33)
| | Жевано-пережевано двадцать раз.
Сам подход "фильтровать всё без разбора чем-то единым" - порочен.
Сухой остаток оформлен в 21-ю задачу. Примеры решения присутствуют.
А статьей бороться с книгой (и не одной) которую, не исправляя, повторно переиздают - бессмысленно. | |
|
|
|
|
|
|
|
для: Trianon
(15.09.2008 в 14:26)
| | Давно уже пора вам маленькую статейки кидануть, а то что-то часто этот вопрос возникает "что как и где фильтровать и чем и зачем" | |
|
|
|
|
|
|
|
для: Keks
(15.09.2008 в 11:32)
| | тем, что его применили не там, где требуется.
Вы хотите знать, почему Ваш код не работает.
Я пытаюсь разобраться, как он работает.
И если вижу непонятные куски - спрашиваю у Вас: зачем здесь это?
Форму с этим самым скрытым полем Вы не показали.
Как мне определить, что у Вас там в поле осталось? | |
|
|
|
|
|
|
|
для: Trianon
(15.09.2008 в 09:45)
| | нашел на этом сайте в статье "безопасное программирование на php" кусок кода авторизации с mysql, так вот у меня все почти так же как и там. а чем использование htmlspecialchars в данном случае плохо? | |
|
|
|
|