منتديات قراصنة الجــــتزائر

مـــــــرحبا بكم في منتدانا الغالي


انضم إلى المنتدى ، فالأمر سريع وسهل

منتديات قراصنة الجــــتزائر

مـــــــرحبا بكم في منتدانا الغالي

منتديات قراصنة الجــــتزائر

هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.


    الدرس الاول php

    Sohaib Assault
    Sohaib Assault


    أوسمتى : مدير
    عدد المساهمات : 78
    السٌّمعَة : 1
    تاريخ التسجيل : 07/04/2012
    العمر : 28

    الدرس الاول php Empty الدرس الاول php

    مُساهمة  Sohaib Assault الجمعة أغسطس 10, 2012 9:20 am



    الحاجة أم الإختراع






    لاحظت طلب بعض الإخوة بعمل درس حول كيفية عمل منطقة الأعضاء فآثرت إلا أن أقدم درس خفيف ظريف لطيف إن شاءالله حول ذلك ..
    طبعاً الدرس خفيف على المعدة إن شاءالله لكن يحتاج شوية تفكير و تمعن ..
    إن شاءالله هأقدمه على عدة مراحل كلها إن شاءالله هتكون في هذا الموضوع ..
    طبعاً لن أضع ملفات العمل حتى لا يتكاسل البعض عن تجربة الدرس .. لذا سأترك الإخوة هم يطبقون الدرس و يرفقون ملفات العمل بعد إنتهائهم ..

    طيب يا شباب نبدأ ؟!! ..

    نبدأ بسم الله ..

    أول حاجة ربما يسأل البعض .. إيش هي منطقة الأعضاء ؟!! ..
    فأقول طبعاً هذا المصطلح مترجم حرفياً من الإنجليزية Members Area ..
    و يعني هذا الأمر وجود قسم بالموقع لا يدخله إلا أشخاص معينين و هم الأعضاء طبعاً بواسطة إسم مستخدم UserName و كلمة مرور PassWord ..

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

    طبعاً يمكن عمل منطقة أعضاء خاصة عن طريق وضع إسم مستخدم و كلمة مرور موحدين بمعنى كل الأعضاء يدخلون بها و طبعاً ذلك يتم عن طريق وضع الكود التالي :






    if(!isset($PHP_AUTH_USER)||($PHP_AUTH_USER!="UserName")||($PHP_AUTH_PW!="PassWord") )
    {
    Header("WWW-Authenticate: Basic realm=\"منطقة الأعضاء\"");
    Header("HTTP/1.0 401 Unauthorized");
    exit;
    }





    طبعاً الكود السابق لو وضعته بأي ملف PHP فحسين يفتحه الشخص ستظهر له رسالة تطلب منه وضع إسم المستخدم الذي هو في الكود UserName و كلمة المرور الموضوع بالكود و هي PassWord ..
    طبعاً يمكنك وضع متغيرات في الكود تضع قيمتها مثلاً في ملف config !! ..

    طبعاً هذه طريقة لعمل منطقة محمية لكن ربما يكون عيبها أنه الجميع سيدخل بإسم مستخدم واحد و كلمة مرور واحدة ..



    نسيت أذكر أن الطريقة السابقة لو كتب الشخص إسم مستخدم خاطئ أو كلمة مرور خاطئة فلن يتم قراءة ما تحت الكود لذا يفضل وضع الكود بأعلى الملف ..

    الطريقة الثانية و هي الأفضل تتم عن طريق وضع صفحة لتسجيل الأعضاء لكي يتم حفظ معلوماتهم بقاعدة البيانات ثم حين الذهاب لمنطقة الأعضاء يتم التأكد من معلومات العضو من قاعدة البيانات ..

    طبعاً ما سأشرحه هو نموذج خفيف و لو أنه هناك طرق كثيرة أفضل و أقوى و لكن آثرت الإختصار و محاولة إيصال الفكرة بأبسط الطرق ..

    بداية سنحتاج لعمل قاعدة البيانات .. لذا سيكون في قاعدة البيانات الجداول التالية :
    id و هو الرقم التسلسلي للعضو
    username و هو إسم المستخدم للعضو
    password و هو كلمة المرور للعضو

    إستخدم الكود التالي لزراعة قاعدة البيانات في موقعك :






    CREATE TABLE user (
    `id` int(10) unsigned NOT NULL auto_increment,
    `username` varchar(255) NOT NULL default '',
    `password` varchar(255) NOT NULL default '',
    PRIMARY KEY (`id`),
    KEY `id` (`id`)
    ) TYPE=MyISAM;





    طبعاً سيكون إسم قاعدة البيانات هو user ..

    الحين أنشأنا قاعدة البيانات ..
    بقي علينا عمل ملف تعريف السكربت بقاعدة البيانات و هو ملف config.inc.php ..
    قم بإنشاء ملف بالإسم السابق و ضع فيه الكود التالي :







    <?php
    $dbserver="localhost";
    $dbuser="";
    $dbpass="";
    $dbname="user";
    mysql_connect($dbserver,$dbuser,$dbpass);
    mysql_select_db($dbname);
    ?>




    تأتي الآن مرحلة عمل نموذج تسجيل العضو ..
    لذا سنحتاج لإنشاء ملف php و لنسمه مثلاً register.php ..
    سنضع فيه كود HTML عبارة عن نموذج Form للتسجيل ..
    كود نموذج التسجيل سيكون كالتالي مثلاً :






    نموذج تسجيل عضو<br>
    <form method="post" action="register.php?reg=user">
    إسم المستخدم <input type="text" name="username" size="30"><br>
    كلمة المرور <input type="text" name="password" size="30"><br>
    <input type="submit" value="تسجيل">
    </form>





    طبعاً تلاحظون بالكود وضعنا في خانة Action التالي :
    register.php?reg=user
    و هذا يعني أنه سيتم إرسال المعلومات لهذا الجزء من ملف register.php و الذي يحمل إسم reg ..
    طبعاً الجزء هذا سيكون عبارة عن أوامر php تكمل إجراء تسجيل العضو ..
    سنستخدم بالطبع أمر قاعدة البيانات INSERT INTO لذلك ..

    طبعاً كود ال php سيكون كالتالي :






    <?php
    require("config.inc.php");
    if(isset($reg)){
    mysql_query("INSERT INTO user (username,password)VALUES('$username','$password')");
    echo "تمت العملية بنجاح";
    }
    ?>





    طبعاً كما تلاحظون بداية طلبنا ملف config.inc.php عن طريق الأمر require ..
    ثم وضعنا شرطاً أنه إذا تم طلب الجزء reg من الملف register.php طبعاً فإنه يتم تنفيذ الأوامر التي بهذا الجزء ..
    و هي كما نرة عبارة عن عملية إتصال بقاعدة البيانات ثم إدراج معلومات العضو التي وضعها و هي إسم المستخدم و كلمة المرور ..

    الآن سيكون محتوى ملف register.php بالكامل :






    نموذج تسجيل عضو<br>
    <form method="post" action="register.php?reg=user">
    إسم المستخدم <input type="text" name="username" size="30"><br>
    كلمة المرور <input type="text" name="password" size="30"><br>
    <input type="submit" value="تسجيل">
    </form>

    <?php
    require("config.inc.php");
    if(isset($reg)){
    mysql_query("INSERT INTO user (username,password)VALUES('$username','$password')");
    echo "تمت العملية بنجاح";
    }
    ?>




    وصلنا لمرحلة إنشاء صفحة تسجيل دخول العضو و لنسمها مثلاً member.php ..
    سنحتاج فيها عمل نموذج تسجيل دخول للعضو ..
    طبعاً هو مثل نموذج التسجيل لكن طبعاً سيكون له Action آخر ..

    ضع الكود التالي :






    نموذج تسجيل دخول عضو<br>
    <form method="post" action="member.php?log=user">
    إسم المستخدم <input type="text" name="username" size="30"><br>
    كلمة المرور <input type="text" name="password" size="30"><br>
    <input type="submit" value="دخول">
    </form>





    طبعاً تلاحظون بالكود وضعنا في خانة Action التالي :
    member.php?log=user
    و هذا يعني أنه سيتم إرسال المعلومات لهذا الجزء من ملف member.php و الذي يحمل إسم log ..
    طبعاً الجزء هذا سيكون عبارة عن أوامر php تكمل إجراء تسجيل دخول العضو ..

    المطلوب في أوامر php الان أنها تتأكد من مطابقة المعلومات اللي أدخلها العضو مع معلوماته المسجلة مسبقاً بقاعدة البيانات ..

    سنستخدم الكود التالي لذلك :






    <?php
    require("config.inc.php");
    if(isset($log)){
    $query=mysql_query("SELECT username,password FROM user WHERE username LIKE '$username' AND password LIKE '$password'");
    $num=mysql_num_rows($query);
    if($num==1){
    print"تم تسجيل دخولك";
    }
    elseif($num!=1){
    print"إسم مستخدم خاطئ أو كلمة مرور خاطئة";
    }
    }
    ?>





    طبعاً كما تلاحظون بداية طلبنا ملف config.inc.php عن طريق الأمر require ..
    ثم وضعنا شرطاً أنه إذا تم طلب الجزء log من الملف member.php طبعاً فإنه يتم تنفيذ الأوامر التي بهذا الجزء ..
    و هي كما نرى عبارة عن عملية إتصال بقاعدة البيانات ثم البحث عن معلومات العضو التي وضعها و هي إسم المستخدم و كلمة المرور .. و طبعاً ذلك للتأكد من وجودها بقاعدة البيانات ..
    و من ثم إذا وجدها و كانت مطابقة تماماً فإنه سيطبع عبارة ( تم تسجيل دخولك ) أو إذا كانت خلاف ذلك فسيطبع عبارة ( إسم مستخدم خاطئ أو كلمة مرور خاطئة ) ..
    طبعاً هنا إن شاءالله تكون وصلت الفكرة المطلوبة ..
    بالتأكيد يمكنك إستبدال العبارات أو وضع أمر إدراج ملف بدلاً من طباعة عبارة أو يمكنك وضع أوامر php أخرى لتنفذ بدل أمر طباعة العبارة echo ..

    الآن سيكون محتوى ملف member.php بالكامل :






    نموذج تسجيل دخول عضو<br>
    <form method="post" action="member.php?log=user">
    إسم المستخدم <input type="text" name="username" size="30"><br>
    كلمة المرور <input type="text" name="password" size="30"><br>
    <input type="submit" value="دخول">
    </form>

    <?php
    require("config.inc.php");
    if(isset($log)){
    $query=mysql_query("SELECT username,password FROM user WHERE username LIKE '$username' AND password LIKE '$password'");
    $num=mysql_num_rows($query);
    if($num==1){
    echo "تم تسجيل دخولك";
    }
    elseif($num!=1){
    echo "إسم مستخدم خاطئ أو كلمة مرور خاطئة";
    }
    }
    ?>





    أتمنى يكون الشرح واضح و الفكرة وصلت و تراها فكرة مبسطة لمنطقة الأعضاء و إلا هناك طرق كثيرة متقدمة و أفضل من هذه بكثير ..






      الوقت/التاريخ الآن هو الخميس نوفمبر 21, 2024 9:51 am