Форумы портала PHP.SU » PHP » Напишите за меня, пожалуйста » скрипт доступа по логину и паролю

Страниц (1): [1]
 

1. maks - 24 Ноября, 2017 - 21:26:31 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. require("blocks/bd.php");
  4. if (!isset($_SERVER['PHP_AUTH_USER']))
  5.  
  6. {
  7.         Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
  8.         Header ("HTTP/1.0 401 Unauthorized");
  9.         exit();
  10. }
  11.  
  12. else {
  13.         if (!get_magic_quotes_gpc()) {
  14.                 $_SERVER['PHP_AUTH_USER'] = mysql_escape_string($_SERVER['PHP_AUTH_USER']);
  15.                 $_SERVER['PHP_AUTH_PW'] = mysql_escape_string($_SERVER['PHP_AUTH_PW']);
  16.         }
  17.  
  18.         $result = "SELECT pass FROM users WHERE login='".$_SERVER['PHP_AUTH_USER']."' AND status='Исполнитель'";
  19.         $lst = @mysql_query($result);
  20.  
  21.         if (!$lst)
  22.         {
  23.             Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
  24.         Header ("HTTP/1.0 401 Unauthorized");
  25.         exit();
  26.         }
  27.  
  28.         if (mysql_num_rows($lst) == 0)
  29.         {
  30.            Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
  31.            Header ("HTTP/1.0 401 Unauthorized");
  32.            exit();
  33.         }
  34.  
  35.         $pass =  @mysql_fetch_array($lst);
  36.         if ($_SERVER['PHP_AUTH_PW']!= $pass['pass'])
  37.         {
  38.             Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
  39.            Header ("HTTP/1.0 401 Unauthorized");
  40.            exit();
  41.         }
  42.  
  43.  
  44. }
  45.  
  46.  
  47.  
  48.  
  49. ?>
  50.  

есть скрипт но на хостинге работать не хочет помогите почему ?
2. Vladimir Kheifets - 25 Ноября, 2017 - 07:40:46 - перейти к сообщению
maks пишет:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. require("blocks/bd.php");
  4. if (!isset($_SERVER['PHP_AUTH_USER']))
  5.  
  6. {
  7.         Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
  8.         Header ("HTTP/1.0 401 Unauthorized");
  9.         exit();
  10. }
  11.  
  12. else {
  13.         if (!get_magic_quotes_gpc()) {
  14.                 $_SERVER['PHP_AUTH_USER'] = mysql_escape_string($_SERVER['PHP_AUTH_USER']);
  15.                 $_SERVER['PHP_AUTH_PW'] = mysql_escape_string($_SERVER['PHP_AUTH_PW']);
  16.         }
  17.  
  18.         $result = "SELECT pass FROM users WHERE login='".$_SERVER['PHP_AUTH_USER']."' AND status='Исполнитель'";
  19.         $lst = @mysql_query($result);
  20.  
  21.         if (!$lst)
  22.         {
  23.             Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
  24.         Header ("HTTP/1.0 401 Unauthorized");
  25.         exit();
  26.         }
  27.  
  28.         if (mysql_num_rows($lst) == 0)
  29.         {
  30.            Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
  31.            Header ("HTTP/1.0 401 Unauthorized");
  32.            exit();
  33.         }
  34.  
  35.         $pass =  @mysql_fetch_array($lst);
  36.         if ($_SERVER['PHP_AUTH_PW']!= $pass['pass'])
  37.         {
  38.             Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
  39.            Header ("HTTP/1.0 401 Unauthorized");
  40.            exit();
  41.         }
  42.  
  43.  
  44. }
  45.  
  46.  
  47.  
  48.  
  49. ?>
  50.  

есть скрипт но на хостинге работать не хочет помогите почему ?

Доброе утро, Maks!
Вероятно виноват require
Подсказка здесь: http://php.net/manual/ru/function.header.php
Цитата:
Помните, что функцию header() можно вызывать только если клиенту еще не передавались данные. То есть она должна идти первой в выводе, перед ее вызовом не должно быть никаких HTML тэгов, пустых строк и т.п. Довольно часто возникает ошибка, когда при чтении кода файловыми функциями, вроде include или require, в этом коде попадаются пробелы или пустые строки, которые выводятся до вызова header(). Те же проблемы могут возникать и при использовании одиночного PHP/HTML файла.

p.s. Обратите, пожалуйста, внимание на то, что в Вашем коде четыре раза повторяются три строки:
PHP:
скопировать код в буфер обмена
  1. Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
  2. Header ("HTTP/1.0 401 Unauthorized");
  3. exit();
Если это необходимо, в чём я не уверен, но эти строки лучше оформить как функцию.
Удачи!
3. maks - 25 Ноября, 2017 - 22:29:12 - перейти к сообщению
Не понял include сделал все равно не фига не помогает... ппц надо свое писать блин не понимаю как так то работает на денвере но не работает на сайте кто знает почему ?
4. teleoperator27 - 26 Ноября, 2017 - 03:05:04 - перейти к сообщению
Да потому что вы притомили Улыбка Сколько можно повторять: включай вывод ошибок и смотри, что в них написано, а не гадай на кофейной гуще.
5. Vladimir Kheifets - 26 Ноября, 2017 - 10:23:35 - перейти к сообщению
maks пишет:
Не понял include сделал все равно не фига не помогает... ппц надо свое писать блин не понимаю как так то работает на денвере но не работает на сайте кто знает почему ?

Доброе утро, Мaks!
Дело не в include или require, а в том, что если что-то отправляется до Header , то работать не будет.
Например, см. ниже у Вас есть в начале кода пустая строка или хотя бы один пробел перед перед <?
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. .....................
  4. .....................
  5.  

Для начала, советую Вам посмотреть в браузере HTML на предмет пустышек перед header.
Неплохо бы в PHP добавить error_reporting(E_ALL) и распечать $_SERVER['PHP_AUTH_USER'] и $_SERVER['PHP_AUTH_PW']
Удачи!
6. shahin - 26 Ноября, 2017 - 22:43:10 - перейти к сообщению
mysql уже не поддерживается используй mysqli
(Добавление)
И вообще не советую использовать эту авторизацию как основную
7. Vladimir Kheifets - 27 Ноября, 2017 - 08:06:35 - перейти к сообщению
shahin пишет:
mysql уже не поддерживается используй mysqli
(Добавление)
И вообще не советую использовать эту авторизацию как основную

Доброе утро! Вы правы, что лучше использовать mysqli и не использовать эту авторизацию как основную, но mysql поддерживается и был исключён только в версии PHP 7.0.0 Если Вы посмотрите phpinfo в версии PHP 5.6.32, то увидите MySQL Support и MysqlI Support.
Вполне возможно, что на сервере установлен PHP7, а на денвере ещё нет и это объясняет проблему.
Удачи!
8. shahin - 27 Ноября, 2017 - 08:59:56 - перейти к сообщению
Vladimir Kheifets пишет:
mysql поддерживается и был исключён только в версии PHP 7.0.0

Я использую 7мую версию и думал что его удалили

 

Powered by ExBB FM 1.0 RC1