Forum Webscript.Ru

Программирование => PHP => Тема начата: agressor от 08 Февраля 2003, 17:26:27

Название: Скрипт авторизации с несколькими пользователями
Отправлено: agressor от 08 Февраля 2003, 17:26:27
Вот при освоении пхп у меня возникла проблема - не могу написать скрипт, чтоб пользователи могли авторизоваться... Вот, допустим у меня есть некий файл с именами и паролями ( в соотношении ИМЯ:::ПАРОЛЬ)... Сколько я не бьюся с этим сценарием, все равно он не хочет меня авторизовывать хоть ты тресни... Не могли бы вы, опытные скриптовальщики, написать пару строк, помочь мне (лишь авторизация, написать скрипт, чтоб файл писались эти логины и пароли я сам смогу)
Заранее благодарю...:beer:
Название: Скрипт авторизации с несколькими пользователями
Отправлено: GotZfild от 08 Февраля 2003, 18:16:14

$file = file("auth.dat");
for ($i = 0; $i < sizeof($file); $i++) {
    $line = explode("::", trim($file[$i]));
    if ($login == $line[0] && $password == $line[1]) {
         $is_authorized = 1;
         break;
    }
}
if (!$is_authorized) exit("Login or password is incorrect");
Название: Скрипт авторизации с несколькими пользователями
Отправлено: Макс от 08 Февраля 2003, 18:42:59
GotZfild
ты забыл (имхо) в самом начале написать:
$is_authorized = 0;

(для защитыы от register_globals = on)
Название: Скрипт авторизации с несколькими пользователями
Отправлено: GotZfild от 08 Февраля 2003, 18:53:29
Согласен.
Название: Скрипт авторизации с несколькими пользователями
Отправлено: agressor от 09 Февраля 2003, 16:55:50
Спасибо
Название: Скрипт авторизации с несколькими пользователями
Отправлено: agressor от 09 Февраля 2003, 19:11:10
Но мой сценарий (который я писал сам) отличался от этого только тем, что в нем отсутствовала функция trim (), из-за которой он по сути дела и не работал... Вообще характеристика ее такова: "удаление концевых пробелов в строке". Но причем она здесь? Не могли бы объяснить?..
Название: Скрипт авторизации с несколькими пользователями
Отправлено: GotZfild от 09 Февраля 2003, 19:44:05
Ты наверняка тестировал скрипт на Windows. В отличие от Unix, там перевод строки осуществляется двумя символами: переводом каретки и переводом строки ("\\r\\n"), тогда как в Unix только символом новой строки (только "\\n").
Поэтому после explode у тебя строки по сути выглядят так:
login::password\\r
Название: Скрипт авторизации с несколькими пользователями
Отправлено: Меняздесьдавнонет от 09 Февраля 2003, 21:38:37
GotZfild перестань.
перечитай документацию перед тем, как отвечать :-)
и вопрос заодно :-)

agressor
где ты вычитал такое объяснение? Эта функция удаляет все пробельные символы, в том числе и символ перевода строки, с которым у тебя как раз и не работало.