Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Форма ввода логина и пароля / 25 сообщений из 25, страница 1 из 1
22.04.2009, 16:29
    #35947614
Danmer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма ввода логина и пароля
Возник вопрос как сделать чтобы вход в программу осуществлялся с помощью логина и пароля...

Создал таблицу usеrs, и форму на которой разместил 2 текстовых поля - логин и пароль...

Вот только как это все реализовать не знаю...
Возможно нужно чтобы когда нажимаешь кнопку ввод проверялись введенные данные и сравнивались с данными которые занесены в таблицу users.

Может кто сталкивался с такой проблемой и делал подобные вещи....Поделитесь пожалуйста советами и опытом...
...
Рейтинг: 0 / 0
22.04.2009, 16:49
    #35947693
-=AlexiS=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма ввода логина и пароля
Ну а что еще можно придумать ?
Ну у пароля ставим PasswordChar='*' , чтобы при вводе были * , а не буквы
...
Рейтинг: 0 / 0
22.04.2009, 17:03
    #35947753
Danmer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма ввода логина и пароля
не,ну это понятно, вопрос то в другом, как сделать чтобы он входил именно под введенным логином и паролем которые забиты в таблицу users. как то проверял эти данные и если они верны то осуществлялся бы вход
...
Рейтинг: 0 / 0
22.04.2009, 17:53
    #35947982
-=AlexiS=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма ввода логина и пароля
ничего не понятно,обясните вот это помедленнее и по русски

авторкак сделать чтобы он входил именно под введенным логином и паролем которые забиты в таблицу users. как то проверял эти данные и если они верны то осуществлялся бы вход
что за таблица такая users ,что там храниться ?
что значит осуществлялся вход ?
...
Рейтинг: 0 / 0
22.04.2009, 19:51
    #35948309
alextashk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма ввода логина и пароля
Добавь поиск по логину и проверку пароля
Если не найдёт или пароль не подойдёт, то пока
...
Рейтинг: 0 / 0
23.04.2009, 08:23
    #35948719
Danmer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма ввода логина и пароля
alextashk - а как сделать этот поиск и проверку?
...
Рейтинг: 0 / 0
23.04.2009, 08:23
    #35948720
GermanGM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма ввода логина и пароля
Danmer, заставлять пользователя вводить имя, конечно, - не лучший вариант, целесообразнее предоставить выбор из списка (и приладить к процедуре регистрации какую-нибудь "запоминалку" последнего зарегистрировавшегося на этом компьютере юзера). Пароль можно зашифровать, хотя бы примитивно, с помощью BITXOR(). + PasswordChar, о котором Вам уже упоминали, вот вроде бы и все...
...
Рейтинг: 0 / 0
23.04.2009, 08:26
    #35948726
Danmer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма ввода логина и пароля
-=AlexiS=- - в таблице users хранятся логины и пароли...

Код: plaintext
что значит осуществлялся вход ?
- это значит чтобы проверял как-то эти логины и пароли, и если правильные то допустим запускал главную форму или меню...
...
Рейтинг: 0 / 0
23.04.2009, 08:27
    #35948730
Danmer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма ввода логина и пароля
GermanGM - можно не обязательно имя вводить, пользователь сможет ввести любой логин какой ему больше по душе....
...
Рейтинг: 0 / 0
23.04.2009, 09:23
    #35948813
GermanGM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма ввода логина и пароля
Danmer, "имя" = "логин", это я и имел в виду разумеется. Но список пользователей, имеющих доступ к программе, все равно должен находиться в Вашем вЕдении. Вы и должны присваивать имена/пароли. Если вводить логин в поле, то можно добавить в Init Textbox-a примерно следующее:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
if file(<стартовый каталог программы>+'LASTUSER.SET')
 local lnHeader
 lnHeader=fopen(<стартовый каталог программы>+'LASTUSER.SET')
 if lnHeader> 0 
  this.value=padr(ltrim(fgets(lnHeader)), 30 )
  this.refresh
 endif
endif

и после правильного ввода пароля - соответственно запись в тот же файл введенного логина
...
Рейтинг: 0 / 0
23.04.2009, 09:29
    #35948827
GermanGM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма ввода логина и пароля
Поправлю себя... :)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
if file(<стартовый каталог программы>+'LASTUSER.SET')
 local lnHeader
 lnHeader=fopen(<стартовый каталог программы>+'LASTUSER.SET')
 if lnHeader> 0 
  this.value=padr(ltrim(fgets(lnHeader)), 30 )
  this.refresh
  =fclose(lnHeader)
 endif
endif
...
Рейтинг: 0 / 0
23.04.2009, 09:41
    #35948854
Danmer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма ввода логина и пароля
GermanGM - вы неверно не так поняли, эта программа будет работать локально, т.е. пользователь установил ее на своем ПК,и сам уже ей распоряжается и задает свои логины и пароли, я уже никак в этом не участвую. Если допустим этой программой будут пользоваться 2 человека, то в таблице users будет хранится 2 логина с паролями...и каждый будет заходить под своим...
...
Рейтинг: 0 / 0
23.04.2009, 10:03
    #35948901
GermanGM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма ввода логина и пароля
Danmer, ну, тогда это наиболее простой случай.
...
Рейтинг: 0 / 0
23.04.2009, 10:14
    #35948931
