المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : درس برمجة الهاكات في استخراج البيانات



Bakenam
03-17-2009, 12:01 AM
بسم الله الرحمن الرحيم

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

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

لكن لي ملاحظة بسيطة كنت قد قمت بكتابة اساسيات برمجة الهاكات ارجو مراجعته

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

قم بانشاء ملف باسم مثلا test.php
قم بانشاء قالب جديد مثلا test.tpl



قم بفتح الملف test.php وضع في داخله التالي



رمز Code:

<?php

include(\'common.php\');
$Smarty->display(\'header.tpl\');

$sql=$DB->sql_query(\"select id,username,email from \" .$db_prefix . \"member order by id desc limit 20\");
while($row=$DB->sql_fetch_array($sql))
{
$gh[]=$row;
}

$Smarty->assign(\'gh\',$gh);

$Smarty->display(\'a.tpl\');
$Smarty->display(\'footer.tpl\');

?>

لنحلل الكود سويا

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

الان نريد الاستعلام من قاعدة البيانات فنقوم بانشاء متغير باي اسم تريد مثلا $sql

ونخزن به الناتج


رمز Code:
$sql=$DB->sql_query(\"select id,username,email from \" .$db_prefix . \"member order by id desc limit 20\");
حيث قمنا بالاستعلام على جدول الاعضاء member وطلبنا منه الرقم والاسم والبريد الالكتروني

قمت بوضع شرط الترتيب desc اي بالطريقة العكسية limit 20 اي بترتيب 20 ناتج

الان يجب علينا تكرار الناتج ضمن جملة while


رمز Code:
while($row=$DB->sql_fetch_array($sql)){ $gh[]=$row;}
حيث قمنا بانشء مصفوفة باسم gh طبعا اي اسم تريد وبنفس الطريقة

الان يجب علينا تعريف المتغير gh لكي نستطيع استخدامه بالقوالب

رمز Code:
$Smarty->assign(\'gh\',$gh);
راجع موضوع برمجة الهاكات

الان سنقوم بطباعة القالب test.tpl وقالب الفوتر

رمز Code:
$Smarty->display(\'test.tpl\'); $Smarty->display(\'footer.tpl\');
ايضا راجع الموضوع السابق ذكره اخي الكريم

لنأتي للقالب test.tpl

افتح القالب وضع فيه التالي


رمز Code:

<br />
<html dir=\"ltr\">

{literal}
<****** language=**********1.2>
<!--

var ns6=********.getElementById&&!********.all?1:0

var head=\"display:\'\'\"
var folder=\'main\'

function expandit(curobj){
folder=ns6?curobj.nextSibling.nextSibling.style:** ******.all[curobj.sourceIndex+1].style
if (folder.display==\"none\")
folder.display=\"\"
else
folder.display=\"none\"
}
//-->
</******>
{/literal}
<div align=\"center\">
<table border=\"0\" width=\"68%\" id=\"table1\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
<td align=\"center\">
<center>
<FONT style=\"cursor: hand; font-weight:700\" onclick=expandit(this) face=Tahoma color=#911E54 size=2>
معلومات الاعضاء </FONT>
<table border=\"1\" cellpadding=\"4\" cellspacing=\"0\" style=\"border-collapse: collapse\" bordercolor=\"#111111\" width=\"617\" height=\"49\" id=\"table2\">
<tr>
<td>
<div align=\"center\">
<table class=\"border\" summary=\"احصائيات\" border=\"1\" cellspacing=\"1\" width=\"100%\" id=\"table3\">
<tr>
<td class=\"thead2\" align=\"right\">
<p align=\"center\"><font color=\"#FF0000\"><strong><span lang=\"ar-sy\">البريد</span></strong></font></td>
<td class=\"thead2\" align=\"right\">
<p align=\"center\"><font color=\"#FF0000\"><strong><span lang=\"ar-sy\">الاسم</span></strong></font></td>
<td class=\"thead2\" align=\"right\">
<p align=\"center\"><font color=\"#FF0000\"><strong><span lang=\"ar-sy\">الرقم</span></strong></font></td>
</tr>
{section name=idx loop=$gh}
<tr><td class=\"row1\">
<table border=\"3\" width=\"100%\" bordercolorlight=\"#FFFF00\" bordercolordark=\"#FFFF00\">
<tr>
<td>
<p align=\"center\"><u><strong><font color=\"#008000\">{$gh[idx].email}</font></strong></u></td>
</tr>
</table>
<td class=\"row1\">
<table border=\"3\" width=\"100%\" bordercolorlight=\"#FF0000\" bordercolordark=\"#FF0000\">
<tr>
<td>
<p align=\"center\"><u><strong><font color=\"#000080\">{$gh[idx].username}</font></strong></u></td>
</tr>
</table>
</td>
<td class=\"row1\">
<table border=\"3\" width=\"100%\" bordercolorlight=\"#008000\" bordercolordark=\"#008000\">
<tr>
<td>
<p align=\"center\"><u><strong><font color=\"#0000FF\">{$gh[idx].id}</font></strong></u></td>
</tr>
</table>
</td>
</td></tr>
{/section}
</table>
</div>
</td>

</tr>
</table>
</center>

</td>
</tr>
</table>
</div>

طبعا انا الذي يهمني من القالب هنا امرين اساسين

لكي تفهم قصدي قم بفتح القالب عن طريق الفرونت بيج

وسترى الناتج

لقد قمت باستخدام دالة بالجافا سكربت ليس لك بها اي علاقة وانما استخدمتها لتحسن ناتج العمل

ما يهمني في القالب كيف استطيع اظهار النتائج

رمز Code:
{section name=idx loop=$gh}{/section}
الوسم {section}
هو الذي يقوم بتكرار النتائج لنتعرف عليه اكثر

name = idx اي اسم تريد وليس شرطا ان يكون idx
loop=$gh وهنا شرط التكرار يجب ان يحمل اسم المتغير الذي عرفناه في الملف test.php هل تذكرون

تمام الى هنا ان شاء الله

يتم استخدام المتغيرات عادة ضمن القوالب ضمن {}
{$gh[idx].id}تقوم باظهار الرقم
{$gh[idx].username} تقوم باظهار الاسم
{$gh[idx].email} تقوم باظهار البريد الالكتروني

اذا كنا قد خزنا نتيجة الاستعلام ضمن المصفوفة gh[]
id,username,email اسماء الحقول في الجدول member

قم بالتجريب على بقية الحقول

هذا ما لدي لليوم فان اصبت فمن الله وان اخطأت فمن الشيطان