Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как написать скрипт входа пользователя 
:(
    Опции темы
virp
  Дата 26.7.2007, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 26.7.2007

Репутация: нет
Всего: нет



Помогите пожалуйста кто может.Надо написать скрипт который будет брать логин и пароль пользователя брался из файла вида 


Код

<?die;?>
login|пароль|0|[email protected]|22.07.2007||мужчина||||||noavatar.gif||


На данный момент у меня есть код который берёт пароль из файла в котором лежит хеш пароля но хотелось бы чтоб брал ещё и логин.
Вот код скрипта который берёт пароль из фала

Код

<?
//если нажата кнопка "войти"
if (isset($_POST['enter']))
{
// читаем md5 хеш из файла pass.txt
$s=file('pass.txt');
// Получаем md5 хеш от пароля, введённого пользователем
$hash=md5 ($_POST['passwd']);
// Сравниваем хеш пароля и логина с теми ,которые ввел пользователь
if (($s[0]==$hash) and ($_POST['login']=='admin'))
{
//Подключаем модуль вывода панели управления 
require_once("index.html");
// Больше ничего делать не надо , поэтому выходим
exit;
}
else
{
// Если пароль и имя пользователя неправильные, выводим информацию об этом
echo "Логин и пароль не верные ";
echo "<a href='index.php'>назад </a>";
exit;
}
}// end - if (isset($_POST['enter']))
?>
<form action='admin.php' method='POST'>
Логин: <input type='text' name='login'>
<br><br>
Пароль: <input type='text' name='passwd'>
<br><br>
<input type="submit" name='enter' value='войти'>
</form>

Помогите пожалуйста кто может заранее спасибо.

Это сообщение отредактировал(а) virp - 26.7.2007, 15:16
PM MAIL WWW   Вверх
Fally
Дата 26.7.2007, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 265
Регистрация: 17.8.2006
Где: Dahla

Репутация: 3
Всего: 4



ну... думаю за тебя вряд ли кто будет делать, т.к. это в первую очередь нужно тебе... и никто просто так своё время тратить не будет..
Посмотри здесь:
http://php.net/file_get_contents
http://php.net/explode
.... мм... ну можно и сюда:
http://ru2.php.net/manual/ru/ref.array.php


--------------------
Прежде чем задать вопрос на форуме воспользуйтесь поиском.
user posted image
user posted image
PM MAIL   Вверх
Flashdown
Дата 26.7.2007, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 85
Регистрация: 27.5.2006
Где: Москва

Репутация: нет
Всего: нет



посмотри что у тебя находится в $s[0] , и вспомни про explode()
PM MAIL ICQ   Вверх
Fally
Дата 26.7.2007, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 265
Регистрация: 17.8.2006
Где: Dahla

Репутация: 3
Всего: 4



 smile 

Flashdown, ты только первый пост читаешь? Если да, то советую во избежании проблем читать _все_ посты...


--------------------
Прежде чем задать вопрос на форуме воспользуйтесь поиском.
user posted image
user posted image
PM MAIL   Вверх
Fally
Дата 26.7.2007, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 265
Регистрация: 17.8.2006
Где: Dahla

Репутация: 3
Всего: 4



Поскольку появилось свободное время, и деть его некуда, показываю как это делается ;)

1) файл делаешь такого вида:
Код

login|пароль|0|[email protected]|22.07.2007||мужчина||||||noavatar.gif||


Теперь делаешь так:
Код

