| |||||||
| المدوّنات | البحث | مشاركات اليوم | اجعل كافة المشاركات مقروءة |
|
| | LinkBack | أدوات الموضوع |
| |||||
| اقتباس:
اقتباس:
المشكلة لا أعلم هل هي نفس مشكلتي أم لا .. ولكن قد يفيدك الحل .. وجرب لن تخسر شيئا .. بانتظار الاخ احمد لتوضيح الحل .. تحياتي لك ..
__________________ بداية للمشاريع التجارية ASP.NET,ASP 3.0 المدونة الشخصية : asp2asp.com عدنا والعود أحمد... | |||||
|
| |||||
|
حللت المشكلة السابقة كان خطا في كود الاستعلام وظهرت لي مشكلة اخرى في تطبيق cmd.ExecuteNonQuery() ووضعت داتا معينه لكي أتاكد من الايميل واعطاني انه نس الايميل يعني تم الاتصال والاسعلام الصحيح لكن يقست المشكله في الكتابة بالداتا بيس أنا كنت اتبع طريقة sotredprocedur وكانت سهله ما ادري ليش هالمره مو راضي يسوي insert على العموم انا غيرت الكود كامل وحاولت اكتب كود الأخ احمد كامل لكن نفس الايرور معقوله تكون صلاحية على العموم مشكور أخوي على مساعدتك بجرب مشكلة الوقت واردلكم شاكر لك تعاونك
__________________ Eng.Fedail Computer engineering Bachlor | |||||
|
| |||||
|
تمام .. الصبلاحيات مدري عنها .. بس كان مجرد احتمال .. ومادام نفع معاك خلاص .. مبارك عليك ![]() تحياتي وبانتظار استكمال الدروس ..
__________________ بداية للمشاريع التجارية ASP.NET,ASP 3.0 المدونة الشخصية : asp2asp.com عدنا والعود أحمد... | |||||
|
| |||||
|
بديت اكمل المشروع بروحي وان شاء الله اول ما اسوي شي يمكن يفيدنا بالمشروع برفقه لكم الظاهر اخونا صاب الدرس مشغول الفترة هذي لكن بنكمل حنا ان شاء الله على مسيرته اللي بداها ربي يوفقه
__________________ Eng.Fedail Computer engineering Bachlor | |||||
|
| |||||
|
هلا شباب الله يحفظكم وكل عام وانتم بخير اسف جدا لاني الايام الماضيه كنت في اجازة عيد ان شاء الله بنكمل من اليوم باذن الله تعالىاخوي asp2asp ماشاء الله عليك الله يحفظك اخوي الثلج بخصوص مشكلتك الي كنت تتكلم عنها مشكلتك كانت انه مايقبل الاضافة في حقل التاريخ لما انت كنت عامله من نوع Date لما غيرته لنوع varchar مشي الحال معك اولا طالما انه اضاف في المرة الثانيه لما حولته لنوع varchar اذا مافي مشاكل بصلاحيات الاضافة المشكلة غالبا كانت في صيغة التاريخ ال SQL Server في وضعه الافتراضي ياخذ التاريخ بهذه الصيغة شهر/يوم/سنة ممكن التاريخ في جهازك صيغته بهذا الشكل يوم/شهر/سنه او انه تاريخ هجري وليس ميلادي على كل الاحوال عشان لا تواجه مشاكل في صيغة التاريخ لما تاخذ المشروع من جهاز لجهاز او تحمله لسيرفر اون لاين الي عملته حل مثالي ويشتغل على كل الاجهزه بهذا الشكل لانه صار حقل نص وليس تاريخ بياخذ نص -- طبعا بخصوص مشكلته التاريخ هذه ممكن تجنبها بطرق عديده منها مثلا التاكد من وضعيه وصيغة التاريخ بجهازك لكن لو كنت في جهاز سيرفر ماخذ مساحة من عنده صعب انك تخلي المستضيف انه يعدل التاريخ او صيغة التاريخ على حسب برنامج -- لذلك بكون عندك حل وهو استخدام دوال لتحويل التاريخ مثلا اذا كان بالجهاز هجري تعمله تحوله ميلادي وهكذا -- وهذا مجال ثاني الكلام فيه خلينا مركزين في الموضوع الاصلي الان -- اذا كانت هذه مشكلتك ان شاء الله انك تحايدتها بالحل الي عملته وهو جيد اذا في اي مشكلة ثانيه او اني فهمت المشكلة غلط ياريت توضح لي في امان الله وحفظه
__________________ احنا بكل فخر واخلاص باغة باروده ورصاص وصقور تحب المقناص بجو الأردن عاليه وفوق الأردن عاليه ........ | |||||
|
| |||||
|
هلا بيكم شباب ![]() اوكي نكمل الدروس ان شاء الله على بركة الله بسم الله الرحمن الرحيم في الدرس الاخير وصلنا لمرحلة الانتهاء من عمل صفحة تسجيل العضو الجديد او تسجيل زبون جديد في مركز الدعم الفني في هذا الدرس سوف نقوم بعمل صفحة تسجيل الدخول الي يكتب بها العضو اسمه وكلمة مروره ويعمل تسجيل دخول للوحة تحكمه الشرح سوف يكون على 2005 بما انكم تشتغلون على ال 2005 للتوضيح :- في بيئة ال 2005 يوجد ادوات مخصصه للتعامل مع حالات تسجيل الدخول او باقي العلمايات الشائعه في المواقع لكن في درسنا لن نعتمد عليها سوف نحاول ان نقلل من استخدام هذه الادوات قدر المستطاع وفي النهاية ان شاء الله ممكن نتطرق لها اقصد في نهاية الدروس كلها ممكن نتطرق لها ولشرحها للي يحب انه يستخدمها نقوم بعمل صفحة تسجيل الدخول الي يكون اسمها مثلا signup.aspx نقوم بوضع اداة من نوع Label على النموذج اسمها البرمجي هو ErrorLabel وضيفتها هي عرض رسائل الخطأ التي قد تحدث اثناء تطبيق حدث تسجيل الدخول او عرض رسائل الخطأ عند عدم تطابق المعلومات مثلا نضع ادوات تكست بوكس لاسم المستخدم وكلمة المرور وفي النهاية زر تسجيل الدخول الكود البرمجي سيكون في حدث النقر مرة واحده على زر تسجيل الدخول وسيكون بالشكل التالي 1- التأكد من ادخل قيمة في خانة اسم المستخدم 2- التأكد من ادخال قيمة في خانة كلمة المرور 3- التأكد من وجود اسم مستخدم في قاعدة البيانات يحمل نفس اسم المستخدم الموجود وجلب كلمة المرور الخاصه فيه من خلال جملة سيلكت اختيار من قاعدة البيانات حيث نطلب منه جلب كلمة المرور لاسم المستخدم المدخل 4- في حالة عدم وجود اسم مستخدم مطابق للمدخل نقوم باخراج رسالة خطأ في الليبل الخاص برسائل الخطأ 5- نقوم بمقارنة كلمة المرور لاسم المستخدم التي عادت لنا من جملة الاختيار السابقة مع كلمة المرور المدخله وفي حالة عدم تطابقها نخرج له رسالة خطأ في عملية تسجيل الدخول في حالة وجود اسم المستخدم وتطابق كلمة المرور المدخله مع كلمة المرور الموجوده لاسم المستخدم في قاعدة البيانات اذا فقد نجحت عملية تسجيل الدخول اذا تخطى هذه المرحلة نأتي لمرحلة تخزين البيانات في السيشن لاننا هنا سنستخدم السيشن في عملية تخزين المعلومات وليس الكويكز وفيما بعد نتطرق للكوكيز ان شاء الله للمزيد اطلع على كيفية التعامل مع السيشن في هذا الدرس http://www.swalif.net/softs/showthread.php?t=159868 في الخطوة الاخيره من صفحة تسجيل الدخول نفوم بتخزين بيانات المستخدم في داخل السيشن لاستخدامها في لوحة تحكمه وللتاكد من انه في وضع تسجيل الدخول اثناء تجوله في صفحات لوحة تحكمه ومن ثم نقوم بتحويله لصفحة المعلومات ونخبره بنجاح عملية تسجيل الدخول ومن ثم تحويله الي صفحة لوحة التحكم او بداية لوحة التحكم ولنفرض ان اسمها هو ucpindex.aspx نقوم الان بتحويل الخطوات اعلاه الي كود برمجي في زر تسجيل الدخول وتحديدا في حدث النقر على الزر مرة واحد نقوم بكتابة الكود الاسم البرمجي لصندوق اسم المستخدم هو UserNameTextBox الاسم البرمجي لصندوق كلمة المرور هو UserPassTextBox في البداية نتأكد من ادخل المستخدم لقيم في داخل الادوات الخاصة باسم المستخدم وكلمة المرور كود: 'التأكد من ادخل اسم المستخدم وكلمة المرور
If UserNameTextBox.Text = Nothing Then
ErrorLabel.Text = "ادخل اسم المستخدم"
Exit Sub
End If
If UserPassTextBox.Text = Nothing Then
ErrorLabel.Text = "ادخل كلمة المرور"
Exit Sub
End If بعد ذلك نتأكد من وجود اسم المستخدم في قاعدة البيانات في جدول الاعضاء ونقوم بجلب كلمة المرور لاسم المستخدم في حالة تم ايجاده كود: 'تعريف متغيرات الاتصل
Dim Con As SqlClient.SqlConnection = New SqlClient.SqlConnection
Dim Cmd As SqlClient.SqlCommand = New SqlClient.SqlCommand
Dim Adap As SqlClient.SqlDataAdapter = New SqlClient.SqlDataAdapter
Dim ConStr As String = "نص الاتصال"
Dim SQLStr As String = "select Pass from TUsers where Email Like '" + UserNameTextBox.Text + "'"
Dim DataSetSUN As New DataSet
'تنفيذ جملة الاستعلام في القاعده وجلب النتائج
Con.ConnectionString = ConStr
Cmd.Connection = Con
Cmd.CommandText = SQLStr
Con.Open()
Adap.SelectCommand = Cmd
Adap.Fill(DataSetSUN)
Con.Close() في حالة كانت عدد النتائح العائده صفر فهذا يعني انه لم يجد اسم مستخدم متطابق نطبق له رسالة الخطأ كود: If DataSetSUN.Tables(0).Rows.Count = 0 Then
ErrorLabel.Text = "خطأ في معلومات الدخول"
Exit Sub
End If 'وقد عاد لنا بكلمة المرور المخزنه لهذا الاسم 'نقارن كلمة المرور العائده مع كلمة المرور المدخله 'في حالة عدم تطابقهم نقوم باخراج رسالة خطأ له كود: If DataSetSUN.Tables(0).Rows(0)(0) <> UserPassTextBox.Text Then
If DataSetSUN.Tables(0).Rows.Count = 0 Then
ErrorLabel.Text = "خطأ في معلومات الدخول"
Exit Sub
End If
End If 'في حالة وصول الكود في التنفيذ لهذه المرحلة هذا يعني 'انه قد تخطى مرحلة التحقق من اسم المستخدم وكلمة المرور 'نقوم بتخزيت معلوماته في السيشن ونحوله لصفحة نجاح التسحيل كود: Session("UserName") = UserNameTextBox.Text
Session("UserPass") = UserPassTextBox.Text
Response.Redirect("detailspage.aspx?SInfo=SignInSuccess") الان في صفحة المعلومات نقوم باستقابل القيمة المرسله عن طريق الرابط وفي حالة كانت تساوي SignInSuccess نعرض له رسالة نجاح تسجيل الدخول ونحوله للوحة التحكم او اي منطقة نريدها بنفس الطريقة التي استخدمناها في صفحة تسجيل عضو جديد في امان الله وحفظه
__________________ احنا بكل فخر واخلاص باغة باروده ورصاص وصقور تحب المقناص بجو الأردن عاليه وفوق الأردن عاليه ........ | |||||
|
| |||||
|
تم بحمد الله تطبيق الدرس بنجاح ولله الحمد .. الشكر لله أولاً ثم للأخ أحمد على بذله وقته الثمين بهذه الدروس .. أتمنى من الله العلي القدير أن يرزقه خيري الدنيا والآخرة .. وبانتظار بقية الدروس .. -------------------------------- ملاحظة: هل يمكن أن أستغني عن تعريف سطر الاتصال بالقاعدة في كل صفحة .. مثلا باضافتها لصفحة web.config.. تحياتي لك ..
__________________ بداية للمشاريع التجارية ASP.NET,ASP 3.0 المدونة الشخصية : asp2asp.com عدنا والعود أحمد... | |||||
|
| |||||
| اقتباس:
هلا اخوي هو بالوضع الطبيعي لازم يكون نص الاتصال في داخل ملف الكونفج لان انت لما تخلص مشروعك وتعمله معالجة الملفات تتشفر ونص الاتصال في الاصل متغير على حسب الموقع ومعلومات قاعدة البيانات فلازم انه يكون في ملف الكونفج مثلا حتى يقدر المستخدم يغيره عشان تضيفه في ملف الكونفج في داخل الملف اسفل ال <appSettings> اضيف نص الاتصال بهذه الطريقة كود: <add key="ConnectionString" value="Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=NewsDB;Data Source=xp9" /> وحتى تستخدمه في مشروعك استعدي نص الاتصال بهذه الطريقة كود: ConfigurationSettings.AppSettings("ConnectionString") بالتوفيق
__________________ احنا بكل فخر واخلاص باغة باروده ورصاص وصقور تحب المقناص بجو الأردن عاليه وفوق الأردن عاليه ........ | |||||
|
| |||||
|
أخوي أحمد أشكرك على تكملة الدروس لكن اتمنى انك ان تستمر بأرفاق الدروس على هيئة وورد بخصوص نسخة الفيجوال ان اشتغلته على 2003 واعتقد انه افضل من 2005 لانه يمكنك من وضع اماكن الأدوات اينما تردي وهذه هي المشكله اللتي تواجهني في 2005 فأتمنى شرحها وان نثبت على واحد منهم لأني سوف اضطر الى كتابة البرنامج من جديد على 2005 وشاكر لك على دروسك
__________________ Eng.Fedail Computer engineering Bachlor | |||||
|
| |||||
|
أخوي (الثلج) .. مايحتاج أن تعيد تنفيذ الدروس .. قم بعملية (إستيراد) في 2005 .. وشغلك بيكون محفوظ كماهو .. الأمر الأخر وما أدري هل يتفق معي الأستاذ أحمد عليه .. ألا وهو أن 2005 أفضل من ناحية موافقة المعايير القياسية للتصميم .. لأن الأصل أن يكون تقسيم الصفحة مبني على وسوم <div> .. وهو مدعومة بشكل جيد في 2005 .. ولا أظن أن هناك مشاكل في المشروع .. فالأستاذ أحمد يعمل على نسخة 2003 .. وكذلك 2005 .. وأي مشاكل أو إختلافات سيبنها لنا مشكوراً .. تحياتي لك .. ومشتاقون لتكملة هذا المشرع الرائع .. من الأستاذ الأروع ![]() أخوك عبد الله asp2asp
__________________ بداية للمشاريع التجارية ASP.NET,ASP 3.0 المدونة الشخصية : asp2asp.com عدنا والعود أحمد... | |||||
|
| |||||
|
عندي مشكله معقدتني أني ارسلت بال response قيمة ID ويطبعها على ليبل في الصفحة الجديدة وبعدين يستدعي قيم معينه من الداتا بيس بس مو راضي يسجبها زي ما كنت اسحبها وحاولت اخزن القيمة بمتغير بدل الليبل واقارنها معاه واطبع المعلومات بس يعطيني خطأ بالداتا سيت اقتباس:
اقتباس:
label1.text=1 rinfo = 1 أما عن طريق اتباعها من الريسبونس ما يرضى
__________________ Eng.Fedail Computer engineering Bachlor | |||||
|
| |||||
|
أخي (الثلج) .. لا أدري هل مشكلتك لها علاقة بالمشروع ! أتمنى لو أنك وضعتها بموضوع منفصل .. لكي لا نخرج عن المشروع .. وبالنسبة لمشكلتك فللأسف ليس لدي علم بها .. إن شاء الله الأستاذ أحمد مايقصر معك .. تحياتي لك .
__________________ بداية للمشاريع التجارية ASP.NET,ASP 3.0 المدونة الشخصية : asp2asp.com عدنا والعود أحمد... | |||||
|
| |||||
|
حاولت أكمل البرنامج لوحدي واللي سويته أنك لما تسجل دخول تحولك الصفحة على صفحة تعديل المعلومات بصفحة تعديل المعلومات تتاكد من باسووردك القديم اذا صحيح تغيير باسووردك وتغير الاسم وموقعك ومعلوماتك قدرت انفذ موضوع الباسوورد بس واجهتني مشكلة بتغيير الأسم والمعلومات لما يضغط على الزر يرجع نفس المعلومات تقدروا تشوفوهم وتابعوا أرفقت البرنامجين على اللغتين 2003 و 2005
__________________ Eng.Fedail Computer engineering Bachlor | |||||
|
| |||||
| اقتباس:
اعتذررررررررررررررررر عن هذا الانقاطاع بسبب بعض المشااااااااغل وان شاااااء الله نكمل المشروع هل يومين باذن الله تعالى اخوي الثلج بخصوص مشكلتك هذه السبب فيها هو اعادته تخزين البيانات الي استدعيتها في حدث تحميل الصفحة قبل عملية التحديث يعني الي يصير انت في حدث تحميل الصفحة استدعيت معلومات المستخدم وخونتهم في ادوات من نوع textbox وفي حدث الضغط على زر التحديث طلبت منه يحدث الحقول في قاعدة البيانات ويضع بها البيانات الجديده الي ادخلتها في ال textbox الان الي يحصل عندما تضغط على زر تحديث البيانات هو انه في البداية يروح ينفذ حدث تحميل الصفحة اولاً ومن ثم ينفذ حدث الضغط على الزر وهذا امر لازم تراعيه في كل صفحاتك اعمل تتبع على برنامج يعني اضغط F5 على اول سطر في حدث تحميل الصفحة وتتبع البرنامج شوف يوم انت تضغط زر تحديث البيانات رح تلاحظ انه في البداية نفذ حدث تحميل الصفحة ومن ثم نفذ حدث الضغط على زر التحديث يعني في هذه الحالة رايح يروح يجيب البيانات الاصليه مرة اخرى ويخزنها في الادوات textbox ومن ثم يحدث يعني رح يرجع يخزن نفس البيانات وليس ماادخلته انت لكي تتجنب هذا استخدم في حدث تحميل الصفحة هذا الامر Page.IsPostBack هذا يعني انه في حالة كانت الصفحة تتحمل للمره الثانيه يعني في حالة حدوث حدث معين من الادوات الموجوده على الصفحة اذا كان يساوي نعم يعني انه انت الصفحة تتحمل ولكن نتيجة حدوث حدث ضغط على الزر مثلا اذا كانت تساوي لا يعني انه الصفحة تتحمل لاول مرة الان كيف ممكن نستفيد منه انت طبعا فرغت المعلومات في داخل الادوات textbox الي تسويه هو انك في عملية افراغ البيانات في داخل الادوات اولا تأكد اذا كانت الصفحة محمله للمرة الاولى اذا فرغ المعلومات في الادوات اذا كانت لا فلا تفرغها هكذا كود: If Page.IsPostBack = False Then
'فرغ البيانات داخل الادوات
End If اذا رايح يبقى موجود داخل الادوات المعلومات الي انت ادخلتها وتريد تحديثها بعدها ينفذ حدث النقر على الزر ويحدث عندك بشكل طبيعي في ملاحظة مهمه :- لماذا في الباسوورد حدث عندك بدون اي مشاكل ؟؟؟؟ السبب هو انك طالب تغيير الباسوورد يعني انت في البداية تتأكد من الباسوورد لكن ال textbox الي فيه الباسوورد الجديد مافي بيانات يتم تخزينها داخله في حدث تحميل الصفحة ولهذا ماعملك اي مشاكل في عملية تحديث الباسوورد اتمنى تكون الفكرة واضحه الان ولو في اي مشاكل فيها بلغني اخوي
__________________ احنا بكل فخر واخلاص باغة باروده ورصاص وصقور تحب المقناص بجو الأردن عاليه وفوق الأردن عاليه ........ | |||||
|
![]() |
| |
| |
| أدوات الموضوع | |
| |