عبدالعزيز برغش
-
المساهمات
17 -
تاريخ الانضمام
-
تاريخ آخر زيارة
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
أجوبة بواسطة عبدالعزيز برغش
-
-
شكرا على الإجابة
بتاريخ 4 ساعات قال حسام برهان:3- بالنسبة للدوال التي تولّد مثل هذا الـ token فيعود ذلك إلى لغة البرمجة المستخدمة، أو إلى قاعدة البيانات المستخدمة في حال أردت استخدام Stored Procedure مثلًا.
ما هي أمثلة الدوال التي يمكن استخدامها مع لغة c# وقواعد بيانات Sql server؟
- 1
-
السلام عليكم
كنت أتساءل عن آلية عمل صفحة "إستعادة كلمة المرور" الموجودة في الأغلب المواقع
حيث في الغالب يقوم المستخدم بإدخال البريد الإلكتروني بعدها يتلق رسالة تحتوي على رابط لإعادة تعيين كلمة المرور كالتالي
http://examle.com?token=[string]
حيث يكون الرابط يحتوي على token للتأكد من هوية المستخدم
هل يتم تخزين token إستعادة لكل كمستخدم في قاعدة البيانات؟ -مع العلم أن في الأغلب ال token يتغير مع كل رسالة إستعادة للبريد الإلكتروني- هل يتم إذن تحديث ال token في قاعدة البيانات كل مرة يطلب فيها المستخدم إستعادة كلمة مروره؟
وإذا كان كذلك فما هي الدوال التي يمكن استخدامها لتوليد هذا ال token؟
هل يوجد طرق أخرى لعمل هذه الصفحة؟ وإذا كان كذلك فما هي أفضل الطرق؟
-
لا ليس هنالك أي شيء مرتبط بالجدول
-
الكود التالي المفترض أن يقوم بتغيير كلمة المرور الخاصة بالمستخدم
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["conn"].ConnectionString); con.Open(); SqlCommand updatePass_cmd = new SqlCommand("UPDATE Users set Password = @newPass WHERE Password = @oldPass AND user_token = @user_token", con); updatePass_cmd.Parameters.AddWithValue("@newPass", changePassword_newPassword.Text); updatePass_cmd.Parameters.AddWithValue("@oldPass", changePassword_oldPassword.Text); updatePass_cmd.Parameters.AddWithValue("@user_token", Session["signin_session"]); int backResult = updatePass_cmd.ExecuteNonQuery(); if (backResult != 0) { alert_panel.Visible = true; alert_panel.CssClass = "alert alert-success alert-dismissible animated fadeInUp shadow z3 has-hover"; alert_lbl.Text = "تم تغيير كلمة المرور بنجاح."; iconName_lbl.Text = "done"; } else { alert_panel.Visible = true; alert_panel.CssClass = "alert alert-danger alert-dismissible animated fadeInUp shadow z3 has-hover"; alert_lbl.Text = "كلمة المرور القديمة التي أدخلتها خاطئة."; iconName_lbl.Text = "close"; } con.Close();
المفترض أن يقوم بإستعادة عدد الصفوف التي تأثرت إل المتغير backResult وبناء عليه يعرض رسالة نجاح إذا كان عدد الصفوف أكبر من صفر أو يعرض رسالة خطأ إذا لم يتأثر أي صف
ما يحدث هو أن قيمة backResult تكون دائما صفر بالرغم أنه عند فحصي لقاعدة البيانات أجد كلمة المرور قد تغير بالفعل أي المفترض أنه هناك عدد من الصفوف تأثر! لكن لا أعرف أين المشكلة -
الصورة لجدول الاشعارات الذي أريد الاستعلام عن عدد الاشعارات الموجود به
@حسام برهان -
السلام عليكم
هذه دالة SQL تقوم بجلب الرسائل وكل البيانات الخاصة بالرسالة من عنوان الرسالة وصولا إلى اسم المرسلSELECT Messages.ID[message_id], Messages.time_info, sn.Name[sender_name], sn.Token[sender_token], rc.Name[request_cat] From Messages INNER JOIN Users sn ON Messages.sender_id = sn.ID, Help INNER JOIN Categories rc ON Help.RequestCat_id = rc.ID WHERE Messages.help_id = Help.ID AND Messages.receiver_id = @user_id
وكنت أحتاج جعلها تقوم بجلب عدد الاشعارات المرتبطة بالرسالة أيضا بإستخدام دالة الSQL COUNT() لكن حدثت مشاكل عند محاولتي اضافتها بالطريقة العادية
جدول الإشعارات كالتالي
هل من اقتراحات لكيفية القيام بذلك؟
-
شكرا @يوسف سيدعلى الإجابة الجميلة
هل يمكنك توضيح أكثر كيف يمكن تطبيق الحل الأول وهو "طلبات متعددة باستخدام Ajax" أي ما هي خطوات وطريقة تنفيذه؟ -
ماهي آلية عمل نظام الإشعارات في مواقع مثل أكاديمية حسوب مثلا أو حسوب io
-
شكرا لحضرتك.
لكن هل يمكنك توضيح جزء الوصول إلى ال Panel عن طريق المتغير panels
أي نموذج لإستخدام offerHelpVisitor_panel بعد إيجادها في ال Page_Load مثلا -
تطبيق Web Forms
ال panel التي أريد أن أجدها باسم offerHelpVisitor_panel موجودة داخل ItemTemplate الموجود بالتالي داخل repeater باسم tasks_repeater
كود ال front-end كالتالي<asp:Repeater ID="tasks_repeater" runat="server"> <ItemTemplate> <asp:Panel ID="offerHelpVisitor_panel" runat="server"><asp:Panel> </ItemTemplate> </asp:Repeater>
-
يمكنك توسيط ال iframe بإستخدام هذا الكود
<!DOCTYPE html> <html> <head> <title>Block and Inline elements</title> <meta charset=UTF-8/> <style> iframe { display: block; margin: 50px auto; } </style> </head> <body> <div style="background-color:black;color:white;padding:20px;text-align:center;"> <h1>Neovka</h1> <p>It's a site where you can earn lots of <span style="color:#4CAF50">Money</span> online by shortning links and share it with people</p> </div> <iframe src="" height="200" width="300" name="a"></iframe><br> <a href = "http://www.w3schools.com" target="a">W3schools.com</a><br> <a href = "http://devilsfruits.blogspot.com" target="a">Devil's Fruit Blogspot</a> </body> </html>
ستلاحظ
margin: 50px auto;
حيث أن 50px تحدد قيمة الهامش في أعلى العنصر وأسفله ويمكنك تغييرها بما يناسبك أما auto فهي تحدد الهامش على جانبي العنصر وهي تضعهما متساويين تلقائياً مما يضمن توسيط عنصر ال iframe أياً كان مقاس الشاشة المستخدم
ملاحظة : يجب وضع
display: block;
حتى يتم توسيط العنصر
-
كيف أجد Control معين داخل repeater في c# حيث أنه لا يمكن ايجاده بهذا الكود
Panel offerHelp_panel = tasks_repeater.FindControl("offerHelpVisitor_panel") as Panel;
-
بتاريخ 9 دقائق مضت قال حسام برهان:
انسخ كامل الملف الذي يحوي هذه الشيفرة، واعرضه من فضلك.
الملف كبير يمكنني أن أعرض على حضرتك الجزء الخاص بهذا الزر بالإضافة إلى Class الصفحة أو إذا كنت متأكدا يمكن أن أعرض الملف الكامل لكنه كبير
*ملحوظة أيضا الزر وال label موجودان داخل updatepanelكود الجزء الخاص بالزر
using System; using System.Collections.Generic; using System.Configuration; using System.Data; using System.Data.SqlClient; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } int posts_num = 1; protected void loadMore_btn_ServerClick(object sender, EventArgs e) { posts_num ++; counter_lbl.Text = posts_num.ToString(); } }
إذا ما كان الكود الكامل للصفحة مازال ضروريا فقط أخبرني بذلك
-
السلام عليكم
لدي زر ومتغير Variable وأريد جعل الزر يزيد قيمة المتغير بمقدار 1 في كل مرة يم الضغط عليه
أعتقد أن الأمر قد يكون سهل لكن لدي مشكلة حيث أن الزر يقوم بزيادة قيمة المتغير مرة واحدة فقط
هذا هو الكود الذي استخدمتهint posts_num = 1; protected void loadMore_btn_ServerClick(object sender, EventArgs e) { posts_num ++; counter_lbl.Text = posts_num.ToString(); }
لكن الزر يعمل لمرة واحدة فقط أي يعرض 2 ثم يتوقف ولا يزيد عن ذلك كما هو المتوقع
هل من إقتراحات؟
-
السلام عليكم
حاليا أعمل على موقع حيث أنا المنشورات فيه مرتبطة بتصنيفين Categories ما يطلبه المستخدم وما يقدمه المستخدمجداول البيانات كالتالي
Help
Categoriesجملة Select التي استخدمها كالتالي والمفترض بها ان تجلب كل المعلومات الخاصة بالمنشور
SELECT Help.ID[help_id],Help.Details[help_details],Help.DateTime[help_datetime],Users.Name[user_name],Users.Bio[user_bio],Users.Url[user_url],Users.Token[user_token] FROM Help,Users WHERE Help.user_id = Users.ID ORDER BY Help.DateTime DESC
ولكن ينقصها شيء لجلب اسم ال Category ويكون مرة مرتبط بما يطلبه المستخدم Help.RequestCat_id ومرة بما يقدمه المستخدم Help.OfferCat_id
وأنا لا أعرف كيف أكتب هذا الجزء أو كيف يجب أن يكون! لذا فإن كان لدى أحد أية إقتراحات فسأكون شاكراً
ما هي آلية عمل صفحة "إستعادة كلمة المرور"؟
في أسئلة البرمجة
نشر
كنت أفكر في البداية استخدام MD5 لتوليد hash للمستخدم لكن المشكلة أن الناتج يكون طويلا
وكذلك فإن Guid بها نفس المشكلة حيث أن الناتج طويل (32 byte) لذا سألت عن أمثلة مختلفة للدوال لأني أفضل شيئا كالتالي
أو إن كنت حضرتك تعرف دالة تمكنني من التحكم في طول الناتج؟