المشاركات : 15
المواضيع 5
:
: 5
الإنتساب : Oct 2015
23-06-2016, 09:08 PM
(آخر تعديل لهذه المشاركة: 24-06-2016, 09:33 AM بواسطة أبو معاذ.)
أثناء عمل فورم اسم المستخدم وكلمة المرور للبرنامج حصل المشكل التالي
عندي فورم 1accueil وفورم 2 Form5
عند ادخال اسم مستخدم وكلمة المرور في الفورم 1 وضغط على butoun
التي تحتوي الكود التالي
كود :
begin
if (DataModule1.utilisateur.FieldByName('NomUtilisateur').AsString=edit1.Text)and
(edit2.Text=DataModule1.utilisateur.FieldByName('Password').AsString)then
begin
accueil.show;
Form5.Hide;
end
else
ShowMessage('اسم مستخدم أو كلمة مرور خاطئة');
end;
تغلق فورمaccueil وتفتح Form5
ويختفي التطبيق من شريط المهام في الاسفل ولكنه يبقى موجود gestion de tache؟؟؟
المشاركات : 305
المواضيع 50
:
: 43
الإنتساب : Sep 2010
ضع مكان Form5.Hide;
Form5.free;
المشاركات : 15
المواضيع 5
:
: 5
الإنتساب : Oct 2015
(24-06-2016, 12:36 PM)bouh25 كتب : ضع مكان Form5.Hide;
Form5.free;
شكرا لك
المشكل مزال موجود
المشاركات : 89
المواضيع 4
:
: 1
الإنتساب : Jan 2012
أولا عليك البحث بقاعدة البيانات بإستخدام query عن إسم المستخدم و كلمة المرور و من ثم المقارنة بالمعطيات المدخة من طرف المستخدم
مثال بسيط للكيوري و الكود
كود :
with ADOQuery1 do begin
Close;
SQL.Clear;
SQL.Add('select * from Table where username='+QuotedStr(edituser.Text));
Open;
if Query.RecordCount = 0 then
Application.MessageBox('أسم المستخدم غير موجود', 'Information',
MB_OK or MB_ICONINFORMATION)
else begin
if Query.FieldByName('password').AsString <> editpass.Text
then Application.MessageBox('تأكد من كلمة المرور المدخلة', 'Error',
MB_OK or MB_ICONERROR)
else begin
Hide;
Mainform.Show;
end
end;
المشاركات : 305
المواضيع 50
:
: 43
الإنتساب : Sep 2010
كل من 1 user says قال شكرا ل bouh25 على المشاركة المفيدة1 user says Thank You to bouh25 for this post
• djilani.net
المشاركات : 37
المواضيع 2
:
: 36
الإنتساب : Jul 2013
السلام عليكم
البحث بالاستعلام هو العمل المتقن لكن حذاري من بعض الأخطاء
هذا هو الاستلام
sql.add('select * from Table where ( username='+QuotedStr(edituser.Text)+ ') and ( password='+QuotedStr(editpassword.Text)+')')
1- قم بالتأكد أن المستخدم أدخل مدخلات . في مثالك اسم المستخدم والرقم السري
ان كان لم يدخل exit
2- قم بالتأكد من نوع المدخلات فمثلا لو أدخل المستخدم * سوف يكون الاستعلام صحيح و يمكن أن يكون حقييقي
و هذا نوع من أنواع الاختراق sql injection
لكن هذه الخطوة أنت تقرر كيف تستغلها استغلال صحيح و قوي وهذا عن طريق الممارسة
كفرض ان المستخدم عند تسجيله تفرض عليه ان يبدأ اسمه بحرف ثم الارقام تكون اختيارية و الاحرف الاتينية فقط
عند ذلك يمكن عند تسجيل الدخول تتأكد من أن المستخدم أدخل أحرف لاتينية و أرقام ليست بالضرورة لكن الضروري هو عدم ادخال غيرهما
ان كان أدخل رموز و لم يستوفي الشرط exit
3- المرحلة التي تليها تأكد من طول الكلمة المدخلة وهذا أيضا تفرضه عند التسجيل و هنا تقوم فقط بالتأكد أن الاسم أو الرقم السري ليسا أصغر من القيمة التي فرضتها
ان كان الطول أصغر exit
بعد هذا تستطيع أن نقوم باستعلامك و أنت أمن كليا
و لكن لا تفعل مثل هذا الخطأ الكبير
if Query.RecordCount = 0 then
بل هكذا
if Query.RecordCount = 1 then
ان جلب سجل واحد فمرحبا به
و ان كان غير ذلك exit
الحكمة ضالة المؤمن أنى وجدها فهو أحق الناس بها
المشاركات : 15
المواضيع 5
:
: 5
الإنتساب : Oct 2015
الجواب عن سؤالي وجده الأخ bouh25 في شرح الفديو
أما بقية الأخوة شكرا لكم فلم يكن ذلك ماأقصده