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

منتدى النسور

البرامج والسيرفرات المجانية
 
الرئيسيةأحدث الصورالتسجيلدخول

 

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

اذهب الى الأسفل 
كاتب الموضوعرسالة
Admin
المدير العام
المدير العام



عدد المساهمات : 362
تاريخ التسجيل : 12/10/2012

درس برمجة مركز رفع ملفات بسيط و محمي ويعمل بنظام قوالب . Empty
مُساهمةموضوع: درس برمجة مركز رفع ملفات بسيط و محمي ويعمل بنظام قوالب .   درس برمجة مركز رفع ملفات بسيط و محمي ويعمل بنظام قوالب . Emptyالإثنين يوليو 01, 2013 6:36 pm

بسم الله الرحمن الرحيم
سنشرح اليوم برمجة مركز رفع ملفات بسيط ذو خصائص جميلة وآمن بإذن الله .

الإعداد :

في هذه الخطوة سنقوم بإنشاء وتنظيم المجلدات التي سنحتاجها ...
أولاً قم بالدخول إلى سيرفرك الشخصي أو موقعك ... ثم قم بإنشاء مجلد جديد بإسم upload , وقم بإنشاء المجلدات التالية بداخلة :
- uploaded .
- includes .
- style .
وبداخل المجلد includes قم بإنشاء مجلد بإسم cache .
وبداخل المجلد style قم بإنشاء مجلد بإسم template .


نظام القوالب :

سنقوم بإستعمال نظام قوالب خفيف لكي يكون السكربت الذي نريد عمله أكثر تنظيماً وقابلية للإستخدام ...
سنستعمل نظام القوالب MOFTemplate Engine يمكنك زيارة الموقع و التعرف عليه أكثر ...
 قم بتحميل نظام القوالب من هنا 
( للأسف لم أستطع تحميل الملف لذا قمت بإستعمال نسخة سابقه من النظام 1.4.0.1
  ولمن لم يستطع التحميل من الموقع الرسمي في هنا رابط آخر ).
بعد تحميل نظام القوالب قم بفك الضغط عنه , سنحتاج للملف moftemplate-engine.php ,
قم بنسخ الملف moftemplate-engine.php ووضعه داخل المجلد includes الذي أنشأناه سابقاً .
انتهينا من تركيب نظام القوالب .
 



كتابة ملف تعريف نظام القوالب (mof-define.php) :

في هذه الخطوة سنقوم بكتابة ملف تعريف نظام القوالب , 
قم بعمل ملف جديد بإسم mof_define.php داخل المجلد includes , وسيكون هذا محتواه :-
 

الكود:
<? 
  include 'moftemplate-engine.php';  
  $tpl        =    new moftemplate;  
  $tpl->tempdir    =    'style/template'; 
  $tpl->cachedir    =    'includes/cache'; 

?>
 
في السطر الأول قمنا بتضمين ملف نظام القوالب .
في السطر الثاني قمنا بتشغيل النظام .
في السطر الثالث قمنا بتحديد مجلد القوالب .
في السطر الرابع قمنا بتحديد مجلد الملفات المؤقتة .
 

 
 
كتابة ملف الإعدادات (config.php) :
الآن سنقوم بكتابة ملف إعدادات ومعلومات الموقع الذي سيقوم بتركيب السكربت , الملف كله مُتغيرات ولا أظن انه يحتاج لشرح :
 

الكود:
<? 
# اسم الموقع 
$sitename = "مركز رفع الملفات"; 

# الرسالة الظاهر في الصفحة الرئيسية 
$msg = "الرجاء عدم استخدام المركز فيما يغضب الله ورسوله"; 


/* هنا اكتب رابط موقع مع مجلد السكربت مثل www.name.com/upload 
بدون http:// 
 وبدون / في الاخير   */ 
$site_url ="localhost/upload"; 



# الكلمات المفتاحية keywords التي ستظهر بوصف الصفحة 
$meta_open = " مركز رفع ملفات الفلان "; 

