Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.68/22: Рейтинг темы: голосов - 22, средняя оценка - 4.68
0 / 0 / 0
Регистрация: 16.10.2013
Сообщений: 25

http авторизация

16.10.2013, 14:20. Показов 4866. Ответов 46
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php
  require_once('connectvars.php');
 
  if (!isset($_SERVER['PHP_AUTH_USER']) || !isset($_SERVER['PHP_AUTH_PW'])) {
    // The username/password weren't entered so send the authentication headers
    header('HTTP/1.1 401 Unauthorized');
    header('WWW-Authenticate: Basic realm="Mismatch"');
    exit('<h3>Mismatch</h3>Sorry, you must enter your username and password to log in and access this page. If you ' .
      'aren\'t a registered member, please <a href="signup.php">sign up</a>.');
  }
 
  // Connect to the database
  $dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
 
  // Grab the user-entered log-in data
  $user_username = mysqli_real_escape_string($dbc, trim($_SERVER['PHP_AUTH_USER']));
  $user_password = mysqli_real_escape_string($dbc, trim($_SERVER['PHP_AUTH_PW']));
 
  // Look up the username and password in the database
  $query = "SELECT id, username FROM mismatch_user WHERE username = '$user_username' AND password = SHA('$user_password')";
  $data = mysqli_query($dbc, $query);
 
  if (mysqli_num_rows($data) == 1) {
    // The log-in is OK so set the user ID and username variables
    $row = mysqli_fetch_array($data);
    $user_id = $row['id'];
    $username = $row['username'];
  }
  else {
    // The username/password are incorrect so send the authentication headers
    header('HTTP/1.1 401 Unauthorized');
    header('WWW-Authenticate: Basic realm="Mismatch"');
    exit('<h2>Mismatch</h2>Sorry, you must enter a valid username and password to log in and access this page. If you ' .
      'aren\'t a registered member, please <a href="signup.php">sign up</a>.');
  }
 
  // Confirm the successful log-in
  echo('<p class="login">You are logged in as ' . $username . '.</p>');
?>
помогите плиз, не пускает на сайт, пример прямо из книги уже скачал, не работает, не могу понять в чем дело
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.10.2013, 14:20
Ответы с готовыми решениями:

