walid
11-01-2013, بتوقيت غرينيتش 03:31 PM
http://www.dzbatna.com/images/icons/iconrote.gif ط¯ط±ط³ ط¨ط±ظ…ط¬ط© ط§ط³ظƒط±ط¨طھ ط§ط¯ط§ط±ط© ظ…ط*طھظˆظ‰ ظ…ط¨ط³ط· ط¨ط·ط±ظٹظ‚ط© ط³ظ‡ظ„ط© (http://www.dzbatna.com/t1280360/)
بسم الله الرحمن الرحيم
اليكم درس مفصل رائع فى كيفية برمجة اسكربت ادارة محتوى كتبه احد الاشخاص فى موقع برمجة اجنبى
وحبيت انقله واعدل عليه شويه
نبدأ على بركة الله ...........
اولا راح نقوم بعمل قاعدة البيانات وراح تكون فيها الحقول الأتية:
id: الترميز التلقائى لترقيم الاضافات الجديده
title: لتخزين عنوان الموضوع
content: لتخزين محتوى الموضوع
author: حفظ اسم الكاتب
date: لتخزين تاريخ كتابة الموضوع واضافة الردود
رمز Code:
CREATE TABLE `news` ( `id` int(11) NOT NULL auto_increment, `title` text NOT NULL , `content` text NOT NULL, `author` text NOT NULL, `date` datetime NOT NULL default '00-00-0000 00:00:00', PRIMARY KEY (`id`) ) TYPE=MyISAM AUTO_INCREMENT=10 ;
ثانيا: عمل ملف الاتصال بقاعدة البيانات وراح نسميه site.inc.php
وقم بتخزينه فى مجلد الاسكربت مباشرة ولنفرض ان اسم المجلد site
رمز PHP:
<code style="white-space:nowrap"> <code> <?
//declare the database values
$confg['db_uname'] = "user"; //your database username
$confg['db_paswd'] = "pass"; //your database password
$confg['db_host'] = "localhost"; //usually localhost
$confg['db_dbase'] = "news"; //the database name
################################################## ######
//create the function to log into the DB
function db_login() {
global $confg;
$link = @mysql_connect($confg['db_host'], $confg['db_uname'], $confg['db_paswd']) or die("Error connecting: " . mysql_error());
@mysql_select_db($confg['db_dbase'], $link);
}
//function for logging out from the DB
function db_logout() {
@mysql_close($link);
}
?> </code> </code>
طبعا ملف الاتصال عبارة عن فانكشن اتصال وفانكشن اغلاق حتى يسهل استدعائهم ب db_login() او db_logout()
الحين سوينا القاعدة ومجلد الاسكربت بداخله ملف الاتصال بالقاعدة
الحين نسوى مجلد باسم admin داخل مجلد الاسكربت site
ثم راح نقوم بعمل صفحة لاضافة موضوع وراح نسميها add.php
وراح نضعها فى مجلد الادمن
http://i29.tinypic.com/vxnl01.jpg
وهذا هو الكود code الكامل وراح اشرح طريقةه على ثلاثة اجزاء:
رمز PHP:
<code style="white-space:nowrap"> <code> <?
require_once("../site/site.inc.php"); //Calls in the previous file we created
// form not yet submitted
// display initial form
if (!$submit)
{
?>
Add New Post<br />
<form action="<? echo $PHP_SELF; ?>" method="POST">
<input type="hidden" name="id" value="id">
Title:<br />
<input size="50" maxlength="60" type="text" name="title"><br />
News Content:<br />
<textarea name="content" cols="40" rows="10"> </textarea> <br />
Author:<br />
<input size="50" maxlength="250" type="text" name="author"> <br />
<input type="Submit" name="submit" value="Update">
</form>
<?
} else {
//set up error array
$err = array();
$count = 0;
//validate the user text input fields
if (!$title) { $err[$count] = "Invalid entry: title"; $count++; }
if (!$content) { $err[$count] = "Invalid entry: content"; $count++; }
if (!$author) { $err[$count] = "Invalid entry: author"; $count++; }
// if no error found...
if (sizeof($err) == 0) {
db_login(); //we defined this function in site.inc.php
// generate and execute query to insert the post
$query = "INSERT INTO news(id, title, content, author, date) VALUES(0, '$title', '$content', '$author', NOW())";
$result = mysql_query($query) or die ("Error in query: $query. " . mysql_error());
// print result
echo "Update successful. <a href='index.php'>Go back to the main menu</a>.";
} else {
// errors found
// print as list
echo "<font size=-1>The following errors were encountered: <br>";
echo "<ul>";
for ($x=0; $x<sizeof($errorList); $x++) {
echo "<li>$errorList[$x]";
}
echo "</ul></font>";
}
}
?> </code> </code>
شرح طريقة كود code الصفحة السابق
اولا: الاتصال بالقاعدة +عمل فورم ادخال البيانات وكتابتها
رمز PHP:
<code style="white-space:nowrap"> <code> <?
require_once("../site/site.inc.php"); //Calls in the previous file we created
// form not yet submitted
// display initial form
if (!$submit)
{
?>
Add New Post<br />
<form action="<? echo $PHP_SELF; ?>" method="POST">
<input type="hidden" name="id" value="id">
Title:<br />
<input size="50" maxlength="60" type="text" name="title"><br />
News Content:<br />
<textarea name="content" cols="40" rows="10"> </textarea> <br />
Author:<br />
<input size="50" maxlength="250" type="text" name="author"> <br />
<input type="Submit" name="submit" value="Update">
</form>
<?
} else { </code> </code>
والحين راح نضيف كود code للتحقق من المدخلات فى الفورم
ولاحظ انها راح تكون عبارة عن مصفوفة
بحيث انه لو لم يتم ادخال اى قيم فى اى فورم راح يعطى عبارة ان الحقول فارغة
ولو كانت الفورمز كلها مدرج بها اى عبارة, راح نسوى حالة if بحيث لو حجم مصفوفة الخطأ =0 اى انه لا يوجد اى خطأ, راح نتصل بالقاعدة وندخل البيانات فى الفورمز فى قاعدة البيانات
نشوف الكود code
رمز PHP:
<code style="white-space:nowrap"> <code> //set up error array
$err = array();
$count = 0;
//validate the user text input fields
if (!$title) { $err[$count] = "Invalid entry: title"; $count++; }
if (!$content) { $err[$count] = "Invalid entry: content"; $count++; }
if (!$author) { $err[$count] = "Invalid entry: author"; $count++; }
// if no error found...
if (sizeof($err) == 0) {
</code> </code>
واخيرا الاتصال وتخزين البيانات فى القاعدة
رمز PHP:
<code style="white-space:nowrap"> <code> db_login(); //we defined this function in site.inc.php
// generate and execute query to insert the post
$query = "INSERT INTO news(id, title, content, author, date) VALUES(0, '$title', '$content', '$author', NOW())";
$result = mysql_query($query) or die ("Error in query: $query. " . mysql_error());
// print result
echo "Update successful. <a href='index.php'>Go back to the main menu</a>.";
} else {
// errors found
// print as list
echo "<font size=-1>The following errors were encountered: <br>";
echo "<ul>";
for ($x=0; $x<sizeof($errorList); $x++) {
echo "<li>$errorList[$x]";
}
echo "</ul></font>";
}
}
?>
</code> </code>
لأحظ اننا استخدمنا دالة ادراج الخطأ errorlist
الحين محتاجين لعمل صفحة لامكانية تعديل الموضوع او حذف
راح نسوى صفحة بها لست لادراج كافة المواضيع المضافة مع اضافة خيار التعديل او الحذف
list.php
رمز PHP:
<code style="white-space:nowrap"> <code> <?
include("../site.inc.php");
db_login();
//Generate the query so we can retrieve all titles in the DB in descending ID order
$query = "SELECT id, title FROM news ORDER BY id DESC";
$result = mysql_query($query) or die ("Error in query: $query. " . mysql_error());
// if records are present
if (mysql_num_rows($result) > 0) {
while($send = mysql_fetch_object($result)) {
echo" $send->title - <a href='ed.php?id=$send->id'>Edit this</a> - <a href-='del.php?id=$send->id'>Delete this</a><br /><br />";
}
}
?> </code> </code>
شرح طريقة الكود code
انكلود لملف الاتصال بالقاعدة>اتصلنا باستدعاء الفانكشن>عملنا استعلام للمدخلات المخزنة فى القاعدة>ثم حسبنا عدد الصفوف الموجودهnum_rows>ثم جلبنا البيانات المخزنة >ادرجنا الناتج على هيئة عنوان الموضوع+خيار التعديل والحذف
الحين راح نسوى صفحة لتعديل المواضيع ed.php التى راح تظهر بعد الضغط على زر edit this
http://i26.tinypic.com/mj93cw.jpg
رمز PHP:
<code style="white-space:nowrap"> <code> <?
include("../site.inc.php");
// form not yet submitted
// display initial form with values pre-filled
if (!$submit)
{
db_login();
// generate and execute query
$query = "SELECT * FROM news WHERE id = '$id'";
$result = mysql_query($query) or die ("Error in query: $query. " . mysql_error());
// if a result is returned
if (mysql_num_rows($result) > 0)
{
// turn it into an object
$send = mysql_fetch_object($result);
// print form with values pre-filled
?>
Edit News Post
<form action="<? echo $PHP_SELF; ?>" method="POST">
<input type="hidden" name="id" value="<? echo $send->id; ?>">
Title:<br />
<input size="50" maxlength="250" type="text" name="title" value="<? echo $send->title; ?>"><br />
Content:<br />
<textarea name="content" cols="40" rows="10"><? echo $send->content; ?></textarea><br />
Author:<br />
<input size="50" maxlength="250" type="text" name="author" value="<? echo $send->author; ?>"><br />
<input type="Submit" name="submit" value="Update">
</form>
<?
}
// no result returned
else {
echo "<font size=-1>That post does not exist.</font>";
}
}
// form submitted
// start processing it
else
{
// set up error list array
$errorList = array();
$count = 0;
// validate text input fields
if (!$title) { $errorList[$count] = "Invalid entry: title"; $count++; }
if (!$content) { $errorList[$count] = "Invalid entry: content"; $count++; }
if (!$author) { $errorList[$count] = "Invalid entry: author"; $count++; }
if (sizeof($errorList) == 0) {
db_login();
// generate and execute query
$query = "UPDATE news SET title = '$title', content = '$content', author = '$author' WHERE id = '$id'";
$result = mysql_query($query) or die ("Error in query: $query. " . mysql_error());
// print result
echo "<font size=-1>Update successful. <a href=index.php>Go back to the main menu</a>.</font>";
} else {
// errors occurred
// print as list
echo "<font size=-1>The following errors were encountered: <br>";
echo "<ul>";
for ($x=0; $x<sizeof($errorList); $x++)
{
echo "<li>$errorList[$x]";
}
echo "</ul></font>";
}
}
?> </code> </code>
طبعا الكود code سهل عبارة عن فورزمز وبها المدخلات المخزنة بالقاعدة وجلبناها من المتغير send من mysql_fetch_array
ثم استخدمنا دالة فحص الخطأ مثل ما شرح طريقةنا السابق للتأكد من خلو اى خطأ
ثم استخدمنا امر تحديث update البيانات update
الحين راح نسوى صفحة الحذف ونسميها del.php
رمز PHP:
<code style="white-space:nowrap"> <code> <?
include("../site.inc.php");
db_login();
// generate and execute query
$query = "DELETE FROM news WHERE id = '$id'";
$result = mysql_query($query) or die ("Error in query: $query. " . mysql_error());
// print result
echo "<font size=-1>Deletion successful. <a href=index.php>Go back to the main menu</a>.</font>";
?> </code> </code>
بسيط استخدمنا امر delete
الحين يتبقى نسوى صفحة اندكس بسيطة
ولنفرض انها تكون لصفحة اضافة موضوع
رمز PHP:
<code style="white-space:nowrap"> <code> <?php
include("admin/add.php/");
?> </code> </code>
الحين تمام بعد ما انتهينا من السابق
راح نشرح طريقة بنية الاسكربت
سوينا ملف الاسكربت واسمه site
بداخله ملف اسمه site.inc.php و ملف index.php ومجلد admin
بداخل مجلد admin توجد الملفات الاتية:
add.php
del.php
ed.php
list.php
راح نضع درس مفصل اخر فى اقرب وقت لاضافة اشياء اخرى على الاسكربت
تحياتى vista-design
ألعاب الأندرويد مجانا و حصريا (http://www.apotox.info/forum)
https://fbcdn-sphotos-d-a.akamaihd.net/hphotos-ak-ash4/482113_236967293114455_1193518507_n.png (http://www.dzbatna.com)
©المشاركات المنشورة تعبر عن وجهة نظر صاحبها فقط، ولا تُعبّر بأي شكل من الأشكال عن وجهة نظر إدارة المنتدى (http://www.dzbatna.com)©
بسم الله الرحمن الرحيم
اليكم درس مفصل رائع فى كيفية برمجة اسكربت ادارة محتوى كتبه احد الاشخاص فى موقع برمجة اجنبى
وحبيت انقله واعدل عليه شويه
نبدأ على بركة الله ...........
اولا راح نقوم بعمل قاعدة البيانات وراح تكون فيها الحقول الأتية:
id: الترميز التلقائى لترقيم الاضافات الجديده
title: لتخزين عنوان الموضوع
content: لتخزين محتوى الموضوع
author: حفظ اسم الكاتب
date: لتخزين تاريخ كتابة الموضوع واضافة الردود
رمز Code:
CREATE TABLE `news` ( `id` int(11) NOT NULL auto_increment, `title` text NOT NULL , `content` text NOT NULL, `author` text NOT NULL, `date` datetime NOT NULL default '00-00-0000 00:00:00', PRIMARY KEY (`id`) ) TYPE=MyISAM AUTO_INCREMENT=10 ;
ثانيا: عمل ملف الاتصال بقاعدة البيانات وراح نسميه site.inc.php
وقم بتخزينه فى مجلد الاسكربت مباشرة ولنفرض ان اسم المجلد site
رمز PHP:
<code style="white-space:nowrap"> <code> <?
//declare the database values
$confg['db_uname'] = "user"; //your database username
$confg['db_paswd'] = "pass"; //your database password
$confg['db_host'] = "localhost"; //usually localhost
$confg['db_dbase'] = "news"; //the database name
################################################## ######
//create the function to log into the DB
function db_login() {
global $confg;
$link = @mysql_connect($confg['db_host'], $confg['db_uname'], $confg['db_paswd']) or die("Error connecting: " . mysql_error());
@mysql_select_db($confg['db_dbase'], $link);
}
//function for logging out from the DB
function db_logout() {
@mysql_close($link);
}
?> </code> </code>
طبعا ملف الاتصال عبارة عن فانكشن اتصال وفانكشن اغلاق حتى يسهل استدعائهم ب db_login() او db_logout()
الحين سوينا القاعدة ومجلد الاسكربت بداخله ملف الاتصال بالقاعدة
الحين نسوى مجلد باسم admin داخل مجلد الاسكربت site
ثم راح نقوم بعمل صفحة لاضافة موضوع وراح نسميها add.php
وراح نضعها فى مجلد الادمن
http://i29.tinypic.com/vxnl01.jpg
وهذا هو الكود code الكامل وراح اشرح طريقةه على ثلاثة اجزاء:
رمز PHP:
<code style="white-space:nowrap"> <code> <?
require_once("../site/site.inc.php"); //Calls in the previous file we created
// form not yet submitted
// display initial form
if (!$submit)
{
?>
Add New Post<br />
<form action="<? echo $PHP_SELF; ?>" method="POST">
<input type="hidden" name="id" value="id">
Title:<br />
<input size="50" maxlength="60" type="text" name="title"><br />
News Content:<br />
<textarea name="content" cols="40" rows="10"> </textarea> <br />
Author:<br />
<input size="50" maxlength="250" type="text" name="author"> <br />
<input type="Submit" name="submit" value="Update">
</form>
<?
} else {
//set up error array
$err = array();
$count = 0;
//validate the user text input fields
if (!$title) { $err[$count] = "Invalid entry: title"; $count++; }
if (!$content) { $err[$count] = "Invalid entry: content"; $count++; }
if (!$author) { $err[$count] = "Invalid entry: author"; $count++; }
// if no error found...
if (sizeof($err) == 0) {
db_login(); //we defined this function in site.inc.php
// generate and execute query to insert the post
$query = "INSERT INTO news(id, title, content, author, date) VALUES(0, '$title', '$content', '$author', NOW())";
$result = mysql_query($query) or die ("Error in query: $query. " . mysql_error());
// print result
echo "Update successful. <a href='index.php'>Go back to the main menu</a>.";
} else {
// errors found
// print as list
echo "<font size=-1>The following errors were encountered: <br>";
echo "<ul>";
for ($x=0; $x<sizeof($errorList); $x++) {
echo "<li>$errorList[$x]";
}
echo "</ul></font>";
}
}
?> </code> </code>
شرح طريقة كود code الصفحة السابق
اولا: الاتصال بالقاعدة +عمل فورم ادخال البيانات وكتابتها
رمز PHP:
<code style="white-space:nowrap"> <code> <?
require_once("../site/site.inc.php"); //Calls in the previous file we created
// form not yet submitted
// display initial form
if (!$submit)
{
?>
Add New Post<br />
<form action="<? echo $PHP_SELF; ?>" method="POST">
<input type="hidden" name="id" value="id">
Title:<br />
<input size="50" maxlength="60" type="text" name="title"><br />
News Content:<br />
<textarea name="content" cols="40" rows="10"> </textarea> <br />
Author:<br />
<input size="50" maxlength="250" type="text" name="author"> <br />
<input type="Submit" name="submit" value="Update">
</form>
<?
} else { </code> </code>
والحين راح نضيف كود code للتحقق من المدخلات فى الفورم
ولاحظ انها راح تكون عبارة عن مصفوفة
بحيث انه لو لم يتم ادخال اى قيم فى اى فورم راح يعطى عبارة ان الحقول فارغة
ولو كانت الفورمز كلها مدرج بها اى عبارة, راح نسوى حالة if بحيث لو حجم مصفوفة الخطأ =0 اى انه لا يوجد اى خطأ, راح نتصل بالقاعدة وندخل البيانات فى الفورمز فى قاعدة البيانات
نشوف الكود code
رمز PHP:
<code style="white-space:nowrap"> <code> //set up error array
$err = array();
$count = 0;
//validate the user text input fields
if (!$title) { $err[$count] = "Invalid entry: title"; $count++; }
if (!$content) { $err[$count] = "Invalid entry: content"; $count++; }
if (!$author) { $err[$count] = "Invalid entry: author"; $count++; }
// if no error found...
if (sizeof($err) == 0) {
</code> </code>
واخيرا الاتصال وتخزين البيانات فى القاعدة
رمز PHP:
<code style="white-space:nowrap"> <code> db_login(); //we defined this function in site.inc.php
// generate and execute query to insert the post
$query = "INSERT INTO news(id, title, content, author, date) VALUES(0, '$title', '$content', '$author', NOW())";
$result = mysql_query($query) or die ("Error in query: $query. " . mysql_error());
// print result
echo "Update successful. <a href='index.php'>Go back to the main menu</a>.";
} else {
// errors found
// print as list
echo "<font size=-1>The following errors were encountered: <br>";
echo "<ul>";
for ($x=0; $x<sizeof($errorList); $x++) {
echo "<li>$errorList[$x]";
}
echo "</ul></font>";
}
}
?>
</code> </code>
لأحظ اننا استخدمنا دالة ادراج الخطأ errorlist
الحين محتاجين لعمل صفحة لامكانية تعديل الموضوع او حذف
راح نسوى صفحة بها لست لادراج كافة المواضيع المضافة مع اضافة خيار التعديل او الحذف
list.php
رمز PHP:
<code style="white-space:nowrap"> <code> <?
include("../site.inc.php");
db_login();
//Generate the query so we can retrieve all titles in the DB in descending ID order
$query = "SELECT id, title FROM news ORDER BY id DESC";
$result = mysql_query($query) or die ("Error in query: $query. " . mysql_error());
// if records are present
if (mysql_num_rows($result) > 0) {
while($send = mysql_fetch_object($result)) {
echo" $send->title - <a href='ed.php?id=$send->id'>Edit this</a> - <a href-='del.php?id=$send->id'>Delete this</a><br /><br />";
}
}
?> </code> </code>
شرح طريقة الكود code
انكلود لملف الاتصال بالقاعدة>اتصلنا باستدعاء الفانكشن>عملنا استعلام للمدخلات المخزنة فى القاعدة>ثم حسبنا عدد الصفوف الموجودهnum_rows>ثم جلبنا البيانات المخزنة >ادرجنا الناتج على هيئة عنوان الموضوع+خيار التعديل والحذف
الحين راح نسوى صفحة لتعديل المواضيع ed.php التى راح تظهر بعد الضغط على زر edit this
http://i26.tinypic.com/mj93cw.jpg
رمز PHP:
<code style="white-space:nowrap"> <code> <?
include("../site.inc.php");
// form not yet submitted
// display initial form with values pre-filled
if (!$submit)
{
db_login();
// generate and execute query
$query = "SELECT * FROM news WHERE id = '$id'";
$result = mysql_query($query) or die ("Error in query: $query. " . mysql_error());
// if a result is returned
if (mysql_num_rows($result) > 0)
{
// turn it into an object
$send = mysql_fetch_object($result);
// print form with values pre-filled
?>
Edit News Post
<form action="<? echo $PHP_SELF; ?>" method="POST">
<input type="hidden" name="id" value="<? echo $send->id; ?>">
Title:<br />
<input size="50" maxlength="250" type="text" name="title" value="<? echo $send->title; ?>"><br />
Content:<br />
<textarea name="content" cols="40" rows="10"><? echo $send->content; ?></textarea><br />
Author:<br />
<input size="50" maxlength="250" type="text" name="author" value="<? echo $send->author; ?>"><br />
<input type="Submit" name="submit" value="Update">
</form>
<?
}
// no result returned
else {
echo "<font size=-1>That post does not exist.</font>";
}
}
// form submitted
// start processing it
else
{
// set up error list array
$errorList = array();
$count = 0;
// validate text input fields
if (!$title) { $errorList[$count] = "Invalid entry: title"; $count++; }
if (!$content) { $errorList[$count] = "Invalid entry: content"; $count++; }
if (!$author) { $errorList[$count] = "Invalid entry: author"; $count++; }
if (sizeof($errorList) == 0) {
db_login();
// generate and execute query
$query = "UPDATE news SET title = '$title', content = '$content', author = '$author' WHERE id = '$id'";
$result = mysql_query($query) or die ("Error in query: $query. " . mysql_error());
// print result
echo "<font size=-1>Update successful. <a href=index.php>Go back to the main menu</a>.</font>";
} else {
// errors occurred
// print as list
echo "<font size=-1>The following errors were encountered: <br>";
echo "<ul>";
for ($x=0; $x<sizeof($errorList); $x++)
{
echo "<li>$errorList[$x]";
}
echo "</ul></font>";
}
}
?> </code> </code>
طبعا الكود code سهل عبارة عن فورزمز وبها المدخلات المخزنة بالقاعدة وجلبناها من المتغير send من mysql_fetch_array
ثم استخدمنا دالة فحص الخطأ مثل ما شرح طريقةنا السابق للتأكد من خلو اى خطأ
ثم استخدمنا امر تحديث update البيانات update
الحين راح نسوى صفحة الحذف ونسميها del.php
رمز PHP:
<code style="white-space:nowrap"> <code> <?
include("../site.inc.php");
db_login();
// generate and execute query
$query = "DELETE FROM news WHERE id = '$id'";
$result = mysql_query($query) or die ("Error in query: $query. " . mysql_error());
// print result
echo "<font size=-1>Deletion successful. <a href=index.php>Go back to the main menu</a>.</font>";
?> </code> </code>
بسيط استخدمنا امر delete
الحين يتبقى نسوى صفحة اندكس بسيطة
ولنفرض انها تكون لصفحة اضافة موضوع
رمز PHP:
<code style="white-space:nowrap"> <code> <?php
include("admin/add.php/");
?> </code> </code>
الحين تمام بعد ما انتهينا من السابق
راح نشرح طريقة بنية الاسكربت
سوينا ملف الاسكربت واسمه site
بداخله ملف اسمه site.inc.php و ملف index.php ومجلد admin
بداخل مجلد admin توجد الملفات الاتية:
add.php
del.php
ed.php
list.php
راح نضع درس مفصل اخر فى اقرب وقت لاضافة اشياء اخرى على الاسكربت
تحياتى vista-design
ألعاب الأندرويد مجانا و حصريا (http://www.apotox.info/forum)
https://fbcdn-sphotos-d-a.akamaihd.net/hphotos-ak-ash4/482113_236967293114455_1193518507_n.png (http://www.dzbatna.com)
©المشاركات المنشورة تعبر عن وجهة نظر صاحبها فقط، ولا تُعبّر بأي شكل من الأشكال عن وجهة نظر إدارة المنتدى (http://www.dzbatna.com)©