# كلمات الوصف meta description 
$meta_desc = "مركز رفع ملفات , ارفع ملفاتك , رفع , ملفات "; 


// الحجم المسموح به بالبايت 
//  هذا الحجم يساوي   150 كيلو بايت 
$maxsize = "153600"; 

// الامتدادات المسموح بها 
$alemtdadat = array('.gif','.jpg','.jpeg','.zip','.rar','.png','.swf','.psd','.txt','.bmp'); 
?> 
 
 
هذا هو الملف , طبعاً كله متغيرات ولا يحتاج لشرح ... إلا في السطر الأخير وضعنا مصفوفة تحتوي على الإمتدادات ...
الآن انتهينا من الملف config.php وسنقوم بوضعه داخل المجلد includes ,
الآن أتممنا المجلد includes بجميع ملفاته !




  فكرة عن تنظيم ملفات العمل :

سنقوم بتنظيم عملنا لأكبر حد ممكن , لذا سنقوم بوضع يحتوي على المحتوى العلوي لكل الصفحات وملف يحتوي على المحتوي السفلي لكل الصفحات ايضاً !
بمعنى اننا سنقوم بعمل ملف اسمه content_up.php وفيه نضع جميع مانريد ان يكون في اول الملف , وسنضع فيه :
تعريف ملف القوالب , تضمين ملف الإعدادات config.php , إستدعاء الهيدر , وبعض الأكواد الأخرى ...
وملف آخر اسمه content_down.php وسنضع فيه استدعاء للفوتر ...
اي انه بهذا النظام الصفحة الرئيسية لن تكون إلا بِضع أسطر فقط !
إذا لم تفهم المغزى من هذا , فستفهمه لاحقاً .
بخصوص نظام القوالب , لن نستعمل في هذا الشرح إلا المتغيرات فقط و لن نستعمل ادوات شرطيه (if-else-elseif) أو غيرها .... وطريقة طباعة
المتغيرات بنظام القوالب هي {المتغير} فقط .

 
  كتابة الملف content_up.php  :
الملف ثم شرحه :
 

الكود:
<? 
 include('includes/config.php'); 
 include('includes/mof_define.php'); 
  
 echo $tpl->show('header.htm'); 

?>
في السطر الأول قمنا بتضمين ملف الإعدادات config.php .
في السطر الثاني ايضاً قمنا بتضمين ملف تعريف نظام القوالب .
في السطر الثالث قمنا بوضع امر إظهار قالب الهيدر الذي سننشأه لاحقاً .

 
 
كتابة الملف index.php  :
الملف index.php وهذا محتواه :
 

الكود:
<? 
 include('content_up.php'); 

 $max_size = ($maxsize/1024); 
 $allowed_file_types = implode(", ", $alemtdadat); 
 $upload_path = 'uploaded'; 

 echo $tpl->show('upload.htm'); 
  
 echo $tpl->show('footer.htm'); 
?>
السطر الأول قمنا بتضمين الملف content_up.php الذي كتبناه سابقاً ...
السطر الثاني قمنا بقسمة أقصى حجم مسموح به على 1024 لكي نحصل على الحجم بالكيلوبايت لكي نعرضه للزائر .
السطر الثالث قمنا بإستعمال الدالة implode وتستعمل مع المصفوفات لوضع محتواها في متغير وإمكانية طباعة بسهوله , يمكنك البحث عنها بموقع php.net .
السطر الرابع حددنا مسار مجلد الرفع , وهو المجلد uploaded الذي أنشأناه سابقاً .
السطر الخامس قمنا بطلب القالب upload.htm وسننشئه لاحقاً .
السطر السادس قمنا بطلب قالب الفوتر ...


الآن سنقوم بعمل القوالب الثلاثة header,upload,footer ثم سنقوم بعمل ملف الرفع upload.php لاحقاً ...
بخصوص القوالب و التصميم , فـسنقوم بعمل السكربت بتصميم عادي جداً وليس إحترافياً , ويمكنك تعديله لاحقاً على حسب رغبتك Smile .
إذا كنت لاتعرف ال HTML او CSS فأنصحك بتعلمها لأهميتها في هذا الوقت , ولن يغنيك عن تعلمها أي برنامج كان !.

 

القالب header.htm  :
<html dir="rtl">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<meta http-equiv="Content-Language" content="ar-sa">
<meta name="keywords" content="{meta_open}">
<meta name="description" content="{meta_desc}">
<title>{sitename}</title>
</head>
<body style="margin:0">
<div align="center">

<table style="border:1px dotted #C0C0C0;width:100%">
<tr>
<td style="background-color:#FFFFDB;padding: 0;height:50px">
<p align="center" style="color:maroon;font-size:15pt;font-family:Tahoma">
{sitename}</td>
</tr>
<tr>
<td style="background-color:#808080;color:white;border:0px">
<p align="center">
<b>
<a href="index.php">
<span style="color:white;font-size:10pt;font-family:Tahoma;text-decoration: none">الرئيسية</span></a> -
<a href="http://phpx3.com"><span style="color:white;font-size:10pt;font-family:Tahoma;text-decoration: none"> 
رابط آخر</span></a></b></td>
</tr>
</table>

</div>
سأشرحه شرحاً خفيفاً ..
- .في السطر الأول بدأنا وسم الHTML وحددنا بأن إتجاه الصفحه من اليمين لليسار
dir = تعني اتجاه direction , و rtl تعني من اليمين لليسار right to left .
- السطر الثاني بدأنا وسم HEAD وهو بالعاده يوضع فيه اكواد الجافاسكربت و title الصفحه واكواد css غالباً , و مايوضع هنا لايظهر في الصفحة .
- السطر الثالث و الرابع حددنا اللغه والترميز .
- السطر الخامس و السادس حددنا الكلمات المفتاحيه و كلمات الوصف , وهنا وضعنا {meta_open} و {meta_desc}
 متغيرات سيتعامل معها نظام القوالب , وهي متغيرات وضعناها في ملف config.php .
- السطر السابع حددنا عنوان الصفحه , وهو اسم الموقع الذي وضعناه بالمتغير sitename في ملف config.php .
- السطر الثامن أغلقنا وسم HEAD .
- السطر التاسع بدأنا بـ وسم body ومايقع تحت هذا الوسم هو محتوى صفحتنا .
- باقي الأسطر وضعنا جدولين جدول فيه اسم الموقع {sitename} وجدول آخر يحتوي على روابط.
انتهينا من قالب الهيدر .

 

القالب footer.htm  :
وسيظهر بالأسفل في كل الصفحات , القالب :
 

<br>
<div align="center">
<span style="font-family:Tahoma;font-size:8pt;color:teal">
جميع الحقوق محفوظة &copy; {sitename}
</span>
</div>
</body></html>
قمنا بوضع سطر جديد ثم توسيط المحتوى ثم كتبنا جميع الحقوق محفوظة ل sitename ...
واغلقنا الوسوم التي بدأناها بقالب header .

 

القالب upload.htm  :
هذا القالب هو القالب المسؤول عن نموذج الرفع , أي صندوق الرفع .... القالب :
 

<div align="center">
<BR>
<table width="760" cellspacing="1" style="border:1px dotted #C0C0C0">
<tr>
<td style="background:gray;color:white;height:24px;text-align:center">
<font face="Tahoma" style="font-size: 10pt; font-weight:700" color="#FFFFFF">{sitename}</font></td>
</tr>
<tr>
<td style="background:silver;padding-top:2px;padding-bottom:2px;height:19px;text-align:center;">
<font face="Tahoma" style="font-size: 9pt; font-weight: 700">&nbsp;{msg}</font></td>
</tr>
<tr>
<td>
<table border="1" width="100%" cellpadding="0" style="border-collapse: collapse" bordercolor="#CCCCCC">
<tr>
<td width="50%" bgcolor="#ECE9D8"><font face="Tahoma" style="font-size: 9pt">
<span lang="ar-sa">&nbsp;أقصى حجم مسموح به : </span>
<font color="#FF0000">{max_size}</font> <span lang="ar-sa">كيلوبايت 
.</span></font></td>
<td bgcolor="#ECE9D8" width="50%">
<font face="Tahoma" style="font-size: 9pt">
<span lang="ar-sa">&nbsp; الإمتدادات المسموح بها :<br>
&nbsp;</span></font><font color="#FF0000" style="font-size: 8pt" face="Tahoma">{allowed_file_types}</font><font face="Tahoma" style="font-size: 9pt">
.</font></td>
</tr>
</table>
</td>
</tr>
</table>
<form action="upload.php" method="post" enctype="multipart/form-data" name="form1" id="fileup">
<table width="760" border="1" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF" bordercolor="#C0C0C0" style="border:1px dotted #C0C0C0; border-collapse: collapse" id="table5">
<tr>
<th bgcolor="#80A5E7">
<font face="Tahoma" style="font-size: 9pt" color="#FFFFFF">
<strong><span lang="ar-sa">رفع الملفات</span></strong></font></th>
</tr>
<tr>
<td>
<p align="center"><font face="Tahoma">
<b>
<span style="font-size: 9pt" lang="ar-sa">اختر الملف :</span></b><span style="font-size: 9pt"><b>
</b> 
<input name="fileup" type="file" id="fileup0" size="50" style="text-decoration: underline; font-family: Tahoma; font-size: 9pt; border: 1px groove #C0C0C0; padding: 2px; font-weight:700; cursor:hand"></span></font></td></tr><tr>
<td align="center" bgcolor="#ECE9D8">
<font face="Tahoma"><span style="font-size: 9pt">
<input type="submit" name="Submit" value="رفــــــــــــع / Upload" style="font-family: Tahoma; color: #FFFFFF; font-variant: small-caps; font-size: 9pt; vertical-align: baseline; border: 1px dotted #C0C0C0; padding: 4px; background-color: #81A7E8; font-weight:700;cursor:hand"> </span>
</font>
</td>
</tr>
</table>
<BR>
طبعاً جميعها أكواد HTML , لاتحتاج لشرح , فقط قمنا بالإستعانه بالمتغيرات التي كتبناها بالملف index.php لتحديد أقصى حجم للتحميل بالكيلوبايت و الإمتدادت المسموح بها ...

 


الملف upload.php المسؤول عن رقم الملفات :

هذا هو الملف المسؤوول عن إحضاء الملف ورفعه , هذا هو الملف مع الشرح بداخله :-
 

