Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вход по паролю, На локальном работает а на хосте - нет. 
:(
    Опции темы
goltara
Дата 20.4.2008, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 4.4.2008

Репутация: нет
Всего: нет



Скрипт писал не я , но адаптировал его к своей админке чтоб вход туда закрыть паролем. На локальном диске все работает отлично , а как только перенес на хост - не открывает админки, после ввода пароля и логина снова открывается окно для ввода пароля и просит ввести пароль.
Где тут ошибка ? Второй день мучаюсь , все перепроверил , но вроде бы все правильно, а работать отказывается.
Код

<?php
include("blocks/bd.php");/*Подключаюсь к базе*/
if (!isset($_SERVER['PHP_AUTH_USER']))

{
        Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
        Header ("HTTP/1.0 401 Unauthorized");
        exit();
}

else {
        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']);
        }

        $query = "SELECT pass FROM userlist WHERE user='".$_SERVER['PHP_AUTH_USER']."'";
        $lst = @mysql_query($query);

        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 ($_SERVER['PHP_AUTH_PW']!= $pass['pass'])
        {
            Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
           Header ("HTTP/1.0 401 Unauthorized");
           exit();
        }


}
?>

PM MAIL   Вверх
Feldmarschall
Дата 20.4.2008, 19:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



Цитата(goltara @  20.4.2008,  11:40 Найти цитируемый пост)
все перепроверил 

А можно спросить, что конкреьно ты перепроверил, и как именно проверял?
PM   Вверх
goltara
Дата 20.4.2008, 19:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 4.4.2008

Репутация: нет
Всего: нет



Проверил существует ли таблица в базе , правильно ли там указан пароль , названия полей и т.д.
Где еще может быть ошибка?
PM MAIL   Вверх
Feldmarschall
Дата 20.4.2008, 19:44 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



где угодно.
при соединении с базой. на диске сервера. в канале у провайдера.
Ошибка может быть где угодно. 
Поэтому путь "где может быть ошибка" - тупиковый. Её надо искать не там, где она может быть, а там, где она есть.

Вот у тебя код начинается со строки (!isset($_SERVER['PHP_AUTH_USER']))
Ты проверил - у тебя эта строка выполняется? $_SERVER['PHP_AUTH_USER'] set? 


Дальше. у тебя есть код $query = "... который формирует запрос для БД. 
Ты проверил - запрос формируется, как надо?

следующая строка, $lst = @mysql_query($query); Выполнение запроса.
Ты проверил - этот запрос выполняется? Без ошибок? 

Дальше ещё много проверок. Все их надо проверить - выполняются ли, какое значение имеют операнды. Если не то, которое ожидается, то разбираться - почему.

Вот это называется "все перепроверил".
PM   Вверх
goltara
Дата 20.4.2008, 19:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 4.4.2008

Репутация: нет
Всего: нет



Понял. Спасибо . Иду работать.
PM MAIL   Вверх
NNaarreekk
Дата 20.4.2008, 20:23 (ссылка)  | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 768
Регистрация: 23.6.2007
Где: Армения

Репутация: 0
Всего: 3



По личному опыту говорю, после каждого if или else поочередно пишешь  die('1');

Где не напишется там и проблема ;)
PM MAIL WWW   Вверх
goltara
Дата 20.4.2008, 22:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 4.4.2008

Репутация: нет
Всего: нет



Цитата(NNaarreekk @ 20.4.2008,  20:23)
По личному опыту говорю, после каждого if или else поочередно пишешь  die('1');

Где не напишется там и проблема ;)

А можно пример на коде какой оно должно иметь вид.
PM MAIL   Вверх
goltara
Дата 28.4.2008, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 4.4.2008

Репутация: нет
Всего: нет



Прошло не мало времени с возникновения проблемы , но решить ее не удалось. Перерыл много матерриала и кажется приблизился к " корню зла" . Оказывается  HTTP-Аутентификация в  PHP  возможна только в том случае, когда он выполняется как модуль веб-сервера Apache, и, соответственно, недоступна для CGI-версии. А как узнать как выполняется  PHP на моем хосте. Может тупой вопрос, но новичку , я надеюсь , вы простите.
PM MAIL   Вверх
Feldmarschall
Дата 28.4.2008, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



phpinfo() -> server API.

мне другое интересно
неделю назад я написал:
Цитата(Feldmarschall @  20.4.2008,  19:44 Найти цитируемый пост)
Вот у тебя код начинается со строки (!isset($_SERVER['PHP_AUTH_USER']))
Ты проверил - у тебя эта строка выполняется? $_SERVER['PHP_AUTH_USER'] set? 

неужела столько времени ты ты проверял, установлена ли у тебя эта переменная?


PM   Вверх
goltara
Дата 28.4.2008, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 4.4.2008

Репутация: нет
Всего: нет



Цитата(Feldmarschall @ 28.4.2008,  13:48)
phpinfo() -> server API.

мне другое интересно
неделю назад я написал:
Цитата(Feldmarschall @  20.4.2008,  19:44 Найти цитируемый пост)
Вот у тебя код начинается со строки (!isset($_SERVER['PHP_AUTH_USER']))
Ты проверил - у тебя эта строка выполняется? $_SERVER['PHP_AUTH_USER'] set? 

неужела столько времени ты ты проверял, установлена ли у тебя эта переменная?


Я же только учусь ! Зато сколько полезного узнал пока добрался до этого места . только так и можно научиться когда все по кусочкам собираеш. А за подсказу спасибо. Вот только где писать это   phpinfo() -> server API. надо ?

Это сообщение отредактировал(а) goltara - 28.4.2008, 14:08
PM MAIL   Вверх
Feldmarschall
Дата 28.4.2008, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



phpinfo() - это функция. писать в пхп скрипте.
PM   Вверх
goltara
Дата 28.4.2008, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 4.4.2008

Репутация: нет
Всего: нет



Так и есть , ответ сервера : "Server API  CGI".
Как теперь обойти эту проблему если использовать .htaccess и .htpasswd не очень удобно ???


Это сообщение отредактировал(а) goltara - 28.4.2008, 14:19
PM MAIL   Вверх
Feldmarschall
Дата 28.4.2008, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



это проверяет вторая строчка твоего кода.

учите английский в школе. ОЧЕНЬ помогает в программировании.

Добавлено через 25 секунд
используй сессии.
PM   Вверх
goltara
Дата 28.4.2008, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 4.4.2008

Репутация: нет
Всего: нет



Цитата(Feldmarschall @ 28.4.2008,  14:21)

используй сессии.

Спасибо. Пойдем в этом направлении.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1398 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.