الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكلة في التحقق من الكلمة السر والباسورد

مغلق
بدأه delphi team في 17 نوفمبر 2004 · 3 رد · 559 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

مرحبا شباب كيفيك وكل عام وانتم بخير

اريد مساعدتكم في ايجاد الخطأ في هذا الكود

procedure TForm4.Button1Click(Sender: TObject);
var r,x,y:integer;
 label zozo;
 label again;
begin
 DM1.Password.Open;

       DM1.Password.first;

if (edit1.Text=DBEdit1.Text) and (Edit2.Text=DBEdit2.Text) then begin ShowMessage('ss');
 goto zozo;
end
else begin
ShowMessage('ddd');
goto again;

//\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

zozo: begin form4.hide; form3.Show; end;

again: begin

DM1.Password.Next;
if (edit1.Text=DBEdit1.Text) and (Edit2.Text=DBEdit2.Text) then
begin goto zozo; end
else goto again;

 end;

end;end;

end.

يفترض ان يقوم هذا الكود بعملية التحقق من اسم المستخدم وكلمة السر الذين موجودين في قاعدة بيانات على شبكة المشكة أنه لا يأخذ غير الاسم الاول وكلمة السر الاولى في قاعدة البيانات إضافة إلى مشكلة غريبة وهي ان الجهاز يعلق بعد الضغط على زر التحقق :(

When You Started With Delphi ...You Could Not Stop!

delphiteam2.jpg

alharmoodiGropu.com

#2

والله شوف يمكن التحقق منه يدويا .. أعتقد ان المشكله أنه يجب وضع قفزة بعض zozo لإنه بهذه الحالة الحلقة لانهائية ... على كل حال برأيي لاداعي لهذة الطريقة مالم تكن تريد الإبتعاد عن دوال البحث من أجل ضرورات الشبكة (مثلا إذا كنت UnBound )

أقترح أولا أن تبحث عن إسم المستخدم , فإذا لم يجدة يطبع أن المستخدم غير موجود . وإلا إي إذا وجد المستخدم يتأكد من أن كلمة المرور المدخلة تطابق الكلمة المخزنة في قاعدة البيانات . إذا كانت تطابقها يدخل وإلا لا .

مثلا

if not DM1.Password.locate('User_Name',edit1.text,[]) then
showmessage('المستخدم غير موجود')
else
if not DM1.PasswordPassword.value=edit2.text then
showmessage('كلمة المرور غير صحيحة')

else

// شفرة الدخول للبرنامج هنا
#3

او اليك هذا الكود المجرب جربه واعطيني رايك وان شاء الله ينفعك

[CODE]{$R *.dfm}

procedure TPasswordDlgForm.OKBtnClick(Sender: TObject);
begin
        if Password.Text = '1470'then begin
            PasswordDlgForm.Hide;
            LogoInForm.Show;
            LogoInForm.Update;
            LogoInForm.Hide;
            Form1.show;
        end else begin
            PasswordDlgForm.Show;
            Password.Text := '';
            label1.caption := '!!ßáãÉ ÇáÓÑ ÛíÑ ÕÍíÍÉ¡ ÍÇæá ËÇäíÉ ';
            Dec(N);
            PasswordDlgForm.activeControl := Password;
        end;
//=============================
     if N <= 0 then begin
       ShowMessage('íÈÏæ Ãäß ÞÑÕÇä ¡ ÓíÊã ÅÎÑÇÌß');
       Application.Terminate;
     end;
//=============================
 end;  // Procedure  **)
//==============================================================================
procedure TPasswordDlgForm.CancelBtnClick(Sender: TObject);
begin
  Close;
end;
//==============================================================================
end.

اصحيح ان العرب في هذه الحياة.......هذا بالاسم فقط

لالالالابالاحلام ....او..لاكمال العدد؟؟؟؟؟؟

#4

السلام عليكم ،،،

again: begin

DM1.Password.Next;
if (edit1.Text=DBEdit1.Text) and (Edit2.Text=DBEdit2.Text) then
begin goto zozo; end
else goto again;

end;

سيكون حلقة ما لا نهائية لأنك لم تضع شرطا لنهاية الملف .

يفضل دائما الابتعاد عن الأمر goto .

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…