الكود:
<? 
 // نقوم بتضمين ملف المحتوى العلوي 
 include('content_up.php'); 
 // نقوم بتحديد المجلد الذي سنقوم بالرفع إليه 
 $upload_path = 'uploaded'; 



 // نقوم بإحضار الملف المراد رفعه واسمه , 
 // لقراءة المزيد عن المصفوفة $_FILES 
 // يمكنك الدخول إلى php.net 
 $file_name = $_FILES['fileup']['name']; 
 $fileup = $_FILES['fileup']['tmp_name'];   

 // نقوم بإنتاج رقم عشوائي لكي نضيفه إلى إسم الملف لكي لاتكرر اسماء الملفات في 
 // مجلد الرفع 
 $rand = rand(000,999); 
 // نقوم بوضع متغير يحتوي على اسم الملف ونلاحظ اننا اضفنا متغير اسم الملف العشوائي 
 $new_file_name=$rand.'_'.$file_name; 




 // إذا كان لم يتم اختيار ملف 
 if($fileup == ''){ 
   print "<span style='font-family:Tahoma'><p align='center'>عذراً , لم تقم بإختيار ملف </p></span>"; 
   echo $tpl->show('upload.htm'); 
   echo $tpl->show('footer.htm'); 
   exit; 
 }else{ 

  // نحضر إمتداد الملف 
  $att = strtolower(strrchr($file_name,'.')); 

   // إحضار حجم الملف بواسطة الدالة 
  // filesize  
  // مع ملاحظة ان هذه الدالة تحضر حجم الملف بالبايت 
  $file_size = filesize($fileup); 

  // التأكد من أن الإمتداد موجود في مصفوفة الإمتدادات 
  if(! in_array($att,$alemtdadat)){ 
    print "<span style='font-family:Tahoma'><p align='center'>عذراً , هذا الإمتداد غير مسموح به </p></span>"; 
    echo $tpl->show("upload.htm"); 
    echo $tpl->show('footer.htm'); 
    exit; 
 } 

   // التأكد من حجم الملف 
  elseif($file_size > $maxsize) 
  { 
   // نقوم بإحضار حجم الملف بالكيلوبايت لكي نقوم بطباعته للزائر 
   $max_size = ($maxsize/1024); 
   print "<span style='font-family:Tahoma'><p align='center'>عذراً , حجم الملف أكبر من $max_size </p></span>"; 
   echo $tpl->show("upload.htm"); 
   exit; 

  }else{ 
 // وضعنا متغير يحتوي على مسار مجلد الرفع ثم اسم الملف لكي نحدد المسار كاملاً 
 $path= $upload_path.'/'.$new_file_name; 

  // رفع الملف 
  // هنا استخدمنا الدالة move_uploaded_file 
  // ولهذه الداله بارامتاران 
 // الأول الملف , والثاني مسار الملف وقد حددنا في أعلى 
  $Upload = move_uploaded_file($fileup,$path); 

   // إذا تم رفع الملف 
   if($Upload) 
    { 
          // نضع مصفوفة لإمتدادت الصور  
         // لكي إذا كان الملف المرفوع صوره , نقوم بالتحقق من عرضه و ارتفاعه كي لايكون ملفاً ضاراً ! 
         $images = array(".jpg",".jpeg",".gif",".png",".bmp"); 

    // إذا كان الإمتداد موجود في مصفوفة إمتداد الصور 
               if ( in_array($att,$images) ) 
    { 
                       // إذا كان الإمتداد صورة ن??? ?????? ???????? ??? ???? ??????? ?? ?????
                      // mime type " 
                     // بواسطة الدالة getimagesize 
                   // وعلى مااظن ان هذه الدالة تستلزم مكتبة GD 
                 // أيضاً نلاحظ اننا وضعنا علامة @ 
               // ووضعه يعني عدم إظهار الأخطاء في حال حدوثها 
    $image = @getimagesize($path); 


                // إذا كان الصورة غير حقيقيه 
    if(!stristr($image['mime'],'image')) 
    {                  
                 // نقوم بحذف الملف 
    $delete = @unlink($path); 
    if($delete) 
    { 
    print "<span style='font-family:Tahoma'><p align='center'>عذراً , الصورة مزيفة </p></span>"; 
    echo $tpl->show("upload.htm"); 
    echo $tpl->show('footer.htm'); 
    exit; 
                }     
         } 
    } 
    //  أما إذا تم رفع الملف بنجاح 
                // نحضر حجم الملف 
                 $size=  ($_FILES['fileup']['size']/1024); 
                // نحضر نوع الملف 
                 $type = $_FILES['fileup']['type']; 
                 // نطبع القالب المسؤول عن عرض معلومات الملف المرفوع 
     echo $tpl->show("file-was-upload.htm"); 
                 echo $tpl->show('footer.htm'); 

    }else{ 
      // في حال لم يتم رفع الملف 
    print "<span style='font-family:Tahoma'><p align='center'>عذراً , حصل خطأ في رفع الملف , حاول مجدداً </p></span>"; 
    echo $tpl->show("upload.htm"); 
    echo $tpl->show('footer.htm'); 

              } 

       } 
  } 

