اذهب إلى المحتوى

عبدالعزيز برغش

الأعضاء
  • المساهمات

    17
  • تاريخ الانضمام

  • تاريخ آخر زيارة

أجوبة بواسطة عبدالعزيز برغش

  1. كنت أفكر في البداية استخدام MD5 لتوليد hash للمستخدم لكن المشكلة أن الناتج يكون طويلا

    وكذلك فإن Guid بها نفس المشكلة حيث أن الناتج طويل (32 byte) لذا سألت عن أمثلة مختلفة للدوال لأني أفضل شيئا كالتالي

    GforzL3Swzrbjc5xHP_m
    5sYiXTMwvypFZw47_Wj2

    أو إن كنت حضرتك تعرف دالة تمكنني من التحكم في طول الناتج؟

    • أعجبني 1
  2. شكرا على الإجابة

    بتاريخ 4 ساعات قال حسام برهان:

    3- بالنسبة للدوال التي تولّد مثل هذا الـ token فيعود ذلك إلى لغة البرمجة المستخدمة، أو إلى قاعدة البيانات المستخدمة في حال أردت استخدام Stored Procedure مثلًا.

    ما هي أمثلة الدوال التي يمكن استخدامها مع لغة c# وقواعد بيانات Sql server؟

    • أعجبني 1
  3. السلام عليكم

    كنت أتساءل عن آلية عمل صفحة "إستعادة كلمة المرور" الموجودة في الأغلب المواقع

    حيث في الغالب يقوم المستخدم بإدخال البريد الإلكتروني بعدها يتلق رسالة تحتوي على رابط لإعادة تعيين كلمة المرور كالتالي

    http://examle.com?token=[string]

    حيث يكون الرابط يحتوي على token للتأكد من هوية المستخدم

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

    وإذا كان كذلك فما هي الدوال التي يمكن استخدامها لتوليد هذا ال token؟

    هل يوجد طرق أخرى لعمل هذه الصفحة؟ وإذا كان كذلك فما هي أفضل الطرق؟

  4. الكود التالي المفترض أن يقوم بتغيير كلمة المرور الخاصة بالمستخدم

    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  تكون دائما صفر بالرغم أنه عند فحصي لقاعدة البيانات أجد كلمة المرور قد تغير بالفعل أي المفترض أنه هناك عدد من الصفوف تأثر! لكن لا أعرف أين المشكلة

  5. السلام عليكم
    هذه دالة 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() لكن حدثت مشاكل عند محاولتي اضافتها بالطريقة العادية 

    جدول الإشعارات كالتالي
    Noti.PNG

    هل من اقتراحات لكيفية القيام بذلك؟

     

  6. تطبيق 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>

     

  7. يمكنك توسيط ال 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;

    حتى يتم توسيط العنصر

  8. بتاريخ 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();
        }
    }

    إذا ما كان الكود الكامل للصفحة مازال ضروريا فقط أخبرني بذلك 

  9. السلام عليكم 
    لدي زر ومتغير Variable وأريد جعل الزر يزيد قيمة المتغير بمقدار 1 في كل مرة يم الضغط عليه
    أعتقد أن الأمر قد يكون سهل لكن لدي مشكلة حيث أن الزر يقوم بزيادة قيمة المتغير مرة واحدة فقط
    هذا هو الكود الذي استخدمته

    int posts_num = 1;
    protected void loadMore_btn_ServerClick(object sender, EventArgs e)
    {
       posts_num ++;
       counter_lbl.Text = posts_num.ToString();
    }
    

    لكن الزر يعمل لمرة واحدة فقط أي يعرض 2 ثم يتوقف ولا يزيد عن ذلك كما هو المتوقع

    هل من إقتراحات؟

  10. السلام عليكم
    حاليا أعمل على موقع حيث أنا المنشورات فيه مرتبطة بتصنيفين Categories ما يطلبه المستخدم وما يقدمه المستخدم

    جداول البيانات كالتالي

    Help
    Help.PNG


     Categories
    Categories.PNG

    جملة 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

    وأنا لا أعرف كيف أكتب هذا الجزء أو كيف يجب أن يكون! لذا فإن كان لدى أحد أية إقتراحات فسأكون شاكراً

×
×
  • أضف...