بتـــــاريخ : 2/26/2011 3:40:05 AM
الفــــــــئة
  • الحـــــــــــاسب
  • التعليقات المشاهدات التقييمات
    0 1925 0


    الجزء الثاني من درس عمل سكربت مقالات الموضوع مقسم walcom

    الناقل : elmasry | العمر :42 | الكاتب الأصلى : feras007 | المصدر : www.arabteam2000-forum.com

    كلمات مفتاحية  :

    بسم الله الرحمن الرحيم :
    سوف نبدأ الآن بالقسم الثاني من الدرس
    رابط الدرس الأول :
    http://www.arabteam2...howtopic=109553
    وسنتعلم في هذا الدرس بإذن الله
    1- برمجة ملف login.php
    2- برمجة جزء من ملف admin.php
    3- برمجة ملف show.php الخاص بعرض المواضيع .
    سنبدأ الآن بملف login.php
    نضع هذا الكود :

    <?
    session_start();
    include('config.php');
    if ($_GET['login'] <1){

    في أول سطر نُخبر البرنامج بدأ استخدام نظام الجلسات !
    وفي السطر الثاني علمنا تضمين لملف config.php لأنه يلزمنا الإتصال بقاعدة البيانات هنا !
    وثالث سطر ! كما فعلنا في ملف install.php نُعطي البرنامج أمراً أنه لو كان المتغير login أصغر من الواحد فسيقوم بالتالي :

    echo '
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
    <body bgcolor="#E0DFE3">
    <form method="POST" action="login.php?login=1" dir="rtl">
    <p align="center"><font size="2" color="Green">تسجل دخول المشرف العام</font></p>
    <p align="center"><font><font size="2">اسم المستخدم : </font><input type="text" name="T1" size="20"></font></p>
    <p align="center"><font><font size="2">كلمة المرور : </font>
    <input type="password" name="T2" size="20"></font></p>
    <p align="center"><input type="submit" value="الدخول" name="B1"><input type="reset" value="مسح الحقول" name="B2"></p>
    </form>
    ';
    }

    وشرحه هذا الكود خاص بفورم تسجيل الدخول واعتقد أنه واضح ! حيث لدينا مستطيل لكتابة اسم المستخدم اسمه T1 ومستطيل أخر لكتابة كلمة المرور اسمه T2
    ولاننسى أن عمل الفورم هو الذهاب إلى login.php?login=1 ومن ثم وضعنا اكي نخبر البرنامج أن شرط المتغير login أصغر من الواحد انتهى !

    }

    ومن ثم لدينا قسم ثاني وهو المتغير login يساوي 1 !

    if ($_GET['login'] ==1){
    $user = $_POST['T1'];
    $pass = md5($_POST['T2']);

    في السطر الأول نُخبر البرنامج أنه في حالة كون المتغير login يساوي 1 وفي السطر الثاني قُمت بتعريق المتغير user على أنه مستطيل كتابة اسم المستخدم T1
    طبعاً يمكنكم عدم القيام بهذه الخطوة ولكن كنوع من التنسيق ! وفي السطر الثالث قمت بتعرف المتغير pass أنه يساوي مستطيل كتابة كلمة المرور ولكن بعد التشفير
    كما فعلنا في ملف install.php وهنا قمنا بذلك من أجل المطابقة بين كلمة المرور التي ثبتناها أثناء التنزيل والتي وُضعت في قواعد البيانات بشكل مشفر كما تذكرون !
    والكلمة التي ندخلها في مستطيل كتابة كلمة المرور .
    والآن نكتب هذا الكود :

    $con = "Select * from admin WHERE user= '" .$user."' AND pass= '" .$pass ."'"; 
    $query = mysql_query($con);
    $row = mysql_num_rows($query);

    في السطر الأول قمنا باختيار كل المعلومات في جدول admin والتي فيها اسم المستخدم يساوي المتغير user وكلمة المرور تساوي المتغير pass
    وفي السطر الثاني قُمنا باستخدام الوسيط لكي يقوم بالإختيار الذي كتبناه في السطر الأول ! كُنا قد اتفقنا أن دالة SELECT & INSERT تحتاج لوسيط صحيح؟؟
    وفي السطر الثالث قُمنا بعد عدد النتائج !!
    والآن نكتب الكود التالي :

    if ($row > 0){
    session_register(admin);
    echo '<CENTER>';
    echo '<BR>';
    echo '<BR><B><FONT COLOR=green><a href=admin.php>اضغط هنا للدخول للوحة التحكم</a></FONT></BR></B>';
    }else{
    echo '<CENTER>';
    echo '<BR>';
    echo '<BR><B><FONT COLOR=red><a href=login.php>هناك خطأ في اسم المستخدم أو كلمة المرور يُرجى التأكد</a></FONT></BR></B>';
    }

    هنا في السطر الأول نقول له أنه لو كان عدد النتائج أكبر من الصفر ومن ثم في السطر الثاني قُم بتسجيل جلسة عندك اسمها admin !
    وفي السطر الثالث والرابع والخامس أكواد HTML ! ومن ثم في السطر السادس ! هناك احتمال أن يكون عدد النتائج ليس أكبر من صفر ! فنحن هنا
    استخدمنا else يعني نحن نريد إما أو يكون أكبر من الصفر لكي يقوم بشيء معين أو غير ذلك فليكتب التالي الذي هو موجود في السطر
    السابع و الثامن والتاسع !
    ولاننسى إغلاق الشرط الذي هو غير ذلك من خلال السطر الأخير.

    وطبعاً لاننسى إغلاق الشرط الرئيسي وهو إذا كان المتغير login يساوي الواحد ! وكذلك إغلاق وسم PHP عن طريق

    }
    ?>

    والآن انتهينا من برمجة ملف login.php .
    الخطوة الثانية برمجة جزء من ملف admin.php وهو الجزء الخاص بإضافة المواضيع من قبل الأدمن فقط !
    بسم الله :
    برمجة ملف admin.php
    نكتب أول شيء الكود التالي :

    <?
    session_start();
    include('config.php');
    if (!session_is_registered(admin)){
    include ('login.php');
    }else{

    في السطر الأول قلنا للبرنامج أننا سنستخدم نظام الجلسات وفي السطر الثاني كالعادة عملنا تضمين لملف config.php لأننا نحتاج للإتصال بالقاعدة !
    وفي السطر الثالث نقول للبرنامج إذا لم تُسجل الجلسة التي اسمها admin فنرجو تضمين ملف login.php ! وهذا في السطر الثالث .
    كلمة إذا لم يتم برمجياً تساوي إشارة !
    وفي السطر الرابع أغلقنا أول شرط وهو إذا لم يتم تسجيل الجلسة وقلنا له غير ذلك ! قُم بالتالي :

     
    echo '
    <html dir="rtl">
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
    <body bgcolor="#E0DFE3">

    <p align="center"><font color=green>أهلاً وسهلاً بك في لوحة التحكم</font></p>
    <p align="center"> </p>
    <table border="1" width="100%" id="table1" dir="rtl">
    <tr>
    <td align="center"><font size="2" color="#FF0000"><a href=admin.php?add=1>إضافة
    موضوع جديد</font></td></a>
    <td align="center"><font size="2" color="#FF0000"><a href=admin.php?show=1>التحكم
    في المواضيع</font></td></a>
    <td align="center"><font size="2" color="#FF0000"><a href=admin.php?show=2>التحكم
    في الردود</font></td></a>
    </tr>
    </table>


    ';

    هنا سيقوم بطباعة كود ال HTML والذي يحتوي على القائمة الرئيسية لملف الأدمن !
    والآن سنبدأ بخيارات ملف الأدمن !!
    نكتب الكود التالي :

    if ($_GET['add'] ==1){
    echo '
    <html dir="rtl">
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
    <body bgcolor="#E0DFE3">

    <form method="POST" dir="rtl" action="admin.php?add=2">
    <p> </p>
    <p align="center"><font color="#008000"><span lang="en-us">
    <font size="2"> </font></span><font size="2">عنوان الموضوع : </font>
    <input type="text" name="T1" size="32"></font></p>
    <p align="center"><font><font size="2" color="#008000">النص :
    </font><font color="#008000"><textarea rows="17" name="S1" cols="53"></textarea></font></font></p>
    <p align="center"><input type="submit" value="ارسل" name="B1"><input type="reset" value="مسح الحقول" name="B2"></p>
    </form>
    '
    ;
    }

    في السطر الأول قلنا له إذا كان المتغير add يساوي 1 , ننتقل للسطر الثاني والذي يحتوي على طباعة لكود HTML وهذا الكود هو فورم كتابة
    موضوع جديد يحتوي على مستطيل كتابة عنوان الموضوع اسمع T1 ومربع كتابة الموضوع واسمه S1 طبعاً أول ثلاثة أسطر من كود ال HTML هي تعريق الترميز والجهة من اليمين إلى اليسار ولون الخلفية ! يعني كما فعلنا من ملف install.php
    أما الباقي فهو الفورم ! ولاننسى أن الفورم سينقلنا إلى admin.php?add=2 !!

    ولآن ننتقل لبرمجة الشرط الثاني وهو إذا كان المتغير addمساوياً 2 ,, نكتب الكود التالي :

    if ($_GET['add'] ==2){

    والآن سنتحقق من أن مستطيل عنوان الموضوع ومربع كتابة نص الموضوع أنهما غير فارغان من خلال !
    if (empty($_POST['T1']) or empty($_POST['S1'])){
    echo '<CENTER>';
    echo '<BR>';
    echo '<BR><B><FONT COLOR=red><a href=admin.php?add=1>يُرجى تعبئة جميع الحقول </a></FONT></BR></B>';

    أما الآن إذا لم يكونا فارغين ! فيقوم بالتالي :
    }else{
    $date = date('j/n/Y');
    $action = "INSERT INTO thread(id,title,text,date) VALUES(NULL,'$_POST[T1]','$_POST[S1]','$date')";
    $insert = mysql_query($action);

    في السطر الأول كتبنا شرط أنه غير ذلك ! ويعني أنهم إذا لم يكونا فارغين !
    أما السطر الثاني قمنا بتعرف المتغير date على أنه التاريخ ! وسيكتب فيه تاريخ اليوم من الشكل 16/10/2006
    أما السطر الثالث سيقوم بإضافة المعلومات والتي هي عنوان الموضوع ونص الموضوع وتاريخ كتابته إلى جدول thread !
    والسطر الرابع كما اتفقنا دالة SELECT && INSERT لازمها وسيط ! قُمنا بكتابة الوسيط اللذي سوف يطبق إضافة المعلومات !
    الآن نكتب الكود التالي :

    if ($insert){
    echo '<CENTER>';
    echo '<BR>';
    echo '<BR><B><FONT COLOR=GREEN>تمت إضافة الموضوع بنجاح</a></FONT></BR></B>';
    echo '<BR><B><FONT COLOR=GREEN><a href=admin.php?show=1>اضغط هنا للانتقال لصفحة المواضيع</a></FONT></BR></B>';
    }else{
    echo '<CENTER>';
    echo '<BR>';
    echo '<BR><B><FONT COLOR=red><a href=admin.php?add=1>لم يتم إضافة الموضع ,, حدثت مشكلة </a></FONT></BR></B>';
    }
    }
    }
    }

    في السطر الأول نتأكد من أن إضافة المعلومات قد تم ! فقلنا له لو تمت إضافة المعلومات ! اطبع السطر الثاني والثالث والرابع ! وغير ذلك !
    اطبع السطر السادي والسابع والثامن ! وفي الأخير أغلقنا وسم غير ذلك التي تخص أن مكان كتابة عنوان الموضوع ونص الموضوع غير فارغان ومن
    ثم أغلقنا التأكد من إضافة المعلومات ! ومن ثم أغلقنا شرط أن المتغير add يساوي 2 ! ومن ثم أغلقنا الشرط الأساسي وهو أن الجلسة مسجلة !
    هذا كل شيء بالنسبة لملف admin.php مؤقتاً !
    والآن برمجة ملف show.php كاملاً وهو خاص بعرض كافة المواضيع !!
    نبدأ :
    نكتب كود الــ HTML التالي قبل بداية وسم PHP لكي يتم تطبيق هذا الكود على كل الصفحة !

    <html dir="rtl"> 
    include('config.php');
    if ($_GET['main'] ==1){

    في السطر الأول بدأنا وسم PHP والسطر الثاني قُمنا بتضمين ملف config.php لأننا سنحتاج له ! والسطر الثالث قمنا بكتابة شرط
    أنه لو كانت قيمة المتغير main تساوي 1 !!
    ونكتب الأن الكود التالي :

    $thread = "Select * from thread";
    $tquery = mysql_query($thread);
    $num = mysql_num_rows($tquery);

    في السطر الأول يختار جميع الحقول من جدول thread ! والسطر الثاني كما قلنا دالة INSERT && SELECT تحتاج لوسيط ! قُمنا باستخدامه !
    أما السطر الثالث قُمنا بعد الحقول !!
    ونكتب بعدها :

    if ($num <1){
    echo '<CENTER>';
    echo '<BR>';
    echo '<BR><B><FONT COLOR=GREEN>لايوجد هناك أي موضوع</a></FONT></BR></B>';
    }else{

    في السطر الأول قلنا له لو كان عدد النتائج أصغر من الواحد ! فاطبع لايوجد هناك أي موضوع !! من خلال السطر الثاني والثالث والرابع !
    وفي الخامس قلنا له لو لم يكن عدد النتائج أصغر من الواحد !
    والآن نكتب

    echo '
    <p> </p>
    <table border="1" width="100%" id="table1">
    <tr>
    <td colspan="3">
    <p align="center"><b><font size="2" color=Green>المواضيع
    المطروحة</font></b></td>
    </tr>




    ';

    سيقوم بطباعة جدول صغير مكتوب فيه عبارة المواضيع المطروحة !!
    والآن بدأ الجد ! :)
    نكتب هذا الكود !

    while ($array = mysql_fetch_array($tquery)){

    نحن فوق قمنا بتعريف المتغير tquery على أنه الدالة الوسيطة التي ستقوم باختيار كل الحقول !! والآن قلنا له ! طالما هناك نتائج ! فأخرجها
    ! الدالة mysql_fetch_array تخرج كل نتائج المتغير tquery ! والدالة while مثل if ولكن while تعمل دون شرط ! يعني تُكرر حتى تنتهي النتائج !
    والآن نكتب :

    ?><tr>
    <td align="center"><font face="Tahoma" size="2"><a href=show.php?main=2&thread=<? echo $array['id']; ?>><? echo $array['title']; ?></font></td></a>

    في أول سطر قُمنا بإغلاق وسم PHP ! لأننا نريد كتابة وسم HTML يحتوي على متغيرات PHP ونحن قمنا بذلك لأننا لا نستخدم نظام قوالب ولا أي شيء! فقط نستخدم
    أكواد بسيطة ! لذا سيكرر البرنامج كود HTML من أجل جميع النتائج !! طبعاً مازالت دالة while تعمل !! لذا هي التي تكرر !!
    سيطبع في كود ال HTML هذا المتغير عنوان الموضوع !! وبما أننا نكرر فسيطبع كل النتائج يعني كل المواضيع !! ورابط عناوين المواضيع سيكون المتغير id لكل موضوع في قواعد البيانات !!
    والآن نكتب !

    <?
    }
    }
    }

    في السطر الأول أعدنا فتح وسم PHP والسطر الثاني أغلقنا التكرار ! يعني أوقفنا while ! وأغلقنا وسم غير ذلك الخاص بإن عدد النتائج أصغر من 1 ! في السطر الثاني ! أما في الثالث أغلقنا وسم الشرط وهو المتغير main يساوي 1
    والآن نكتب التالي:

    $thread = intval($_GET['thread']);
    if ($_GET['main'] ==2){
    $tselect = "SELECT * FROM thread WHERE id='" . $thread . "'";
    $tquery = mysql_query($tselect);
    $tarray = mysql_fetch_array($tquery);

    في السطر الأول عرفنا المتغير thread أنه قيمة المتغير thread من شرطي المتصفح ولكن وضعنا intval لكي يُعيد لنا قيمة خقيقة ! لأنه دون
    دالة intval يمكن استغلال برنامجنا !!
    ولمزيد من المعلومات يُمكنكم زيارة :
    http://www.devpedia....s/index.php?c=3
    وفي السطر الثاني نختار الحقل من جدول thread والتي الــ id الخاص به يساوي المتغير thread والذي يرمز للموضوع ! يعني بتغير المتغير thread
    من شريط العنوان يتغير الموضوع !
    وكما قلنا دالة SELECT && INSERT تحتاج لوسيط واستخدمناه في السطر الثالث !! أما في السطر الرابع استخرجنا كل النتائج !!
    والآن نكتب الكود التالي :

    ?>
    <p align="center"><font color="#008000" face="Tahoma"><span lang="en-us">
    <fieldset style="padding: 2">
    <legend><FONT color=red>عنوان الموضوع : </FONT><? echo $tarray['title']; ?><FONT color=red> [بتاريخ : <? echo $tarray['date']; ?>]</FONT></legend>
    <? echo $tarray['text']; ?><p> </p></fieldset>
    <fieldset style="padding: 2">
    <legend><FONT color=red>الردود :</legend><p> </p>

    أغلقنا وسم PHPفي السطر الأول ! كما قمنا في الخطوة السابقة ولكن هنا دون تكرار لأننا حددنا الحقل الذي نريده ! وفي هذا الكود
    يتم طباعة عنوان الموضوع المطلوب ونصه !!
    وكذلك طبعنا جدول صغير خاص بطباعة الردود الخاصة بالموضوع هذا !!
    والآن نكتب !

    <?
    $rselect = "SELECT * FROM reply WHERE thread_id='" . $thread . "'";
    $rquery = mysql_query($rselect);
    $rnum = mysql_num_rows($rquery);
    if ($rnum <1){
    echo '<CENTER>';
    echo '<BR><B><FONT COLOR=GREEN>لايوجد هناك ردود على هذا الموضوع</a></FONT></BR></B>';
    }else{

    في السطر الأول فتحنا وسم PHP من جديد !! والسطر الثاني سنختار جميع الردود التي thread_id لها يساوي المتغير thread !
    انت لو تتخيل الوضع في الردود ! كل زائر سيكتب رد صحيح ؟؟ طيب كيف سنميز كل رد لأي موضوع ؟؟ لذا حقل thread_id سيساعدنا !
    حيث thread_id يرمز ل id الموضوع الموجود في جدول thread !! :)
    وكما قلنا دالتي SELECT && INSERT تحتاجان لوسيط واستخدمناه في السطر الثالث !!
    وفي السطر الرابع قُمنا بعد النتائج ! فلو كانت أصغر من واحد سيطبع ! لا يوجد ردود !! ولو غير ذلك !!
    اكتب الكود التالي الآن !

    while ($rarray = mysql_fetch_array($rquery)){

    سيقوم بفتح حلقة تكرار لو كانت عدد النتائج ليست أصغر من الصفر !! لأنه احتمال أن يكون أكثر من رد لذا يلزمنا تكرار !!
    والآن نكتب :

    ?>
    <table border="1" width="100%" id="table1">


    <tr align=center>
    <td width="250"> بواسطة : <? echo $rarray['replier_name']; ?></td>
    <td width="150">بتاريخ : <? echo $rarray['reply_date']; ?></td>
    <td><? echo $rarray['reply_text']; ?></td></tr></table>

    في السطر الأول أغلقنا وسم PHP !
    لكي يكرر البرنامج كود ال HTML التالي لكل رد ! اعتقد أنه واضحة ! وسيطبع اسم صاحب الرد ! وتاريخ الرد و نص الرد ! وسيكرر العملية لكل
    رد !!
    والآن نكتب

    <?
    }
    }
    ?>
    </fieldset>
    <BR><B><FONT COLOR=GREEN><a href=reply.php?add=1&id=<? echo $thread; ?>>كتابة رد</a></FONT></B></BR>
    <?
    }
    ?>

    في السطر الأول أعدنا فتح وسم PHP وفي السطر الثاني أغلقنا دالة التكرار !! أي أوقفنا while عن العمل !! وفي السطر الثالث أغلقنا شرط
    غير ذلك الخاص بإن عدد النتائج أصغر من الواحد !!
    ومن ثم أغلقنا وسم PHP في السطر الرابع !! وفي السطر الخامس أغلقنا المكان الخاص بعرض الردود !! وطبعنا كود HTML
    يحتوي على كلمة "كتابة رد" ولكن رابطها يتغير بتغير الموضوع ! بالحقيقة ليس كل الرابط فقط id !! لأنها تتغير بتغير المتغير thread !
    وفي السطر السادس أعدنا فتح وسم PHP
    وفي السطر السابع أغلقنا الشرط الخاص بإن المتغير main يساوي 2 !! وهذا كل شي !!
    طبعاً انت في عرض المواضيع ستطلب الصفحة show.php?main=1 !
    وكذلك عند مشاهدة موضوع محدد ستظر لك لا يوجد ردود لأننا لم ندخل أي رد !!

    تحياتي
    فراس

    ------
    تم تعديل حجم الخط من قبل الأدارة

    كلمات مفتاحية  :

    تعليقات الزوار ()