?>
 
القالب file-was-upload.htm المسؤول عن عرض نتيجة الملف بعد رفعه :
<div align="center">
<table style="border:1px dotted silver;width:600px" id="table1"> <tr> 
<td style="text-align:center;font-size:10pt;font-family:Tahoma;background:black;color:white">
تم تحميل الملف بنجاح ، رابط الملف :<br>
<a href="http://{site_url}/{path}" style="color:white;text-decoration:none">http://{site_url}/{path}</a></td></tr>
<tr><td style="font-family:Tahoma;color:silver;font-size:9pt;text-align:center">
حجم الملف : <b>{size} </b>كيلوبايت.<BR/>
نوع الملف :<b>{type}.</b><BR/>
</td></tr>
<tr>
<TD align="center" bgcolor="#ECE9D8" height="19">
<font color="#808080" style="font-size: 9pt" face="Tahoma">
استخدامات متعددة : </font> </td>
</tr> <tr>
<td style="font-family:Tahoma;background:white" align="center"> <font face="Tahoma" size="2">للإستعمال كصورة في المنتديات</font><font face="Tahoma"style="font-size: 10pt"> (قم بنسخ مافي المربع والصقه في المنتدى)</font><font face="Tahoma"><font size="2">:
</font> 
 <input size='100' value=' درس برمجة مركز رفع ملفات بسيط و محمي ويعمل بنظام قوالب . {path} ' name="T3"><font size="2">
<br /></font></font></td>
</tr>
<tr>
<td class='thead' align="center"> <font face="Tahoma" size="2">للإستعمال كرابط في المنتديات</font><font face="Tahoma" style="font-size: 10pt"> (قم بنسخ مافي المربع والصقه في المنتدى)</font><font face="Tahoma"><font size="2">:
</font> 
 <input size='100' value=' اضغــط هنــا لتحميــل الملــف ' name="T4"><font size="2">
</font></font>

</td>
</tr>
<tr><td style="font-family:Tahoma;background:silver" align="center"> <font face="Tahoma" size="2">
<b>صفحة HTML &nbsp;:</b></font></td></tr>

<br /><tr><td class='thead' align="center"> <font face="Tahoma"><font size="2">للإستعمال 
كصورة في صفحة <span lang="en-us">HTML</span> : </font> 
 <input size='100' value='<a href="http://{site_url}" target="_blank"><img src="http://{site_url}/{path}"></a>' name="T1"><font size="2">
<br /></font></font></td></tr><tr><td class='thead' align="center"> 
<font face="Tahoma"><font size="2">للإستعمال كرابط في صفحة
<span lang="en-us">HTML </span></font> 
 <input size='100' value='&lt;a href="http://{site_url}/{path}" target="_blank"&gt;إضغط هنا&lt;/a&gt;' name="T2"><font size="2">
</font></font>

</td></tr><tr><td class="tcat" align="center"> <form method="POST" action="index.php"> 
<input type="submit" value="رفع المزيد من الملفات" style="font-weight: 700"></form> </td></tr>
</table>
</div>
 
الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://nessour.yoo7.com
 
درس برمجة مركز رفع ملفات بسيط و محمي ويعمل بنظام قوالب .
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1
 مواضيع مماثلة
-
» حصري مركز رفع servimg الجديد بأسم منتداك ميزات
»  Balabolka 2.5.0.532 لتحويل النصوص الى ملفات صوتية مسموعة
» 3 ملفات CCcam.cfg مجهز بسيرفرات سيسكام بتاريخ 11-10-2012
» Trojan Remover v6.7.9.2578 Full مزيل ملفات التجسس

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
منتدى النسور :: قسم تطوير المنتديات :: قسم دروس php و برمجة المواقع-
انتقل الى: