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

مشاهدة النسخة كاملة : درس مفصل برمجة اسكربت ادارة محتوى مبسط بطريقة سهلة



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&#91;'db_uname'&#93; = "user"; //your database username
$confg&#91;'db_paswd'&#93; = "pass"; //your database password
$confg&#91;'db_host'&#93; = "localhost"; //usually localhost
$confg&#91;'db_dbase'&#93; = "news"; //the database name

################################################## ######
//create the function to log into the DB

function db_login() {

global $confg;

$link = @mysql_connect($confg&#91;'db_host'&#93;, $confg&#91;'db_uname'&#93;, $confg&#91;'db_paswd'&#93;) or die("Error connecting: " . mysql_error());

@mysql_select_db($confg&#91;'db_dbase'&#93;, $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&#91;$count&#93; = "Invalid entry: title"; $count++; }

if (!$content) { $err&#91;$count&#93; = "Invalid entry: content"; $count++; }

if (!$author) { $err&#91;$count&#93; = "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&#91;$x&#93;";
}
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&#91;$count&#93; = "Invalid entry: title"; $count++; }

if (!$content) { $err&#91;$count&#93; = "Invalid entry: content"; $count++; }

if (!$author) { $err&#91;$count&#93; = "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&#91;$x&#93;";
}
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&#91;$count&#93; = "Invalid entry: title"; $count++; }

if (!$content) { $errorList&#91;$count&#93; = "Invalid entry: content"; $count++; }

if (!$author) { $errorList&#91;$count&#93; = "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&#91;$x&#93;";
}
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)©

استعمل مربع البحث في الاسفل لمزيد من المواضيع


سريع للبحث عن مواضيع في المنتدى