Показать сообщение отдельно

  #18  
Старый 17.01.2008, 07:00
bul.666
Banned
Регистрация: 06.06.2006
Сообщений: 944
С нами: 10489346

Репутация: 1403


По умолчанию

То, что привел SSB1981 это как метод авторизации, тоесть передачи значения имени пользователя и пароля... Дальше просто нужно обработать $_SERVER['PHP_AUTH_USER'] и $_SERVER['PHP_AUTH_PW']...
Или создать сессию... или кукисы... Конешно перед этим нужно их сверить с существующими именами пользователя и пароля... Можно использовать как SQL базу данных либо организовать хранение пар "username>Password" в файле...
С SQL всё ясно пробую сравнить пароль, где имя пользователя = $_SERVER['PHP_AUTH_USER']... Потом уже создаем кукисы и сессии...
- Если хранить на файле...
Например создаем файл db.txt
Пары храниться будут в виде user:password
например содержание нашего файла такое:
Цитата:
admin:TTwhgs2
user:qwerty
Сначала загружаем этот файл в один массив...
PHP код:
$db = file("db.txt"); 
Тут каждый элемент массива будет содержать одну строчку файла, тоесть размер массива в данном случае - 2...
Затем разбить каждую строку... Потому, как имя отделено от пароля символом ":"
Потом создать цикл и проверять входящие данные (имя пользователя и пароля) с каждым элмента массива...
Хз понял ли не понял =))))
--------------------------------------------------
Ну короче вот бональный пример:
Создал в блокноте (Windows, это важно) файл с паролями:
Цитата:
admin:pass
user:loleg
user1:loleg1
user2:loleg2
Потом сам скрипт:
PHP код:
<?php 
   $uname 
= $_GET['user']; 
   
$pwd = $_GET['pw']; 
   
$db = file("db.txt");
   foreach(
$db as $str) {
    if (
$uname.":".$pwd."\r\n" == $str) { ECHO "Hello $uname"; }
   }
?>
<form>
<input type="text" name="user">
<input type="text" name="pw">
</form>
Разберемся...
Я не стал тут разделять каждую строку массива на две перемнные, решил для просто стравнивать строки...
Вот цикл foreach назначает переменной $str с начала первую строку файла db.txt
Потом сравнивает
$uname.":".$pwd."\r\n" со этой строкой файла... И т.д. И если они будут совпадать выводим на экран "Hello $uname"
Почемуже именно такая строка?
Разберем её.
$uname - Это имя пользователя, если быть точном это $_POST['user'];
.":". - Это разделитель (Такой как и в файле)
$pwd - это пароль или $_GET['pw'];
."\r\n" - Это переход на новую строку (Windows!!!) Еслибы был юникс, то \n, но так как я создавал этот файл в блокноте и чтобы перейти на строчку ниже я нажимал Enter, а значит добавлял в конец строки \r\n

Конешно я мог импользовать rtrim но мне не хотелось =)
Короче надеюсь и тут понятно =)
Добалю... Там где Hello $uname можно стартовать сессию или кукисы а в начале файла проверять их наличие...

Последний раз редактировалось bul.666; 17.01.2008 в 07:17..
 
Ответить с цитированием