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

خطأ في كود تسجيل الدخول

بدأه مبرمجة فلسطين في 7 يونيو 2010 · 5 رد · 613 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

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

هذا الكود هو للقيام بعملية تسجيل الدخول وذلك بعد فحص اسم المستخدم وكلمة المرور هل هما موجودان في القاعدة أم لا

Imports System.Data
Imports System.Data.OleDb
Public Class Form2
    Dim msAccessCn As New OleDbConnection
    Dim ConnString As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source =" & Application.StartupPath & "\School.MDB"
    Dim conn As New OleDbConnection(ConnString)
    Dim dataset1 As New DataSet
    Dim sqlstr As String = "select * from Users"



    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click





        If (TextBox1.Text <> "" And TextBox2.Text <> "") Then
            sqlstr = "select * from Users where Us_Name='" & TextBox1.Text & " 'and Us_Password='" & TextBox2.Text & "'"

            Me.Hide()
            Form3.Show()
        ElseIf TextBox1.Text = "" And TextBox2.Text <> "" Then
            MsgBox("أدخل اسم المستخدم")
        ElseIf TextBox1.Text <> "" And TextBox2.Text = "" Then
            MsgBox("أدخل كلمة المرور")
        ElseIf (TextBox1.Text = "" And TextBox2.Text = "") Then
            MsgBox("ادخل اسم المستخدم وكلمة المرور")
        Else
            MsgBox("اسم المستخدم او كلمة المرور غير صحيحة")
        End If
    End Sub

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

وجزام الله خيراً

تم تعديل هذه المشاركة بواسطة GHOST2010 في 7 يونيو 2010 في 11:36 — السبب: تنسيق الكود

#2

وعليكم السلام ورحمة الله وبركاته

بعد إذنك قمت بتعديل المشاركة لتنسيق الكود حتى تسهل مراجعته

السبب فى المشكلة أنه لا يوجد كود أصلا يتحقق من البيانات المدخلة

إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال

feed.1.gif

#3
 	msAccessCn.ConnectionString = ConnString


 	If TextBox1.Text = "" And TextBox2.Text <> "" Then
 	MsgBox("أدخل اسم المستخدم")
 	ElseIf TextBox1.Text <> "" And TextBox2.Text = "" Then
 	MsgBox("أدخل كلمة المرور")
 	ElseIf (TextBox1.Text = "" And TextBox2.Text = "") Then
 	MsgBox("ادخل اسم المستخدم وكلمة المرور")
 	End If


 	If (TextBox1.Text <> "" And TextBox2.Text <> "") Then
 	sqlstr = "select count(Us_Name) from Users where Us_Name='" & TextBox1.Text & " 'and Us_Password='" & TextBox2.Text & "'"

 	msAccessCn.Open()
 	Using cmd As New OleDbCommand(sqlstr, msAccessCn)
 	If cmd.ExecuteScalar > 0 Then
 	Me.Hide()
 	Form3.Show()
 	End If
 	End Using
 	msAccessCn.Close()

 	Else
 	MsgBox("اسم المستخدم او كلمة المرور غير صحيحة")
 	End If

مكنش بيبحث فى قاعدة البيانات بسبب انك معملتيش Command ولا بحث فى قاعدة البيانات

تم تعديل هذه المشاركة بواسطة Tornadofay في 7 يونيو 2010 في 11:38

#4

بالمناسبة هذه الطريقة ليست آمنة بالمرة فهى توفر أسهل طريقة لتنفيذ ثغرة SQL-Injection ويمكن دخول البرنامج بكل سهولة وبأى حساب سواء كان موجودا أم لا

الأفضل استخدام Parameters

إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال

feed.1.gif

#5

جزاكم الله كل الخير

أخي GHOST2010 أشكرك على التعديل حاولت أن أضعه في صيغة كود ولكن كل التنسيقات لاتعمل عندي لا أدري لماذا؟

وشكراً للجميع سرعة الرد

اخي Tornadofay أشكرك على التوضيح

احترامي للجميع

وجزاكم الله كل الخير عني

تم تعديل هذه المشاركة بواسطة مبرمجة فلسطين في 7 يونيو 2010 في 12:31

#6
Tornadofay كتب:

 	msAccessCn.ConnectionString = ConnString


 	If TextBox1.Text = "" And TextBox2.Text <> "" Then
 	MsgBox("أدخل اسم المستخدم")
 	ElseIf TextBox1.Text <> "" And TextBox2.Text = "" Then
 	MsgBox("أدخل كلمة المرور")
 	ElseIf (TextBox1.Text = "" And TextBox2.Text = "") Then
 	MsgBox("ادخل اسم المستخدم وكلمة المرور")
 	End If


 	If (TextBox1.Text <> "" And TextBox2.Text <> "") Then
 	sqlstr = "select count(Us_Name) from Users where Us_Name='" & TextBox1.Text & " 'and Us_Password='" & TextBox2.Text & "'"

 	msAccessCn.Open()
 	Using cmd As New OleDbCommand(sqlstr, msAccessCn)
 	If cmd.ExecuteScalar > 0 Then
 	Me.Hide()
 	Form3.Show()
 	End If
 	End Using
 	msAccessCn.Close()

 	Else
 	MsgBox("اسم المستخدم او كلمة المرور غير صحيحة")
 	End If

مكنش بيبحث فى قاعدة البيانات بسبب انك معملتيش Command ولا بحث فى قاعدة البيانات

يعطيك ألف عافية يارب

الكود زبط معي مشكور وجزاك الله كل خير

GHOST2010 كتب:

بالمناسبة هذه الطريقة ليست آمنة بالمرة فهى توفر أسهل طريقة لتنفيذ ثغرة SQL-Injection ويمكن دخول البرنامج بكل سهولة وبأى حساب سواء كان موجودا أم لا

الأفضل استخدام Parameters

أخي شكراً على التنبيه لكن ممكن توضح كيف

وطريقة عمل تلك الطريقة الآمنة

ولك جزيل الشكر

تم تعديل هذه المشاركة بواسطة مبرمجة فلسطين في 8 يونيو 2010 في 13:32

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