النتائج 1 إلى 13 من 13

الموضوع: دالة member من تصميمي

  1. #1
    عضو نشيط
    تاريخ التسجيل
    Feb 2004
    المشاركات
    196

    دالة member من تصميمي



    يا إخوان أحتاج إلى مساعدة من الإخوة المبرمجين .. آنة سويت دالة member التي تتأكد من تسجيل دخول المستخدم .. ولكن المشكلة فيها خلل بسيط .. و آنة ما عرفته .. أحتاج مساعدتكم في تصحيح هذا الخطأ .. و التشييك على الثغرات الأمنية .. و شكرا
    كود PHP:
    function member($username$password$page)
    {
    $user trim($username);
    $pass trim($password);

        if(!
    $user && !$pass)
            {
            echo 
    "Your Username or Password is not correctly. Please, Go back and try again 1";
            }
        else
            {
            
    $query="SELECT user, pass FROM stud WHERE user = '$user' AND pass = password('$pass')";
            
    $result=mysql_query($query);

            if(!
    $result)
                {
                echo
    "Your Username or Password is not correctly. Please, Go back and try again 2";
                }
            else
                {
                
    $_SESSION['user'] = $_POST[user];
                
    $_SESSION['pass'] = $_POST[pass];
                echo 
    $page;
                }
            }

    هذا هو الكود أرجو المساعدة في أقرب وقت ممكن ..





    __________________
    لغة PHP

    طريقك نحو التقدم و الإبداع .. قريبا جداً


  2. #2
    عضو فعال جدا
    تاريخ التسجيل
    Apr 2002
    المشاركات
    2,046


    السلام عليكم ورحمة الله وبركاته...

    بالنسبة للكود فلديك خطأ في هذا الجزء
    كود PHP:
    $_SESSION['user'] = $_POST[user]; 
    $_SESSION['pass'] = $_POST[pass]; 
    والذي يجب استبداله بهذا الجزء:
    كود PHP:
    $_SESSION['user'] = $result['user']; 
    $_SESSION['pass'] = $result['pass']; 
    جرب وأخبرني بالنتيجة

    تحياتي






  3. #3
    عضو نشيط
    تاريخ التسجيل
    May 2006
    المشاركات
    107


    كما قال اخي محمود

    وهناك ملاحظة أخرى:

    يمكن استبدال:
    كود PHP:
    function member($username$password$page

    $user trim($username); 
    $pass trim($password); 

        if(!
    $user && !$pass
            { 
            echo 
    "Your Username or Password is not correctly. Please, Go back and try again 1"
            } 

    اقتراح:


    قبل استدعاء الدالة :
    كود PHP:
    $username strip_tags($_POST['username']); 
    $password strip_tags($_POST['password']); 


    الدالة:
    function 
    member($username$password$page
    {
    $user trim($username); 
    $pass trim($password); 

        if(!isset(
    $user) OR !isset($pass))
            { 
            echo 
    "Your Username or Password is not correctly. Please, Go back and try again 1"
            } 







  4. #4
    عضو نشيط
    تاريخ التسجيل
    Feb 2004
    المشاركات
    196


    شكرا على مروركم .. ولكن المشكلة حسب علمي ليست فيما ذكرتما !!!
    المشكلة في هذه النقطة ..

    كود PHP:
              }
        else
            {
            
    $query="SELECT user, pass FROM stud WHERE user = '$user' AND pass = password('$pass')";
            
    $result=mysql_query($query);

            if(!
    $result)
                {
                echo
    "Your Username or Password is not correctly. Please, Go back and try again 2";
                } 
    لأني كلما سجلت الدخول باسم غير مسجل بقاعدة البيانات .. يعرض لي المتغير $page مباشرة !!
    أما إذا لم أدخل شيئاً فإنه يعرض لي الخطأ الذي أعطيته أنا الرقم 1 ..
    فعلى حد علمي القاصر أن if(!$user OR !$pass) قامت بعملها على أكمل وجه .. ولكن المشكلة في else على حد علمي و ما بعدها ..





    __________________
    لغة PHP

    طريقك نحو التقدم و الإبداع .. قريبا جداً

  5. #5
    عضو نشيط
    تاريخ التسجيل
    Feb 2004
    المشاركات
    196


    أما عن $query فهو فعال .. لأني جربته في phpmyadmin وكان فعالا ..





    __________________
    لغة PHP

    طريقك نحو التقدم و الإبداع .. قريبا جداً

  6. #6
    عضو نشيط
    تاريخ التسجيل
    May 2006
    المشاركات
    107


    الدالة التي كتبتها بها أخطاء كثيرة...

    لم تستخرج البيانات من القاعدة...

    اضف هذه الاكواد:

    كود PHP:
    else
        {
            
    $sql mysql_query("SELECT user, pass FROM stud WHERE user = '$user' AND pass = '$pass'")
            or die(
    mysql_error());
            
    $num mysql_num_rows($sql);
            
            
            if(
    $num ==0)
             {
               echo 
    'Your Username or Password is not correctly. Please, Go back and try again';
             }
             else
             {
             
    $result mysql_fetch_object($sql)
             
    $user $result->user;
             
    $pass $result->pass;
            
              
    $_SESSION['user'] = $user;
              
    $_SESSION['pass'] = $pass;
            
            }
            
    mysql_free_result($sql);









  7. #7
    عضو نشيط
    تاريخ التسجيل
    Feb 2004
    المشاركات
    196


    طيس أخي الغالي نعيم ..
    ممكن تشرح لي الإضافات التي قمت بإضافتها ..

    أختصر لك الموضوع أكثر ..
    mysql_fetch_object($sql)
    $user = $result->user;
    $pass = $result->pass;
    mysql_free_result($sql);

    that's all thank you >>





    __________________
    لغة PHP

    طريقك نحو التقدم و الإبداع .. قريبا جداً

  8. #8
    عضو نشيط
    تاريخ التسجيل
    May 2006
    المشاركات
    107


    من عيوني اخي.

    كود PHP:
    mysql_fetch_object($sql)
    $user $result->user;
    $pass $result->pass;
    mysql_free_result($sql); 
    كما تفصلت انت تجرب الاستعلام في phpmyadmin ...
    لكن اذا صممت صفحة ويب بالطيع ستحتاج لاستعمال دوال تقوم بهذه العملية اي استخراج نتائج بعد تنفيذ الاستعلام..
    لهذه المهمة هناك طرق عدة..

    انا استعملت دالة mysql_fetch_object اعتقد انها الافضل...

    لم استخدم اي حلقة تكرار لان الهدف استخراج عضو وحيد لذلك كتبنا
    mysql_fetch_object($sql) على كود $sql
    بعدها نختار متغيرين جديدين وهما مثلا
    كود PHP:
    $user و $pass 
    نحفظ فيهما القيم التي استخرجناها من قاعدة البيانات عن طريق الاسناد:
    كود PHP:
    $result->user 
    و
    كود PHP:
    $result->$pass 
    ارجو ان تكون الفكرة وصلت






  9. #9
    عضو نشيط
    تاريخ التسجيل
    May 2006
    المشاركات
    107


    دالة
    كود PHP:
    mysql_free_result($sql); 

    لافراغ الذاكرة من الاستعلام






  10. #10
    عضو نشيط
    تاريخ التسجيل
    Feb 2004
    المشاركات
    196


    هل تقصد أخي الحبيب أن $result->$pass تغنينا عن كتابة
    $row['pass'] ..

    أخي أنا أركز على -> لأني ما أعرف ايش هو عملها .. إذا كان في درس عربي يعلمنا كيف نستخدمها و كذلك أين تستخدمها أرجوا كتابة الرابط حتى تعم الفائدة .. ولأني ضعيف جداً باللغة الإنجليزية ..

    أو أني أستميحك عذرا .. بأن تكتب لي شرح أكثر تفصيلاً عنها ..





    __________________
    لغة PHP

    طريقك نحو التقدم و الإبداع .. قريبا جداً

  11. #11
    عضو نشيط
    تاريخ التسجيل
    May 2006
    المشاركات
    107


    اهلا اخي

    تستطيع استعمال دالة mysql_fetch_array في هذه الحالة سيكون النتائج على شكل مصفوفة..
    وتستعمل هذه الطريقة:

    كود PHP:
    $sql mysql_query('SELECT .....');
    $row mysql_fetch_array($sql);

    $newUser $row['user'];
    $newPass $row['pass'];
    ........
    unset(
    $sql); 
    اذا اردت استعمال الدالة mysql_fetch_object

    فالطريقة تختلف قليلا

    كود PHP:
    $sql mysql_query('SELECT .....');
    $row mysql_fetch_Object($sql);

    $newUser $row->user;
    $newPass $row->pass;

    unset(
    $sql); 
    -> هذا الرمز يستعمل كثيرا في البرمجة بالكائنات OOP وظيفته اسناد قيمة لمتغير

    ارجو ان تكون الصورة قد توضحت






  12. #12
    عضو نشيط
    تاريخ التسجيل
    Feb 2004
    المشاركات
    196


    أكن إن الإنسان بالفعل كلما تعلم شيء .. عرف إنه جاهل .. هههه .. و أنا أول مرة أسمع بالــ OOP هذي ..

    إذا أمكن اندور شرح مع بعض لها .. حتى اتعم الفائدة





    __________________
    لغة PHP

    طريقك نحو التقدم و الإبداع .. قريبا جداً

  13. #13
    عضو نشيط
    تاريخ التسجيل
    May 2006
    المشاركات
    107


    يقول الشاعر العربي:
    كلما ازددت علما --- زادني علما بجهلي.

    لا يمكن ان تجد انسانا عاقلا يقول انه يعلم كل شيء سواء في البرمجة او في شيء آخر...


    تستطيع اخي الاطلاع على الدروس من بعض المواقع اذا احببت اضعها لك

    وشكرا مجددا










المواضيع المتشابهه

ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | دليل الكويت العقاري | مقروء | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض