Автор Тема: Проблемы с авторизацией  (Прочитано 12660 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Berkut

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 98
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Проблемы с авторизацией
« Ответ #30 : 28 Января 2004, 04:46:06 »
По порядку:
1)поставил $rez=0 в начале скрипта=теперь при обращении к странице index.php?rez=1 доступа к странице нет,выдаёт окно авторизации.
2)Вместо $PHP_AUTH_USER поставил $_SERVER[\'PHP_AUTH_USER\']

<?php
$rez
=0;
foreach(
file("passw/parol") as $k)
{
if(
trim($k)=="$_SERVER[\'PHP_AUTH_USER\'] $_SERVER[\'$PHP_AUTH_PW\')"
{$rez=1;}}
if (
$rez!=1)
{
Header(\'WWW-Authenticate: Basic realm="Подключение к сайту"\'); 
  Header("HTTP/1.0 401 Unauthorized"); 
  echo  "Bad password"; 
  exit; 
}
?>

Выдаёт вот что: Parse error: parse error, expecting `T_STRING\' or `T_VARIABLE\' or `T_NUM_STRING\' in c:\\www\\www1\\index.php on line 5
3)Скрипт Ромика не работает,и я вообще смутно представляю  принцип его работы(!strstr)
4)В учебнике наткнулся на такой пример:

<?php
  
if (!isset($_SERVER[\'PHP_AUTH_USER\'])) {
    header("WWW-Authenticate: Basic realm=\\"My Realm\\"");
    header("HTTP/1.0 401 Unauthorized");
    echo "Текст, отправляемый в том случае,
    если пользователь нажал кнопку Cancel\\n";
    exit;
  } else {
    echo "<p>Hello {$_SERVER[\'PHP_AUTH_USER\']}.</p>";
    echo "<p>Вы ввели пароль {$_SERVER[\'$PHP_AUTH_PW\']}.</p>";
  }
?>

Он у меня почему-то,как наверное вы уже догодались, тоже не работает!Не выводит введённые данные,а постоянно выскакивает окно авторизации.
4)В том-же учебнике набрёл на это:
Замечание о конфигурации: PHP использует наличие директивы AuthType для определения того, действует ли внешняя аутентификация. Исключите эту директиву для контекста, где вам необходимо использовать аутентификацию PHP (иначе каждая попытка аутентификации потерпит неудачу).
Возможно всё дело в этом.Что это за деректива и как её исключить?В php.ini её нет.

Оффлайн CGVictor

  • теперь местный
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2511
  • +0/-0
  • 2
    • Просмотр профиля
    • http://cg.net.ru
Проблемы с авторизацией
« Ответ #31 : 28 Января 2004, 13:46:57 »
2)
Цитировать
Berkut:
if(trim($k)=="$_SERVER[\'PHP_AUTH_USER\'] $_SERVER[\'$PHP_AUTH_PW\')"

4) AuthType - переменная Apache. Меняется в httpd.conf и в .htaccess
LJ: Backslashed life (rss)

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Проблемы с авторизацией
« Ответ #32 : 28 Января 2004, 15:20:11 »
Хотел сначала исправить, а потом передумал.
ты все равно не понимаешь смывсла исправлений, а потом приходишь с претензиями.
Буду объяснять

в пятой строке у тебя куча ошибок.
во первых, имена переменных желательно, а элементов массивов - обязательно писать ВНЕ строк.

То есть, не "$_SERVER[\'PHP_AUTH_USER\']", а $_SERVER[\'PHP_AUTH_USER\']

Если тебе нужно получить строку, состоящую из нескольких переменных, то следует использовать оператор конкатенации строк - точку.
Пример:
echo "Privet ".$name;

Надеюсь, усвоив это несложное правило, ты не только решишь возникшую трудность, но и сможешь писать программы сам.

Далее. кончается эта строчка вообще на что-то невообразимое. скобюка какая-то, кавычка...
Исправь, чтобы все было нормально.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Проблемы с авторизацией
« Ответ #33 : 28 Января 2004, 15:44:11 »
дальше. по оптимизации.
следует не перебирать весь массив, если ты нашел нужный пароль в первой строчке. надо поставить оператор break

дальше.
можно ВООБЩЕ не перебирать весь файл циклом. а просто считать его в одну переменную и поискать в нем некую строчку.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Проблемы с авторизацией
« Ответ #34 : 28 Января 2004, 15:48:16 »
Цитировать
Он у меня почему-то,как наверное вы уже догодались, тоже не работает!Не выводит введённые данные,а постоянно выскакивает окно авторизации.


А вот это уже интереснее.
рассказывай конфигурацию сервера, версии софта server api из phpinfo

Оффлайн Berkut

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 98
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Проблемы с авторизацией
« Ответ #35 : 29 Января 2004, 12:27:39 »
Написал так
if(trim($k)==$_SERVER[\'PHP_AUTH_USER\'].:.$_SERVER[\'PHP_AUTH_PW\'])  -выдаёт Parse Error на этой самой строчке.
 
Apache Version Apache/1.3.20
Apache Release 10320100
Apache API Version 19990320
Hostname:Port Aleksey:0
Timeouts Connection: 300
Keep-Alive: 15

allow_call_time_pass_reference
 On On
allow_url_fopen
 1 1
arg_separator.input
 & &
arg_separator.output
 & &
asp_tags
 Off Off
auto_append_file
 no value no value
auto_prepend_file
 no value no value
browscap
 no value no value
default_charset
 no value no value
default_mimetype
 text/html text/html
define_syslog_variables
 Off Off
disable_functions
 no value no value
display_errors
 On On
display_startup_errors
 Off Off
doc_root
 no value no value
enable_dl
 On On
error_append_string
 no value no value
error_log
 no value no value
error_prepend_string
 no value no value
error_reporting
 2039 2039
expose_php
 On On
extension_dir
 ./ ./
file_uploads
 1 1
gpc_order
 GPC GPC
highlight.bg
 #FFFFFF #FFFFFF
highlight.comment
 #FF8000 #FF8000
highlight.default
 #0000BB #0000BB
highlight.html
 #000000 #000000
highlight.keyword
 #007700 #007700
highlight.string
 #DD0000 #DD0000
html_errors
 On On
ignore_user_abort
 Off Off
implicit_flush
 Off Off
include_path
 no value no value
log_errors
 Off Off
magic_quotes_gpc
 Off Off
magic_quotes_runtime
 Off Off
magic_quotes_sybase
 Off Off
max_execution_time
 30 30
open_basedir
 no value no value
output_buffering
 Off Off
output_handler
 no value no value
post_max_size
 8M 8M
precision
 14 14
register_argc_argv
 On On
register_globals
 Off Off
safe_mode
 Off Off
safe_mode_exec_dir
 no value no value
sendmail_from
 me@localhost.com me@localhost.com
sendmail_path
 no value no value
short_open_tag
 On On
SMTP
 localhost localhost
sql.safe_mode
 Off Off
track_errors
 Off Off
upload_max_filesize
 2097152 2097152
upload_tmp_dir
 no value no value
user_dir
 no value no value
variables_order
 EGPCS EGPCS
y2k_compliance
 Off Off


standard
Regex Library Bundled library enabled
Dynamic Library Support enabled
Internal Sendmail Support for Windows 4 enabled

Directive Local Value Master Value
assert.active
 1 1
assert.bail
 0 0
assert.callback
 no value no value
assert.quiet_eval
 0 0
assert.warning
 1 1
safe_mode_allowed_env_vars
 PHP_ PHP_
safe_mode_protected_env_vars
 LD_LIBRARY_PATH LD_LIBRARY_PATH
session.use_trans_sid
 1 1
url_rewriter.tags
 a=href,area=href,frame=src,form=fakeentry a=href,area=href,frame=src,form=fakeentry

Оффлайн Diesel

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 69
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Проблемы с авторизацией
« Ответ #36 : 29 Января 2004, 16:07:53 »
Господи!!!
$_SERVER[\'PHP_AUTH_USER\'].\':\'.$_SERVER[\'PHP_AUTH_PW\'])

Неужели так сложно подумать чуток?

Оффлайн CGVictor

  • теперь местный
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2511
  • +0/-0
  • 2
    • Просмотр профиля
    • http://cg.net.ru
Проблемы с авторизацией
« Ответ #37 : 29 Января 2004, 16:32:37 »
Berkut
Цитировать
выдаёт Parse Error на этой самой строчке

USER\'].:.$_SERVER - what the f**k is this?

AuthType Basic пробовал в .htaccess писать?

По-моему, RomikChef, ты был прав. Слишком много народа приходят на форум лишь за тем, чтобы им все разжевали и, простите, в рот положили...
LJ: Backslashed life (rss)

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Проблемы с авторизацией
« Ответ #38 : 29 Января 2004, 19:18:04 »
Berkut
сносишь свой апач вместе с пхпой.
идешь на http://faq.phpclub.net/newbie
скачиваешь и устанавливаешь все, как там написано.
И у тебя все заработает.
Удачи.

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

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

Оффлайн Berkut

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 98
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Проблемы с авторизацией
« Ответ #39 : 04 Февраля 2004, 06:28:08 »
Поставил новый апач с твоей ссылки.
<?php
$rez
=0;
foreach(
file("passw/parol") as $k)
{
if(
trim($k)==$_SERVER[\'PHP_AUTH_USER\'].\':\'.$_SERVER[\'PHP_AUTH_PW\'])
{$rez=1;}}
if ($rez!=1)
{ Header(\'WWW-Authenticate: Basic realm="&#207;&#238;&#228;&#234;&#235;&#254;&#247;&#229;&#237;&#232;&#229; &#234; &#241;&#224;&#233;&#242;&#243;"\');
  Header("HTTP/1.0 401 Unauthorized");
  echo  "Bad password";
  exit;
}
?>

Выдаёт: Notice: Undefined index: PHP_AUTH_USER in z:\\home\\localhost\\www\\index.php on line 5

Notice: Undefined index: PHP_AUTH_PW in z:\\home\\localhost\\www\\index.php on line 5

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Проблемы с авторизацией
« Ответ #40 : 04 Февраля 2004, 09:08:55 »
if(isset($_SERVER[\'PHP_AUTH_USER\']) and trim($k)==$_SERVER[\'PHP_AUTH_USER\'].\':\'.$_SERVER[\'PHP_AUTH_PW\'])

Оффлайн Berkut

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 98
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Проблемы с авторизацией
« Ответ #41 : 04 Февраля 2004, 22:23:30 »
Спасибо большое, вс

Оффлайн Berkut

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 98
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Проблемы с авторизацией
« Ответ #42 : 04 Февраля 2004, 22:26:58 »
- всё работает.
Только я несовсем понял,зачем-же надо проверять установлена-ли
$_SERVER[\'PHP_AUTH_USER\'] ведь она-же нигде не объявлена?

 

Sitemap 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