if (isset($_POST['enter']))
{
// Получаем md5 хеш от пароля, введённого пользователем
$hash=md5 ($_POST['passwd']);
// Считавыем весь файл в строковую переменную
$s=file_get_contents('pass.txt');
$arr = explode('|', $s);
/* При проверке и разбирании этого кода раскомментируй то что идёт ниже, полезно будет и поймёшь, что я и откуда взял...
print('<pre>');
var_dump($arr);
print('</pre>');
*/
$validLogin = $arr[0]; // Валидный логин
$validPass = $arr[1]; // Валидный пароль
// Сравниваем хеш пароля и логина с теми ,которые ввел пользователь
if (($validPass == $hash) and ($_POST['login'] == $validLogin))
{
//Подключаем модуль вывода панели управления 
require_once("index.html");
// Больше ничего делать не надо , поэтому выходим
exit;
}


и тем что получилось выше заменяешь вот это:

Код

if (isset($_POST['enter']))
{
// читаем md5 хеш из файла pass.txt
$s=file('pass.txt');
// Получаем md5 хеш от пароля, введённого пользователем
$hash=md5 ($_POST['passwd']);
// Сравниваем хеш пароля и логина с теми ,которые ввел пользователь
if (($s[0]==$hash) and ($_POST['login']=='admin'))
{
//Подключаем модуль вывода панели управления 
require_once("index.html");
// Больше ничего делать не надо , поэтому выходим
exit;
}


P.S. Советую не лениться и не обижаться когда дают ссылки на документацию.. этим тебе делают лучше...


--------------------
Прежде чем задать вопрос на форуме воспользуйтесь поиском.
user posted image
user posted image
PM MAIL   Вверх
virp
Дата 26.7.2007, 18:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 26.7.2007

Репутация: нет
Всего: нет



Спасибо большое за помощь я кстати на сайте  нашёл похожее решение проблемы. Спасибо что отклинулись. 
Цитата

P.S. Советую не лениться и не обижаться когда дают ссылки на документацию.. этим тебе делают лучше...

Fally ты прав smile 
PM MAIL WWW   Вверх
virp
Дата 26.7.2007, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 26.7.2007

Репутация: нет
Всего: нет



решил потестить этот код пишет что неправильный логи :(
PM MAIL WWW   Вверх
Fally
Дата 27.7.2007, 10:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 265
Регистрация: 17.8.2006
Где: Dahla

Репутация: 3
Всего: 4



ты раскомментаровал 3 строки:
Код

print('<pre>');
var_dump($arr);
print('</pre>');

Чтобы посмотреть как скрипт файл парсит? Посмотри, какие индексы будут у логина и пароля...  Вполне возможно, что дело в порядке, в котором они записаны в файле...


--------------------
Прежде чем задать вопрос на форуме воспользуйтесь поиском.
user posted image
user posted image
PM MAIL   Вверх
BuShaRt
Дата 27.7.2007, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1391
Регистрация: 29.6.2006

Репутация: 4
Всего: 6



А обязательно это делать без участия MySQL?
В 2007 году не вижу не каких объективных причин юзать текстовые файлы, взаме MySQL
PM MAIL   Вверх
virp
Дата 27.7.2007, 10:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 26.7.2007

Репутация: нет
Всего: нет



Цитата(BuShaRt @ 27.7.2007,  10:21)
А обязательно это делать без участия MySQL?
В 2007 году не вижу не каких объективных причин юзать текстовые файлы, взаме MySQL

MySQL не надёжен в плане безопасности smile 
PM MAIL WWW   Вверх
Fally
Дата 27.7.2007, 10:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 265
Регистрация: 17.8.2006
Где: Dahla

Репутация: 3
Всего: 4



virp, ага, чем же это он ненадёжен?)) Если всё корректно обрабытвать, то он безопасен + работа с БД всегда быстрее работы с файлами


--------------------
Прежде чем задать вопрос на форуме воспользуйтесь поиском.
user posted image
user posted image
PM MAIL   Вверх
BuShaRt
Дата 27.7.2007, 10:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1391
Регистрация: 29.6.2006

Репутация: 4
Всего: 6



virp
Может вы просто не умеете с ним работать? smile
Почему то крупные веб-проекты работают на MySQL  и проблем с безопастностью не испытывают.
PM MAIL   Вверх
Fally
Дата 27.7.2007, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 265
Регистрация: 17.8.2006
Где: Dahla

Репутация: 3
Всего: 4



 smile 
BuShaRt, ну конечно же не обяхательно MySQL smile Всё таки крупные предпочитают платное ПО, типа Оракла и т.п... А мне вообще очень нравиться и по надёжности и по скорости Firebird


--------------------
Прежде чем задать вопрос на форуме воспользуйтесь поиском.
user posted image
user posted image
PM MAIL   Вверх
virp
Дата 27.7.2007, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 26.7.2007

Репутация: нет
Всего: нет



Fally  индексы у логина и пароля проверил они те и  хеш пароля тот. Где ошибка не пойму.
BuShaRt Я не хочу использовать Mysql тк статистика взломов продуктов на mysql ужасна. к примеру форум IPB так там в каждой версии дыры(sql injection :( )
PM MAIL WWW   Вверх
Fally
Дата 27.7.2007, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 265
Регистрация: 17.8.2006
Где: Dahla

Репутация: 3
Всего: 4



virp, проверь с помощью var_dump() массив $_POST.. может быть в нём нет данных... так сказать точно не могу..
А по поводу MySQL, поверь, я тоже года 3-4 назад смотрел на эту "статистику" но уже как 2,5 года, уверен что все SQL-injection последствия либо:
1) Кривых рук программиста /очень часто/
2) Иногда люди забывают ко всем данным пришедшим из вне применить функцию mysql_real_escape_string(), иногда просто из-за невнимательности пропускают...

Если не допускать таких ошибок как в п. 2 и не иметь такие руки как в п. 1, SQL-injection не будет работать...

Осенило.. совсем забыл....
Код

$validLogin = trim($arr[0]);
$validPass = trim($arr[1]);


Это сообщение отредактировал(а) Fally - 31.7.2007, 11:28


--------------------
Прежде чем задать вопрос на форуме воспользуйтесь поиском.
user posted image
user posted image
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1205 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.