HTTP Авторизация
Всем доброго времени суток, написал скрипт для админки, &lt;?php if ($_SERVER != &quot;88.87.70.59&quot;) header (&quot;location:...

File_get_contents failed to open stream: HTTP request failed! HTTP/1.1 505
Ребята подскажите пожалуйста. Использую фреймворк Yii. Пишу небольшой парсер. Все вроде бы работало. Тут неожиданно в один прекрасный день,...

$script = http("http: //site.ru/scripts/" . $a1)
есть кусок кода. подскажите чего он делает, и как его закоментировать чтобы работоспособность не нарушилась?

46
349 / 120 / 1
Регистрация: 08.01.2013
Сообщений: 728
16.10.2013, 14:26
Пример из книги скачал, MySQL установил, базу создал, имя пользователя и пароль в базу внес?

Добавлено через 1 минуту
Файл connectvars.php тоже существует с нужными данными?
1
0 / 0 / 0
Регистрация: 16.10.2013
Сообщений: 25
16.10.2013, 14:33  [ТС]
Цитата Сообщение от tlittle Посмотреть сообщение
Пример из книги скачал, MySQL установил, базу создал, имя пользователя и пароль в базу внес?
clip .2net.com/s/5Y1LZJ

Да, да я не просто скачал я изучаю по книге, сначала сам написал по книге, думал думал что за фигня, весь мозг сломал, скачал уже пример с сайта книги, залил пример само собой логины везде изменил и пароли и тд, помогите пожалуйста я уже не знаю даже в какую сторону думать, могу доступ к хостингу даже дать помогите только(

Добавлено через 2 минуты
Цитата Сообщение от tlittle Посмотреть сообщение
Пример из книги скачал, MySQL установил, базу создал, имя пользователя и пароль в базу внес?

Добавлено через 1 минуту
Файл connectvars.php тоже существует с нужными данными?
PHP
1
2
3
4
5
6
7
<?php
  // Define database connection constants
  define('DB_HOST', 'localhost');
  define('DB_USER', '****');
  define('DB_PASSWORD', '*****');
  define('DB_NAME', 'mismatch');
?>
да конечно((( такого вида( вместо звездочек ясен пень там пароли

Добавлено через 2 минуты
вот можете сами попробовать, idibrodi.ru/login.php
логин a пароль b
логин andrey пароль sokolov
0
 Аватар для chizz
993 / 521 / 102
Регистрация: 19.03.2013
Сообщений: 3,114
Записей в блоге: 19
16.10.2013, 14:52
не пускает по данному логину-паролю
0
0 / 0 / 0
Регистрация: 16.10.2013
Сообщений: 25
16.10.2013, 14:54  [ТС]
Цитата Сообщение от chizz Посмотреть сообщение
не пускает по данному логину-паролю
в том и прикол, блин что делать то??(((
0
 Аватар для chizz
993 / 521 / 102
Регистрация: 19.03.2013
Сообщений: 3,114
Записей в блоге: 19
16.10.2013, 14:58
$user_username = mysqli_real_escape_string($dbc, trim($_SERVER['PHP_AUTH_USER']));
$user_password = mysqli_real_escape_string($dbc, trim($_SERVER['PHP_AUTH_PW']));

Это не то же самое, что

define('DB_USER', '****');
define('DB_PASSWORD', '*****');

Добавлено через 1 минуту
В таблице mismatch_user существует Andrey?
1
0 / 0 / 0
Регистрация: 16.10.2013
Сообщений: 25
16.10.2013, 15:00  [ТС]
Цитата Сообщение от chizz Посмотреть сообщение
$user_username = mysqli_real_escape_string($dbc, trim($_SERVER['PHP_AUTH_USER']));
$user_password = mysqli_real_escape_string($dbc, trim($_SERVER['PHP_AUTH_PW']));

Это не то же самое, что

define('DB_USER', '****');
define('DB_PASSWORD', '*****');

Добавлено через 1 минуту
В таблице mismatch_user существует Andrey?
не понял вас немного, а почему должно быть тоже самое?
я так понимаю $_SERVER это глобальная переменная а точнее массив в которые заносятся данные, которые я ввожу при попытке войти.
А Define это константы которые используются для коннекта к базе данных

Добавлено через 44 секунды
Цитата Сообщение от chizz Посмотреть сообщение

Добавлено через 1 минуту
В таблице mismatch_user существует Andrey?
вон скрин выше из таблицы бд, все существует(((
clip .2net.com/s/5Y1LZJ
0
 Аватар для chizz
993 / 521 / 102
Регистрация: 19.03.2013
Сообщений: 3,114
Записей в блоге: 19
16.10.2013, 15:02
Да, но потом идет запрос в бд

PHP
1
2
 $query = "SELECT id, username FROM mismatch_user WHERE username = '$user_username' AND password = SHA('$user_password')";
  $data = mysqli_query($dbc, $query);
И если там нет пользователя с нужным паролем, то все - гудбай

PHP
1
2
3
4
5
6
7
8
 }
  else {
    // The username/password are incorrect so send the authentication headers
    header('HTTP/1.1 401 Unauthorized');
    header('WWW-Authenticate: Basic realm="Mismatch"');
    exit('<h2>Mismatch</h2>Sorry, you must enter a valid username and password to log in and access this page. If you ' .
      'aren\'t a registered member, please <a href="signup.php">sign up</a>.');
  }
Хотя эта фигня не вылазит почему то.
1
0 / 0 / 0
Регистрация: 16.10.2013
Сообщений: 25
16.10.2013, 15:03  [ТС]
Цитата Сообщение от chizz Посмотреть сообщение
Да, но потом идет запрос в бд

$query = "SELECT id, username FROM mismatch_user WHERE username = '$user_username' AND password = SHA('$user_password')";
$data = mysqli_query($dbc, $query);

И если там нет пользователя с нужным паролем, то все - гудбай

}
else {
// The username/password are incorrect so send the authentication headers
header('HTTP/1.1 401 Unauthorized');
header('WWW-Authenticate: Basic realm="Mismatch"');
exit('<h2>Mismatch</h2>Sorry, you must enter a valid username and password to log in and access this page. If you ' .
'aren\'t a registered member, please <a href="signup.php">sign up</a>.');
}

Хотя эта фигня не вылазит почему то.
вот и я о том же, господи я всю голову уже сломал, 2 дня уже пытаюсь найти ошибки, да что за дерьмо такое((
0
Заблокирован
16.10.2013, 15:05
Сначала надо посмотреть как _вносятся_ данные в бд. Допустим если один пример скачали с книги, другой с фиги, то методы могут не совпадать и проверка пароля никогда не выйдет на true.
2
 Аватар для chizz
993 / 521 / 102
Регистрация: 19.03.2013
Сообщений: 3,114
Записей в блоге: 19
16.10.2013, 15:06
Еще как вариант - приведенный код php вообще не выполняется.
1
0 / 0 / 0
Регистрация: 16.10.2013
Сообщений: 25
16.10.2013, 15:06  [ТС]
Цитата Сообщение от sqlnub Посмотреть сообщение
Сначала надо посмотреть как _вносятся_ данные в бд. Допустим если один пример скачали с книги, другой с фиги, то методы могут не совпадать и проверка пароля никогда не выйдет на true.
в базу я добавлял логин и пароль вручную вот так INSERT INTO mismatch_user (username, password) VALUES ('andrey', SHA('password'))
0
16.10.2013, 15:07

Не по теме:

Цитата Сообщение от angry5 Посмотреть сообщение
2 дня уже пытаюсь найти ошибки
2 дня. Тьфу, ерунда.

1
0 / 0 / 0
Регистрация: 16.10.2013
Сообщений: 25
16.10.2013, 15:07  [ТС]
Цитата Сообщение от chizz Посмотреть сообщение
Еще как вариант - приведенный код php вообще не выполняется.
немного не понял, как такое может быть?
0
Заблокирован
16.10.2013, 15:10
Для начала сохраняйте пароли прямым текстом. Это позволит проверить есть ли оно в бд, в каком виде и почему не возвращает если не возвращает. Затем уже прикрутите хеши.

Добавлено через 1 минуту
Цитата Сообщение от angry5 Посмотреть сообщение
в базу я добавлял логин и пароль вручную вот так INSERT INTO mismatch_user (username, password) VALUES ('andrey', SHA('password'))
Значит пароль - password.

Добавлено через 47 секунд
А не sokolov
0
0 / 0 / 0
Регистрация: 16.10.2013
Сообщений: 25
16.10.2013, 15:11  [ТС]
PHP
1
$query = "SELECT id, username FROM mismatch_user WHERE username = '$user_username' AND password = '$user_password'";
ок, изменил файл, залил на хостинг, создал пользователя http:// clip 2net.com/s/5Y1LZJ
ничего не изменилось(((
0
 Аватар для chizz
993 / 521 / 102
Регистрация: 19.03.2013
Сообщений: 3,114
Записей в блоге: 19
16.10.2013, 15:12
Где написано, что данные из полей имя пользователя и пароль попадают в PHP_AUTH_USER и PHP_AUTH_PW?
Походу они всегда !isset
0
0 / 0 / 0
Регистрация: 16.10.2013
Сообщений: 25
16.10.2013, 15:13  [ТС]
Цитата Сообщение от sqlnub Посмотреть сообщение
Для начала сохраняйте пароли прямым текстом. Это позволит проверить есть ли оно в бд, в каком виде и почему не возвращает если не возвращает. Затем уже прикрутите хеши.

Добавлено через 1 минуту


Значит пароль - password.

Добавлено через 47 секунд
А не sokolov
ой, прошу прощения, опечатался конеечно, вместо password sokolov=)
0
Заблокирован
16.10.2013, 15:15
нет, а что будет если без кавычек послать текст?
0
0 / 0 / 0
Регистрация: 16.10.2013
Сообщений: 25
16.10.2013, 15:16  [ТС]
Цитата Сообщение от chizz Посмотреть сообщение
Где написано, что данные из полей имя пользователя и пароль попадают в PHP_AUTH_USER и PHP_AUTH_PW?
Походу они всегда !isset
ММ isset возвращает тру если переменая существует, соответственно если поставить ! то все наоброт( в нашем случае не существует)

А т.к. не существует мы запрашиваем авторизацию а ниже 2 переменным присваиваем значение из PHp_AUTH_USER и PHP_AUTH_PW
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.10.2013, 15:16
Помогаю со студенческими работами здесь

HTTP авторизация
Такая зада, есть web-сервис на sharePoint от Microsoft. Я обращаюсь к нему через http и получаю в ответ xml. Но это в теории, на практике...

Авторизация по HTTP
Надо что бы выполнялась авторизация по HTTP - http://site.ru/api/g_userinfo.php?apireqkey=qwerty&amp;func=login&amp;user=test&amp;passwd=test а...

Http авторизация
Подскажите как отправить данные в эту &quot;форму&quot; через C# ?

http авторизация на хостинге
Доброго времени суток форумчане! Помогите мне решить такую проблему. есть у меня локально денвер. и есть хостинг на джино. локально для...

HTTP авторизация + сессии
Здравствуйте, у нас есть сервер который требует пройти HTTP базовую авторизацию. Из вне когда я пытаюсь отправить запрос он ругается...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru