Skip to forum content
My Visual Database
A Simple Solution for Creating Databases
You are not logged in. Please login or register.
Active topics Unanswered topics
Search options (Page 1 of 2)
k245 wrote:dazzleqq wrote:Я понял, что username должно быть только на английском, кириллицу не воспринимает. Тогда у меня вопрос. Как добавить в встроенной форме пользователей текстовое поле и чтобы кнопка сохранить сохраняла данные из этого текстового поля?
Как добавить компоненты на форму логина: https://k245.ru/mvdb/autentifikatsiya.html
Было:
Стало:
С кнопкой история такая: добавляете свою кнопку, с нужным обработчиком, в котором вызываете нажатие имеющейся кнопки.
А чтобы проще ориентироваться в имеющихся стандартных формах, рекомендую инструмент: https://k245.ru/mvdb/component-explorer.html
Спасибо, а как изменить шифрование при нажатии кнопки сохранить, в форме где добавляются или изменяются пользователи?
Я понял, что username должно быть только на английском, кириллицу не воспринимает. Тогда у меня вопрос. Как добавить в встроенной форме пользователей текстовое поле и чтобы кнопка сохранить сохраняла данные из этого текстового поля?
и что даже для встроенной таблицы _user подойдет Password_hash()? Учитывая что хэш хранится таким образом md5(password+username)?
k245 wrote:md5(password+username)
Отсюда интересное следствие - после редактирования имени пользователя его пароль становится недействительным ))
Подскажите, может быть знаете. Как в PHP сделать проверку пароля при авторизации? Я пытаюсь так
$login = $data['login'];
$password = $data['password'];
$user = R::findOne('_user', 'username = ?', array($login));
if ($user) {
// логин существует
$hashed_password_from_db = $user->password;
if (md5($password . $login) === $hashed_password_from_db) {
// если пароль совпадает, то нужно авторизовать пользователя
session_start();
$_SESSION['logged_user'] = $user;
header('Location: /');
exit();
} else {
$errors[] = 'Неверно введен пароль!';
}
} else {
$errors[] = 'Пользователь с таким логином не найден!';
}
Но так не получается
k245 wrote:md5(password+username)
Отсюда интересное следствие - после редактирования имени пользователя его пароль становится недействительным ))
Благодарю
Каким методом хэшируется пароль? (md5(md5(password))?
Очень странно, попробовал дома точно также все подключить и ошибок нет. А на работе выходят вышеуказанные ошибки...
pavlenko.vladimir.v wrote:dazzleqq wrote:Добрый день. При подключении к MySQL Выходит ошибка #HY000Duplicate foreign key constraint name '_user_id__role'. Как ее устранить? Включены встроенные роли.
Вы случайно скриптом не добавляете новую запись при старте программы?
--
Повторяющееся имя ограничения внешнего ключа
Нет. Уже даже пробовал полностью данные удалять и заново подключать.
Так же не знаю, может это как то связанно...если пользователь с ролью админ подключается, то все хорошо. А если не админ, то к базе не подключается и программа закрывается, сопровождая ошибкой, какой я так и не понял.
MySQL 8
Добрый день. При подключении к MySQL Выходит ошибка #HY000Duplicate foreign key constraint name '_user_id__role'. Как ее устранить? Включены встроенные роли.
Кто может скинуть образец (проект) (MySQL)? Пожалуйста.
Здравствуйте, кто подскажет, можно ли при запуске отчета через Excel сделать так, чтобы некоторые данные открывались на 2 (второй) странице Excel?
Hello, who can tell me if it is possible to make some data open on the 2nd (second) Excel page when running a report through Excel?
(Google translate)
Можно и так (обновленный вариант Derek) :D:D
P.S. Возможно неправльно, но за то работает) (лучше конечно DateTimerPicker использовать и обновлять не кнопкой, а скриптом, дабы лишними кнопками не засорять форму)
k245 wrote:Главная форма не меняется скриптом, только в режиме конструктора.
https://k245.ru/mvdb/formy.html
Но вы можете при запуске приложения скрывать главную форму и отображать нужную вам в зависимости от роли.
Да, я читал и читаю ваши темы. И там было написан "Изменить или скрыть главное меню можно с помощью скриптов" и я подумал что можно с помощью скрипта изменить. Но я не правильно понял.
Доброй ночи всем. Помогите пожалуйста. Как с помощью скрипта изменить главную форму по умолчанию?
s := VarToStr(SQLExecute('SELECT COUNT(*) FROM _user WHERE username = ''' + application.User.Username + ''' AND id__role = 4;'));
if s = '1' then
begin
frmPriemnaya.Show;
Application.MainForm := frmPriemnaya; // Устанавливаем frmPriemnaya как главную форму
Form1.Close;
end;
derek wrote:Привет,
попробуй вот так
Derek.
Да, это то что нужно, спасибо!!!
derek wrote:Привет,
Если я правильно понял, то возможно попробуйте так.
Derek.
Чуть чуть не то, но спасибо за ответ)
vovka3003 wrote:Можно еще с виндой "поспорить", свои бордюры и элементы нарисовать:
Можно пример?
Помогите пожалуйста. Есть TableGrid, в нем имеются кое какие записи. Нужно сделать так, чтобы при выборе записи из TableGrid данные отображались в поле Edit, вытягивая данные из таблицы базы данных.
Используя скрипт:
procedure Form1_TableGrid1_OnCellClick (Sender: TObject; ACol, ARow: Integer);
begin
Form1_ProcessSelectedRecordNR;
end;
procedure Form1_ProcessSelectedRecordNR;
begin
Form1.Edit3.Text := SQLExecute('SELECT vvv FROM dfg WHERE dfg.id='+Form1.TableGrid1.sqlValue); //
Form1.Edit4.Text := SQLExecute('SELECT zzx FROM dfg WHERE dfg.id='+Form1.TableGrid1.sqlValue); //
end;
procedure Form1_TableGrid1_OnKeyDown(Sender: TObject; var Key: Word; Shift, Alt, Ctrl: boolean);
begin
case Key of
VK_UP, VK_DOWN: // Обработка нажатия клавиш вверх и вниз
begin
Form1_ProcessSelectedRecordNR;
end;
end;
end;
,
работает корректно только когда выбираю запись мышкой, а если кнопками на клавиатуре (стрелками вверх или вниз), то данные отображаются с предыдущей записи, т.е. не правильно.
derek wrote:Привет Dazzleqq
Несомненно, существует технически гораздо более совершенный способ сделать это, но я всегда выбирал простой вариант и жульничал!
Однако я бы не рекомендовал этот вариант, если у вас большое количество записей — тогда я думаю, вам, вероятно, следует сделать это «правильным» способом.
Пожалуйста, посмотрите приложение.
Derek.
Спасибо, Derek! Еще вопрос, а вывести по мимо пользователя еще и должность его? Если можно, то покажите на Вашем примере. Спасибо.
Спасибо! А как в FastReport вывести? Что в запросе писать?
Добрый день, как с встроенной авторизацией получить информацию кто авторизировался в программе?
До того как начал использовать встроенную авторизацию, я пользовался авторизацией через скрипт и кто авторизировался в программе указывалось в скрипте в переменной:
var
sUser: string = '';
А сейчас выводит пустой текст
k245 wrote:dazzleqq wrote:Ещё раз добрый день, возникла такая необходимость, чтобы при редактировании записи фильтр был бы пустым, т.е. отключен, а при создании новой записи, фильтр был бы включен. Как реализовать?
Добавить обработчики на отображение и закрытие формы редактирования
procedure UD_REDACT_OnClose (Sender: TObject; Action: string);
begin
UD_REDACT.ComboBox7.dbFilter := ''; // по умолчанию фильтр снят
UD_REDACT.ComboBox7.dbUpdate;
end;
procedure UD_REDACT_OnShow (Sender: TObject; Action: string);
begin
if Action='NewRecord' then // если добавление новой записи, то
begin // добавить фильтр
UD_REDACT.ComboBox7.dbFilter := 'id_LS_STATUS = 1';
UD_REDACT.ComboBox7.dbUpdate;
end;
end;
Спасибо!
Ещё раз добрый день, возникла такая необходимость, чтобы при редактировании записи фильтр был бы пустым, т.е. отключен, а при создании новой записи, фильтр был бы включен. Как реализовать?
derek wrote:Привет Dazzleqq,
Во вложении 4 примера разных "Заставок" (в "Splash2" используйте кнопку чтобы изменить сообщение, скорость сообщения и продолжительность сообщения).
Может быть, это поможет.
Derek
.
In the attachment are 4 examples of different "Splash Screens" (in "Splash2", use the button to change the message, the speed of the message and the duration of the message).
Спасибо, derek!
Posts found: 1 to 25 of 36