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

صفحه تسجيل دخول وكيفيه التعامل معها

بدأه StUd_C في 31 ديسمبر 2007 · 6 رد · 1,606 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

مثال بسيط وواضح ( وخصوصا اني اشوف كثير اعضاء يسئلون عن الطريقه )

ولقيت مثال للأخ ابو فارس وكان فيه كم خطا خصوصا في الاكواد ماكتبت بالشرح

وغير كذا بالفيجوال بيسك

هذا المثال بالسي شارب والمثال المرفق ماليه تعليقات كل سطر معلق عليه .

طبعن لست انا مبرمج محترف مبتدئ مثلي مثلكم

طبعن الثال يتكون من صفحتين login و Default.aspx

وقاعده بيانات تتكون من جدول واحد اسمه Pro

يتكون من ثلاث اعمده id , UserName , Pass

صفحه login

انشئت في اثنين تكست بوكس واثنين ليبل واثنين بوتون

اثنين تكست بوكس ( لإدخال اليوزر والباسورد )

اثنين بوتون ( واحد دخول والثاني فحص اسم المستخدم )

الليبل ( واحد يطلع لك نتيجه الفحص اسم المستخدم والثاني يعلمك هل كلمه المرور خطا او لا )

حدث الضغط على الدخول

protected void login_Click(object sender, EventArgs e)
	{

		string con = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; 
		/* احضار نص الاتصال بقاعد البيانات من web.config */
		SqlConnection sqlcon = new SqlConnection(con);
		/*انشاء اتصال بقاعده البيانات وتمرير بارمتر نص الاتصال اليها  */
		sqlcon.Open(); /* فتح الاتصال ليكي يتم الاستعلام من قاعده البيانات */
		SqlDataAdapter myadp = new SqlDataAdapter("SELECT * FROM [Pro]", sqlcon);
		/*  انشاء ادابتر وتمرير بارمتر الاستعلام مع تمرير الاتصال اللي انشائناه */
		DataSet mydataset = new DataSet();
		/* انشاء داتا ست لكي تحتوي البيانات اللتي جلبناها من قاعده البيانات */
		myadp.Fill(mydataset);
		/* تم تعبئه الداتا ست بالبيانات اللتي جلبناها عن طريق الادابتر اللي انشائناها */
		sqlcon.Close(); /* نغلق الاتصال بالقاعده */

		/* قاعده البيانات تتكون من جدول واحد فقط اللي هو جدول Pro
		 * الجدول يوجد فيه ثلاث اعمده فقط  id , UserName, Pass */


		DataTable mytabl = new DataTable();
		/* انشئنا داتا تيبل لكي نخزن فيه الجدول الموجود في الداتا ست  
		 * يمكن التعامل مع الداتا ست مباشره ولكني فضلت اسناد التيبل الموجود  بالداتا ست الى داتا تيبل جديده للفهم فقط */
		mytabl = mydataset.Tables[0];
		/* تم اسناد وتخزين الجدول الموجود في الداتا ست اللي احضرناه  من القاعده وتخزينها بداتا تيبل */
		int i;
		/*  انشئنا متغير  بحيث نسند له عدد الصفوف الموجوده بالتيبل لكي نعرف عدد المستخدمين الموجودين بالقاعده لكي يتم عمل لوب */

		i = mytabl.Rows.Count;
		/* عدد الصفوف الموجوده بالجدول */
		i = i - 1;
		/* نقصنا 1 من العدد لان قراءه الصفوف في الداتا تيبل تبدا من 0 وليس من 1
		 * بمعنى ان المستخدم ذو  الايدي رقم 1 في قاعده البيانات يكون  ترتيبه 0 في الداتا تيبل وهكذا
		*/
		/*
		 Label1.Text = mytabl.Rows[1].ItemArray.GetValue(1).ToString();
		 *  في حاله  لو تريد رؤيه قيمه الصف الاول العنصر الاول راح يطلعها لك السطر اللي فوق  */


		for (int j = 0; j <= i; j++)
		 {
			/* هذي لوب  عشان تفحص الاسم والباسورد اللي يكتبها المستخدم ويقارنها  بالموجود عندنا في الداتا تيبل
			 * خزنت الشرط في متغير من نوع بول عشان بس اعرف الشرط صح او خطا  تتبع البرنامج */

			 bool m = TextBox1.Text == mytabl.Rows[j].ItemArray.GetValue(1).ToString() && TextBox2.Text == mytabl.Rows[j].ItemArray.GetValue(2).ToString();
			 if (m)
			 {
				 /* في حاله تسجيل الدخول يعرض له سوف يتم تسجل دخولك ويرسله للصفحه الرئيسيه */
				 Label1.Text = " سوف يتم تسجيل دخولك ";
				 Response.Redirect("Default.aspx");
				 break; /* في حال تحقق الشرط  هذي جمله تطلعنا من اللوب  */
			 }

			 else { Label1.Text = "اسم المتسخدم  وكلمه المرور خاطئه "; } 



		 };





	}

حدث الضغط على فحص اسم المستخدم نفس اللي فوق باختلاف بسيط

في الشرط فقط

for (int j = 0; j <= i; j++)
		{
			bool m = TextBox1.Text == mytabl.Rows[j].ItemArray.GetValue(1).ToString();
			if (m)
			{
				Label2.Text = " اسم المستخدم موجود ";
				break;
			}

			else { Label2.Text = "اسم المتسخدم  غير موجود "; }

اتمنى اكون فدتكم واي ملاحظه اكتبوها لانني مبتدئ :)

تم تعديل هذه المشاركة بواسطة StUd_C في 31 ديسمبر 2007 في 11:32

#2

المثال بالمرفقات

WebSite1.rar

#3

في المثال السابق وضعت كود الدخول

if (m)
			 {
				 /* في حاله تسجيل الدخول يعرض له سوف يتم تسجل دخولك ويرسله للصفحه الرئيسيه */
				 Label1.Text = " سوف يتم تسجيل دخولك ";
				 Response.Redirect("Default.aspx");
				 break; /* في حال تحقق الشرط  هذي جمله تطلعنا من اللوب  */
			 }

بالملاحظه ان الجمله break لن تنفذ في حاله تحقق الشرط لانه بالسطر اللي قبله جمله Response.Redirect تودينا لصفحه الديفولت

فما لها لازمه جمله البريك لكن في كود فحص اسم المستخدم مهمه عشان ماتكمل الفور بعد تحقق الشرط استغلال للموارد > اضن هيك هههه

اليوم جيت وحبيت ازيد عليها الكوكيز في نفس المثال السابق باضافه كم سطر بسيط في كود login عشان نستعمل الكوكيز

وبالذات في اللوب عندما يتحقق الشرط وجود المستخدم في قاعده البيانات

طبعن داخل الكليك على login هي

protected void login_Click(object sender, EventArgs e)

سابقا الكود كان كذا

طبعن باقتطع الكود اللي غيرنا فيه وهو جزء صغير اللي هو if

if (m)
			 {
				 /* في حاله تسجيل الدخول يعرض له سوف يتم تسجل دخولك ويرسله للصفحه الرئيسيه */
				 Label1.Text = " سوف يتم تسجيل دخولك ";
				 Response.Redirect("Default.aspx");
				 break; /* في حال تحقق الشرط  هذي جمله تطلعنا من اللوب  */
			 }

تم اضافه بعض الاسطر وصار كذا

if (m)
			 {
				 /* في حاله تسجيل الدخول يعرض له سوف يتم تسجل دخولك ويرسله للصفحه الرئيسيه */
				 Label1.Text = " سوف يتم تسجيل دخولك ";

				  /* في حال تحقق الشرط  هذي جمله تطلعنا من اللوب  */
				 HttpCookie mycookies = new HttpCookie("cfg");// انشاء كوكيز  سميناه cfg 
				 mycookies.Values.Add("nam", TextBox1.Text);// هنا تم اضافه  اسم المستخدم اللي حطه في الدخول  تم اضافته في الكوكيز
				 mycookies.Values.Add("pass", TextBox2.Text);// وهنا ايضا تم اضافه الباسورد اللي حطه المستخدم 
				 mycookies.Expires = DateTime.Now.AddDays(1d);// وهنا حددنا وقت انتهاء الكوكير بيوم واحد 
				 Response.Cookies.Add(mycookies); // هنا سوينا اضافه للكويز ليتم حفظه في جهاز المستخدم 
				 Response.Redirect("Default.aspx");// وهنا زي ماقلنا قبل  نحول المستخدم للصفحه الديفولت  وراح نقرى فيها الكوكيز اللي انشئناه

			 }

رح لم صفحه الديفولت وانشى ليبل

اسمه

Label1

وفي الحدث protected void Page_Load

نضع هذا الكود لقراءه الكوكيز اللي انشئناه

طبعن لازم تحط شرط

اذا كان ماكان فيه كوكيز راح يحط لك خطا اما اذا كان فيه كوكيز يقراه فتفتح طبيعي ..

Label1.Text = Request.Cookies["cfg"]["nam"];

لم اضع شرط التحقق

الهدف من هذولا كله سهوله التعلم والتوضيح دون الدخول في تفاصيل قدد تتعبنا هههههههه

#4

ياريت تضع شرط التحقق من وجود الكوكي .. وبصراحه تشكر على الجهد والفائده التي قدمتها للمنتدى وللاعضاء المبتدئين في هذا المجال .

ليس كل ما يتمناه المرء يدركه

arabteam2000.gif

#5

اخي العقدة

هذا المثال تناول هذه الفكرة في رد لمشاركة سابقة انت وضعتها.........!!!!

/index.ph...st&id=56467

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





 

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

Mohammad Sonaiea
 

#6
if (Request.Cookies[cookiename] == null)

TextBox2.Text = "No cookie found";

else

TextBox2 .Text = Request.Cookies[cookiename].Value;

وهذي معلومات لطريقه التعامل مع الكوكيز بطريقه السؤال والجواب

وبطريقه واضحه

How to Create a Cookie ?

HttpCookie objCookie = new HttpCookie(cookiename);
Response.Cookies.Clear();
Response.Cookies.Add(objCookie);
objCookie.Values.Add(cookiename,cookievalue);
DateTime dtExpiry = DateTime.Now.AddDays(iDaysToExpire);
Response.Cookies[cookiename].Expires =dtExpiry;

How to Read Cookie ?
string value= Request.Cookies[cookiename].Value;

How to Delete a Cookie?
Response.Cookies[cookiename].Expires = DateTime.Now.AddYears(-30);

Checking for Cookie in ASP.NET?

if (Request.Cookies[cookiename] == null)

TextBox2.Text = "No cookie found";

else

TextBox2 .Text = Request.Cookies[cookiename].Value;
#7

انت جااااااااااااااااامد جدا انا متشكر جداااا

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