Danmer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма ввода логина и пароля
в том то и дело что я новичек...и не знаю что прописывать в форме, что в кнопке входа, как сделать чтобы он проверял эти логины и пароли.....
...
Рейтинг: 0 / 0
23.04.2009, 11:08
    #35949115
GermanGM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма ввода логина и пароля
Danmer, c "эргономической" точки зрения предложенный Вами вариант неоптимален. IMHO, естественно. Я для регистрации пользователей использую форму с Grid-ом. Это избавляет юзера от необходимости помнить свой логин, меня - от лишней операции поиска по имени пользователя (достаточно проверить правильность ввода пароля). Там же кнопки добавления/удаления, доступ к редактированию прав доступа и т.п.
...
Рейтинг: 0 / 0
23.04.2009, 11:31
    #35949212
Danmer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма ввода логина и пароля
GermanGM - а можете скинуть эту форму для примера, ну и таблицу если она с формой связана???
...
Рейтинг: 0 / 0
23.04.2009, 12:00
    #35949313
GermanGM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма ввода логина и пароля
(offtopic) ok, в течение дня либо вечером (работы море)
...
Рейтинг: 0 / 0
23.04.2009, 12:00
    #35949317
Danmer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма ввода логина и пароля
Заранее огромное спасибо!!!
...
Рейтинг: 0 / 0
23.04.2009, 13:06
    #35949601
alextashk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма ввода логина и пароля
2 Danmer

На пальцах

Заводишь таблицу с минимум 4 полями минимум
код пользователя (для лога) (индекс)
имя пользователя - чтоб знать какой пользователь имеет какой логин (индекс)
логин
пароль

форма - два текст-бокса 1. Логин, 2. Пароль
кнопка, в кнопке код

IF SEEK(ThisForm.text1.Value, "users", "login") THEN
всё хорошо
else
всё плохо
endif
...
Рейтинг: 0 / 0
23.04.2009, 14:08
    #35949907
Danmer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма ввода логина и пароля
alextashk - почему минимум 4?

Код: plaintext
1.
код пользователя (для лога) (индекс)
имя пользователя - чтоб знать какой пользователь имеет какой логин (индекс)
- не совсем понял эти строки....

Имя пользователя по сути не нужно...
...
Рейтинг: 0 / 0
23.04.2009, 15:20
    #35950194
-=AlexiS=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма ввода логина и пароля
обьясните для чего вообще нужен вход под разными логинами ?
как-то деляться права , или протокол ведеться .
в зависимости от целей - структура таблички юзеров
как по мне , то предложенное alextashk
код/полное имя/логин/пароль - действительно минимальное
код - для того чтобы записывать в логи или если есть какие-то настроечные таблички - чтобы в них искать.
полное имя - ну тут чтобы было понятно кто есть кто , ведь по логину не всегда можно определить .Я например его еще показываю в заголовке главного окна
ну и логин / пароль для идентификации
насчет комбо-боксов и гридов - не согласен
все-таки лучше чтобы вводили вручную , это дополнительная защита.
а так - злоумышленику наполовину облегчаем жизнь .
...
Рейтинг: 0 / 0
23.04.2009, 15:45
    #35950276
GermanGM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма ввода логина и пароля
-=AlexiS=-, ну, условный код пользователя разумеется необходим, уже по той простой причине, что его можно сделать намного компактнее... выбор же из списка не облегчит доступ злоумышленнику, при наличии ввода пароля.
(off. За "Scripting.FileSystemObject" искреннее и большое спасибо!)
...
Рейтинг: 0 / 0
23.04.2009, 15:58
    #35950330
-=AlexiS=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма ввода логина и пароля
tо GermanGM - всегда пожалуйста
в исходном топике - ссылка на русcкую доку по FSO
...
Рейтинг: 0 / 0
28.04.2009, 11:41
    #35957955
CTAC-KO
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма ввода логина и пароля
GermanGMПоправлю себя... :)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
if file(<стартовый каталог программы>+'LASTUSER.SET')
 local lnHeader
 lnHeader=fopen(<стартовый каталог программы>+'LASTUSER.SET')
 if lnHeader> 0 
  this.value=padr(ltrim(fgets(lnHeader)), 30 )
  this.refresh
  =fclose(lnHeader)
 endif
endif
по-моему куда проще в данном случае юзать фунции STRTOFILE()/FILETOSTR()
т.е.
Код: plaintext
1.
2.
3.
if file(<стартовый каталог программы>+'LASTUSER.SET')
  this.value=filetostr(<стартовый каталог программы>+'LASTUSER.SET')
  this.refresh
endif
а запись еще проще (представляю как она выглядит на низком уровне с fwrite :)
Код: plaintext
1.
2.
erase(<стартовый каталог программы>+'LASTUSER.SET')
  =STRTOFILE(this.value,<стартовый каталог программы>+'LASTUSER.SET')
...
Рейтинг: 0 / 0
28.04.2009, 14:21
    #35958450
GermanGM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма ввода логина и пароля
CTAC-KO, Тема, собственно, не об оптимизации программного кода. И какая разница (в данном случае) между "низким" уровнем fread()/fwrite() и "высоким" filetostr()/strtofile()? Только в синтаксисе.

Кстати, to Danmer: посылка дошла? Отправил на Ваш e-mail
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Форма ввода логина и пароля / 25 сообщений из 25, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]