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

كود جاهز للتحقق من خلو أي قيمة من الرموز وبطريقة آسكي

مغلق
بدأه mohdabdu في 27 يوليو 2007 · 13 رد · 1,472 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

الكود التالي ، مع مثال مرفق يتأكد من خلو أي قيمة من الرموز باستعمال الدالة asc()

للطلاب البرمجة : الدالتين Asc() و chr() عيال عم وجرب أكتب الكود التالي في زر أوامر

MsgBox (Asc("A"))
MsgBox (Chr(65))

وهذا كود التحقق

	Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
		Dim i As Integer
		Dim username As String = TextBox1.Text
		Dim password As String = TextBox2.Text
		Dim strName, strPass As String

		'التأكد من خلو اسم المستخدم من الرموز بطريقة آسكي
		For i = 1 To Len(username)
			strName = Mid(username, i, 1)
			If (Asc(strName) >= 33 And Asc(strName) <= 47) Then
				MsgBox("لا تستعمل الرموز في اسم المستخدم أو كلمة المرور")
				Exit Sub
			ElseIf (Asc(strName) >= 58 And Asc(strName) <= 64) Then
				MsgBox("لا تستعمل الرموز في اسم المستخدم أو كلمة المرور")
				Exit Sub
			ElseIf (Asc(strName) >= 91 And Asc(strName) <= 96) Then
				MsgBox("لا تستعمل الرموز في اسم المستخدم أو كلمة المرور")
				Exit Sub
			ElseIf (Asc(strName) >= 123 And Asc(strName) <= 127) Then
				MsgBox("لا تستعمل الرموز في اسم المستخدم أو كلمة المرور")
				Exit Sub
			ElseIf (Asc(strName) >= 238 And Asc(strName) <= 247) Then
				MsgBox("لا تستعمل الرموز في اسم المستخدم أو كلمة المرور")
				Exit Sub
			End If
		Next

		'التأكد من خلو كلمة المرور بطريقة آسكي
		For i = 1 To Len(password)
			strPass = Mid(password, i, 1)
			If (Asc(strPass) >= 33 And Asc(strPass) <= 47) Then
				MsgBox("لا تستعمل الرموز في اسم المستخدم أو كلمة المرور")
				Exit Sub
			ElseIf (Asc(strPass) >= 58 And Asc(strPass) <= 64) Then
				MsgBox("لا تستعمل الرموز في اسم المستخدم أو كلمة المرور")
				Exit Sub
			ElseIf (Asc(strPass) >= 91 And Asc(strPass) <= 96) Then
				MsgBox("لا تستعمل الرموز في اسم المستخدم أو كلمة المرور")
				Exit Sub
			ElseIf (Asc(strPass) >= 123 And Asc(strPass) <= 127) Then
				MsgBox("لا تستعمل الرموز في اسم المستخدم أو كلمة المرور")
				Exit Sub
			ElseIf (Asc(strPass) >= 238 And Asc(strPass) <= 247) Then
				MsgBox("لا تستعمل الرموز في اسم المستخدم أو كلمة المرور")
				Exit Sub
			End If
		Next
		MsgBox("اسم مستخدم وكلمة مرور صحيحتان")

End Sub

NoMarks.rar

#2

بارك الله فيك عمل رائع

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

#3

بارك الله فيك عمل رائع

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

#4

استخدام جيد للدوال ، لكن لدي سؤال : لماذا نتحقق من كلمه المرور ؟ اعتقد ان كلمه المرور من الافضل ان تحتوي على حروف كبيرة وصغيره وأرقام ورموز مثل هذه مثلا :

k4J9!s47?

فهي منيعه جدا .. بينما اسم االمستخدم من الافضل ان يخلو من الرموز كما ذكرت انت .

تحياتي

#5

مشكوووووووووووووور أخي

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

ننتظر منك الكثير

i1044214_21.JPG

#6

الأخ النبهاني ، كلامك صحيح لو كان الكود لتطبيق ويندوز ، لكن لو لتطبيق asp.net راح تروح فيها لأن المخترقين يستعملون الرموز وبالذات الرمز ' والرمز * لتعطيل جمل الSQL والتحكم بها ، هذا حسب خبرتي البسيطة والله يوفق الجميع

#8

موضوع روعة ومتميز ، انت كذا تجبرني اسجل في منتدى أهلا عرب لكن غصبا عني!!

وإن واجهتني اسئلة في الباراميتر فأنت المعلم ، مشكورررر و الله يوقفك ويوفق الجميع

#9

وجهة نظري (قد اكون مخطئا) ان هذا الكود مناسب اكثر ل vb6 من .Net حيث ان الدوت نت بها دوال كثيرة للقيام بهذا الغرض حيث يمكنك استخدام regular expression لهذا الامر بكل سهولة .

#10

السلام عليكم

يمكن تحسين سرعة الكود بهذا الشكل. مع أني أتحفظ على الطريقة نفسها, لان حلقتان في مقطع برمجي واحد تعتبر فكرة غير صائبه.

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

Dim i As Integer
		Dim username As String = TextBox1.Text
		Dim password As String = TextBox2.Text
		Dim strName, strPass As String

		'التأكد من خلو اسم المستخدم من الرموز بطريقة آسكي
		For i = 1 To Len(username)
			strName = Mid(username, i, 1)
			If (Asc(strName) >= 33 AndAlso Asc(strName) <= 47) _
			OrElse (Asc(strName) >= 58 AndAlso Asc(strName) <= 64) _
			OrElse (Asc(strName) >= 91 AndAlso Asc(strName) <= 96) _
			OrElse (Asc(strName) >= 123 AndAlso Asc(strName) <= 127) _
			OrElse (Asc(strName) >= 238 AndAlso Asc(strName) <= 247) Then
				Me.Label1.Text = ("لا تستعمل الرموز في اسم المستخدم أو كلمة المرور")
				Return
			End If
		Next

		'التأكد من خلو كلمة المرور بطريقة آسكي
		For i = 1 To Len(password)
			strPass = Mid(password, i, 1)
			If (Asc(strPass) >= 33 AndAlso Asc(strPass) <= 47) _
			OrElse (Asc(strPass) >= 58 AndAlso Asc(strPass) <= 64) _
			OrElse (Asc(strPass) >= 91 AndAlso Asc(strPass) <= 96) _
			OrElse (Asc(strPass) >= 123 AndAlso Asc(strPass) <= 127) _
			OrElse (Asc(strPass) >= 238 AndAlso Asc(strPass) <= 247) Then
				Me.Label1.Text = ("لا تستعمل الرموز في اسم المستخدم أو كلمة المرور")
				Return
			End If
		Next
		Me.Label1.Text = ("اسم مستخدم وكلمة مرور صحيحتان")
		username = Nothing
		password = Nothing

ويمكن عبر التعابير النظامية بشكل أسرع من السابق بهذا الشكل.

Imports System.Text.RegularExpressions
 Dim ValRegx As String = "^[0-9a-zA-Z]+$"
		Dim rx As New Regex(ValRegx)
		If rx.IsMatch(Me.TextBox1.Text) AndAlso _
			rx.IsMatch(Me.TextBox2.Text) Then
			Me.Label1.Text = ("اسم مستخدم وكلمة مرور صحيحتان")
			Return
		End If
		Me.Label1.Text = ("لا تستعمل الرموز في اسم المستخدم أو كلمة المرور")

بالتوفيق إن شاء الله.

في المثال يتضح المقال

#11

أخوي TareqVB ،هذا الكود هو كود طالب برمجة في لغة واحدة فقط هي فيجواك بيسك إصدارة العصر الحجري واعذروني ،أنا ما أعرف إلا مواضيع المبتدئين في الدوت نت والذي بجهدي رايح أسويه

بحثت عن regular expression في جوجل ووجدت إنها أوفر في الوقت والجهد.

-------------------------------------------------------

أخوي @(النجم الثاقب)@ أشكرك على ردك الرائع وتفاعلك ، بفضل الله ثم لفضلك عرفت قبل قليل إن vb.net بها OrElse و AndAlso وعرفت وظيفتها من أحد كتب مايكروسوفت برس

س : أنا طالب برمجة كثير من الأوامر ما أعرفها ومنها الأمر الذي كتبته Return ، ما هي وظيفته ؟

لطلاب البرمجة : هذا شرح ل regular expression

/lofivers...7554.html"" target="_blank"> /lofivers...php/t77554.html

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

#12

نعم يا اخي هنالك فروقات كبيرة بين النسخ المختلفة من الفيجوال بيسك حتى بين 2003 و 2005 توجد فروقات هائلة لذلك انصحك التعلم من خلال الكتب ومن خلال الدروس الموجودة في هذا المنتدى .

#13

كل هذه الامور مشروحة في القول المنير في أصول التطوير

راجع هذا الرابط بالتوفيق إن شاء الله.

في المثال يتضح المقال

#14

أخوي الشهاب الحارق ، أشكرك من أعماق قلبي

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

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

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

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

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

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