![]() |
|
فورم تسجيل الدخول - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3) +--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15) +--- الموضوع : فورم تسجيل الدخول (/showthread.php?tid=7951) |
فورم تسجيل الدخول - djilani.net - 23-06-2016 أثناء عمل فورم اسم المستخدم وكلمة المرور للبرنامج حصل المشكل التالي عندي فورم 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؟؟؟ RE: فورم تسجيل الدخول - bouh25 - 24-06-2016 ضع مكان Form5.Hide; Form5.free; RE: فورم تسجيل الدخول - djilani.net - 24-06-2016 (24-06-2016, 12:36 PM)bouh25 كتب : ضع مكان Form5.Hide;شكرا لك المشكل مزال موجود RE: فورم تسجيل الدخول - seddik_xp - 25-06-2016 أولا عليك البحث بقاعدة البيانات بإستخدام 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;RE: فورم تسجيل الدخول - bouh25 - 25-06-2016 [فيديو: https://www.youtube.com/watch?v=3ATXQLV1R5k] تابع هذا الفيديو RE: فورم تسجيل الدخول - ALKO - 26-06-2016 السلام عليكم البحث بالاستعلام هو العمل المتقن لكن حذاري من بعض الأخطاء هذا هو الاستلام 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 RE: فورم تسجيل الدخول - djilani.net - 26-06-2016 الجواب عن سؤالي وجده الأخ bouh25 في شرح الفديو أما بقية الأخوة شكرا لكم فلم يكن ذلك ماأقصده |