هذه الرسالة تفيد بأنك غير مشترك في منتديات سارق القلوب. لتسجيل الرجاء اضغط هنـا
منتديات سارق القلوب  

 

عالم المعرفه

رسائل جوال sms اس ام اس

ينتهي في 5\11

برامج صوت Audio برامج فيديو برامج ماسنجر - msn   برامج مطورين  برامج منزلية  برامج تعليمية  برامج أساسية  برامج تصوير رقمي  برامج متصفحات  برامج شبكات  برامج اقتصاد و أعمال  برامج عربية  برامج عملية  برامج إدارة النظام  برامج بورتيبل برامج حماية  1 2 3 4 5 6 7 8  شات دردشة دردشه



العودة   منتديات سارق القلوب >
عصـر المعلومـات الفضائية
> ركن تطوير المواقع والمنتديات > منتدى دروس PHP
التسجيل التعليمـــات يوتيوب فيديو Directory اجعل كافة المشاركات مقروءة
دروس فلاش Macromedia Flash دروس فوتوشوب Adobe Photoshop دروس سوتش SWiSH
دروس في الأوفيس  دروس tutorials
قسم

منتدى دروس PHP

الدرس الثاني والعشرون : إنشاء سجل الزوار



رد
 
LinkBack أدوات الموضوع طرق مشاهدة الموضوع
قديم 18-7-1427, 06:59 مساء   #1 (permalink)
سارق القلوب
واحد من الناس
 
الصورة الرمزية سارق القلوب
 
تاريخ التسجيل: Jun 2004
الدولة: الرياض
المشاركات: 10,352
مشاركات اليوم : لايوجد
المواضيع: 2049
الـردود: 8303
سارق القلوب will become famous soon enough سارق القلوب will become famous soon enough
الدرس الثاني والعشرون : إنشاء سجل الزوار

السكريبت يتكون من ثلاثة ملفات، الأول view.php لعرض المدخلات في سجل الزوار، والثاني add.php لإضافة مدخل جديد إلى سجل الزوار، والثالث هو config.php ويحتوي على بيانات قاعدة البيانات.

في الملف view.php، يتم جلب البيانات المدخلة من قاعدة البيانات وعرضها واحدة تلو الأخرى في صورة جدول HTML، وأسفل هذا الجدول يوجد نموذج لإضافة تعليق جديد في سجل الزوار.

الملف add.php يقوم بأخذ البيانات المرسلة من النموذج الموجود في الملف view.php، ثم يقوم بمراجعة هذه البيانات والتحقق منها، ثم إضافتها إلى قاعدة البيانات وإعادة المستخدم إلى الملف view.php.

يجب أن نحدد الآن البيانات التي نريد تخزينها في قاعدة البيانات:

- الاسم.

- البريد الإلكتروني.

- الصفحة الشخصية.

- التعليق على الموقع.



* قاعدة البيانات

من خلال المعلومات السابقة نلاحظ بأننا سنحتاج إلى جدول واحد فقط في قاعدة البيانات، وليكن اسمه guestbook، هذه هي الشفرة التي يجب تنفيذها للحصول على البنية الأساسية للجدول:

CREATE TABLE guestbook (
id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
name CHAR(100),
email CHAR(128),
homepage CHAR(200),
date DATETIME,
ip CHAR(15),
message TEXT
);

شفرة SQL السابقة تعرف جدولا اسمه guestbook يحتوي على الحقول التالية:

id - هذا الحقل يخزن رقما تسلسليا يزداد بمقدار واحد مع كل حقل جديد يضاف إلى الجدول، ومواصفاته:

رقم INTEGER

بلا إشارة (موجب دائما) UNSIGNED

إجباري (لا يمكن أن يترك خاليا) NOT NULL

يتم تحديثه تلقائيا إلى رقم أكبر من السابق بواحد AUTO_INCREMENT

وهو المفتاح الأساسي للوصول إلى بيانات الجدول PRIMARY KEY



name - هذا الحقل يخزن اسم الشخص الموقع في سجل الزوار، ومواصفاته كالتالي:

يخزن نصا بطول 100 حرف كحد أقصى CHAR ( 100 )



email - لتخزين البريد الإلكتروني، 128 حرفا بحط أقصى (هذا الرقم قياسي تقريبا في أغلب البرامج القائمة على الويب لتخزين عناوين البريد الإلكترونية).



homepage - لتخزين عنوان الصفحة الشخصية للموقع، 200 حرفا بحد أقصى -- قيمة معقولة.

date - لتخزين تاريخ المدخل في سجل الزوار، وهو يخزن قيما من النوع:

تاريخ ووقت DATETIME



message - لتخزين نص الرسالة (تعليقك على الموقع)،

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





* الملف config.php

يحتوي على الملف على شفرة برمجية تقوم بإعداد المتغيرات اللازمة للوصول إلى قاعدة البيانات، وسنقوم بالمرة بإضافة شفرة الاتصال بقاعدة البيانات إلى هذا الملف بدلا من تكرارها في كل من الملفين view.php و add.php.

أولا سنقوم بإعداد مجموعة من المتغيرات:

/* store the hostname of the MySQL server */
$dbhost = "localhost";
/* store the username to login to MySQL */
$dbuser = "root";
/* store the password to login to MySQL */
$dbpass = "";
/* store the name of the MySQL database */
$dbname = "";

كما تلاحظ، قمنا بتعريف أربعة متغيرات مختلفة هي:

$dbhost -- وتقوم بتخزين عنوان مزيد قاعدة البيانات.

$dbuser -- وتقوم بتخزين اسم المستخدم الذي سيستخدم للدخول إلى قاعدة البيانات.

$dbpass -- وتقوم بخزين كلمة المرور التي ستستخدم مع اسم المستخدم للدخول إلى قاعدة البيانات.

$dbname -- تخزن اسم قاعدة البيانات التي ستحوي الجدول guestbook.



يمكن للمستخدم الآن تعديل معلومات هذه المتغيرة عن طريق فتح الملف في المفكرة مثلا وتعديل القيم الموجودة بين علامات الاقتباس مقابل أسماء المتغيرات.

بعد تعريف المتغيرات السابقة، سنقوم كما اتفقنا بوضع الشفرة اللازمة للاتصال بقاعدة البيانات، وهي عبارة عن استدعاء لدالتين:

/* connect to the MySQL server */
mysql_connect($dbhost,$dbuser,$dbpass);
/* set $dbname as the database to be used */
mysql_select_db($dbname);



* شرح الدوال

mysql_connect(hostname, username, password)

تقوم الدالة السابقة بالاتصال بمزود قاعدة البيانات الموجود على العنوان hostname، وتحاول الدخول إلى المزود قاعدة البيانات عن طريق إرسال اسم المستخدم username و كلمة المرور password، في حال نجاح العملية تعيد موردا ( resource ) نستطيع استخدامه مع دوال أخرى لتنفيذ أوامر قاعدة البيانات على هذا الإتصال المفتوح (يمكن فتح أكثر من اتصال بأكثر من قاعدة بيانات في نفس الوقت).



جميع المتغيرات المررة إلى الدالة اختبارية، إذا لم تدخل password فإن الدالة ستحاول إجراء الاتصال دون تمرير كلمة مرور، وإذا لم تدخل username فستحاول الدالة إجراء الاتصال دون اسم مستخدم، وإذا لم تحدد hostname فإن الدالة ستحاول الإتصال بقاعدة البيانات على العنوان المحلي ( locahost ).

إذا كنت قد ركبت MySQL مباشرة دون تغيير الإعدادات فإن مزود قواعد البيانات سيسمح مباشرة بالإتصال من الجهاز المحلي باسم المستخدم root والذي لن تكون له كلمة مرور افتراضية، وبالتالي يمكنك الاتصال مباشرة إلى مزود MySQL المحلي عن طريق القيم الموضحة في المتغيرات التي في الأعلى.

mysql_select_db(database_name, link_identifier)

تقوم هذه الدالة بتحديد قاعدة البيانات التي سيتم العمل عليها، حيث أن مزود قاعدة البيانات يمكن أن يحتوي على أكثر من قاعدة بيانات واحدة.

تحدد اسم قاعدة البيانات عن طريق المتغيرة database_name، أما المتغيرة الثانية فهو الإتصال الذي تريد أن تحدد قاعدة البيانات له، فإذا كنت قد خزنت القيمة التي أعادتها الدالة mysql_connect في متغيرة، وأرت الآن تعيين قاعدة البيانات الذي يجب استخدامها في ذلك الاتصال، فيمكنك تمرير المتغيرة إلى الدالة mysql_select_db في الوسيطة الثانية، ولكن هذه الوسيطة الثانية اختيارية، فإذا لم تقم بتمريرها فإن الدالة ستعيد قاعدة البيانات التي يجب العمل عليها لآخر اتصال تم فتحه بقاعدة البيانات، وإذا لم يكن هنالك اتصال مفتوح من قبل ستحاول الدالة فتح إتصال بقاعدة البيانات كما لو كنت قد شغلت mysql_connect() بدون تحديد الـ hostname و الـ username والـ password وثم تعيين قاعدة البيانات التي يجب العمل عليها لهذا الاتصال الجديد.



في ملفنا المثال قمنا بتنفيذ هذه الدالة مباشرة بعد فتح اتصال بقاعدة البيانات باستخدام الدالة mysql_connect, وبالتالي عيننا قاعدة البيانات $dbname كقاعدة البيانات التي يجب استخدامها مع آخر اتصال فتح بقاعدة البيانات.

هذه الدالة تغير true ( صح ) في حالة تجاحها و false ( خطأ ) في حالة فشلها.

يمكننا الآن النظر إلى نسخة نهائية كاملة من الملف config.php :

<?php
/* store the hostname of the MySQL server */
$dbhost = "localhost";
/* store the username to login to MySQL */
$dbuser = "root";
/* store the password to login to MySQL */
$dbpass = "";
/* store the name of the MySQL database */
$dbname = "";
/* connect to the MySQL server */
mysql_connect($dbhost,$dbuser,$dbpass);
/* set $dbname as the database to be used */
mysql_select_db($dbname);
?>



* الملف view.php:

في البداية المقدمات العادية ورأس المستند بلغة HTML:

<html dir="rtl">
<head>
<title>سجل الزوار</title>
<style>
body,td,input,select,textarea {
font-family: Tahoma;
font-size: x-small;
}
h1,h2,h3,h4,h5,h6 {
font-family: Arial;
}
</style>
</head>
<body>
<h1>سجل الزوار</h1>

بعد أن تتم طباعة رأس المستند بلغة HTML نأتي إلى الجزء التالي وهو جلب البيانات من قاعدة البيانات وعرضها للمستخدم.

في البداية نحتاج إلى اتصال بقاعدة البيانات، وكما قلنا من قبل، الملف config.php يحتوي على الشفرة الكاملة لتجهيز اتصال بقاعدة البيانات، ما علينا القيوم به الآن هو إعطاء أمر بتنفيذ البيانات الموجودة في الملف config.php، وهذا الأمر هو include، كالتالي:

/* get a database connection */
include 'config.php';

النتيجة التي يعطيها الأمر include السابق هي نفسها النتيجة التي كنا سنحصل عليها لو كنا وضعنا الشفرة الموجودة في الملف view.php مباشرة، بمعنى أننا بدلا من أن ننسخ شفرة قاعدة البيانات الموجودة في الملف config.php يدويا ونضعها في أعلى الملف view.php للحصول على وصول إلى قواعد البيانات، فإننا نطلب من مترجم PHP أن يقوم بالعملية آليا، حيث نطلب منه تنفيذ الشفرة الموجودة في الملف config.php كما لو كانت جزءا من الملف الذي استدعى الأمر ( view.php ).



* الأمر include:

يستخدم الأمر include كالتالي :

include filename;

أي الكلمة include وبعدها اسم الملف الذي نريد إدراجه، وفي مثالنا كان الملف هو config.php.



* طلب البيانات من قاعدة البيانات

المفترض الآن بأن جميع الإضافات التي تمت إلى سجل الزوار مخزنة في الجدول guestbook في قاعدة البيانات، وأن لدينا اتصالا الآن بقاعدة البيانات من خلال الملف config.php، نستطيع البدأ بعمل استعلام لقاعدة البيانات نطلب فيه البيانات التي نريدها، ويكون ذلك بالشفرة التالية:

$res = mysql_query( "SELECT
name,email,homepage,
UNIX_TIMESTAMP(date) AS date,
message
FROM guestbook
ORDER BY date DESC" );



الدالة mysql_query:

mysql_query(query,link_identifier);

تقوم الدالة بإرسال الإستعلام (query) إلى قاعدة البيانات عبر الإتصال الذي يمرر إليها (link_identifier)، وإذا لم يكن هنالك اتصال ممرر، فإن الدالة تستخدم آخر اتصال فتح بقاعدة البيانات، وإذا لم يكن هنالك اتصال قد فتح من قبل ستحاول الدالة إجراء اتصال بقاعدة البيانات عن طريق تنفيذ الدالة mysql_connect وتمرر إليها قيم hostname و username و password فارغة.



في مثالنا السابق، قمنا بتمرير قيمة واحدة فقط إلى الدالة هي الاستعلام الطويل المحاط بعلامتي الاقتباس " و "، وستقوم الدالة باستخدام آخر اتصال فتح بقاعدة البيانات وهو الاتصال الذي فتح في الملف config.php الذي أدرجناه من قبل في ملفنا (view.php).



نأتي الآن إلى الإستعلام، وهو عبارة عن استعلام بسيط من النوع SELECT كتب بلغة SQL . وسأقدم شرحا سريعا هنا،

SELECT:

يعني اختيار أو جلب.



name,email,homepage,UNIX_TIMESTAMP(date) AS date,message

هذه هي أسماء الحقول التي طلبناها (جلبناها) من الجدول، وهي عبارة عن قائمة بسيطة من أسماء الحقول، ما عدى التالي:



UNIX_TIMESTAMP(date) AS date

تقوم الدالة UNIX_TIMESTAMP بإعادة التاريخ المخزن في قاعدة البيانات في صورة TIMESTAMP الخاص بنظام unix، وهو عبارة عن نظام للتاريخ يحسب عدد الثواني منذ منتصف الليل في 1/1/1970، وبالتالي فإن هذه القيمة تتغير في كل ثانية، تعتبر الـ Timestamp الوحدة القياسية لتخزين المعلومات عن التاريخ والوقت في PHP وأغلب لغات برمجة ونظم Unix، وبالتالي فإننا طلبنا من قاعدة البيانات أن تحول لنا قيمة التاريخ ( date ) إلى الـ Timestamp المقابل حتى يسهل التعامل معها في PHP وعرضها بالطريقة التي نريدها ..



بعد ذلك أضفنا المقطع AS date، هذا المقطع يعني بأن الحقل هذا يجب أن يسمى بالاسم date، السبب في إضافتنا لهذا المقطع هي أن الحقول تسمى عادة بأسماء التعبيرات التي تتكون منها، فهذا الحقل مثلا:

UNIX_TIMESTAMP(date)

سيكون اسمه هو :

UNIX_TIMESTAMP(date)

وهذا سيجعل التعامل معه في PHP صعبا نوعا ما، لذا قلنا لقاعدة البيانات أن تسمى البيانات هذه بالاسم date بدلا من الاسم السابق.



بعد الانتهاء من قائمة الحقول نجد المقطع التالي:

FROM guestbook









FROM

الكلمة FROM تعني (من) ونحدد بعدها اسم الجدول الذي نريد طلب (جلب) البيانات منه، وهو guestbook في مثالنا السابق.



ORDER BY date DESC

المقطع السابق يحدد الطريقة التي ترتب بها البيانات ..

ORDER BY

تعني (ترتيب حسب) وهي تحدد الحقل الذي نريد ترتيب تبعا له، وفي مثال الحقل date، أي أننا نريد ترتيب المدخلات حسب تاريخ إضافتها، ولكن استخدام ORDER BY وبعده اسم الحقل يعني فرز البيانات حسب ذلك الحقل تصاعديا، أي من الأقل إلى الأكبر، ولكننا في الواقع نريد فرزها في برنامجنا تنازليا (من الأحدث أو الأعلى تاريخا إلى الأقدم) ولهذا السبب أضفنا المقطع DESC وهو اختصار لكلمة descending أي تنازليا.

 



من مواضيع سارق القلوب 0 ACDSee 7
0 القرارات التي ستؤخذ ضد(النصــر)والله المستعان..
0 و اخيرا برنامج logprotect v1.1 لحماية الأطفال من مخاطر الأنترنيت
0 عشرات البرامج الكاملة للتحميل
0 تصميم روعة للاحلى كلتوم
0 إلحق حمل برنامج Bit Torrent !! لا يفوتك
0 Norton antivirus 2004
0 حصريا winamp5112_full
0 شرح إنشاء قاعدة بيانات
0 حرب البسوس
0 إستايل إسلامي لمكتبة الصور
0 !!!!! ياليل ويش الحل في ضيقت البـال !!!!!!
0 برنامج Symantec Norton GoBack 4.0 نسخة كاملة
0 Yahoo! Messenger v6.0
0 برنامج لرفع الترتيب في alexa حصري

توقيع سارق القلوب

[ فقط المشتركين فى المنتدى يمكنهم رؤية الرابط . اضعط هنا للتسجيل ... ]

-
أبــدع فـي مــواضيـعــك , وأحســن فـي ردودك , وقــدم كــل مــا لــديــك , ولا يغــرك فهمــك
ولا يهينــك جهــلك , ولا تنتظــر شكــر أحـــد , بــل اشكــر الله على هذه النعمــة
ولله الحمــد والشكــر
-

المسؤولين على المنتدى يحاولون بقدر المستطاع الرد على الجميع والمساعده وتذكر بان هناك غيرك من الاعضاء وعدم ردنا على موضوعك ليس تجاهل
انسحابك او بقاءك لن يؤثر على احد فكن سند نفسك دائما
لاتقدم المساعدة خارج المنتدى دع الجميع يتعلم انك كنت تعتبر نفسك ناجحاً
المنتدى للجميع فتصرف كصاحب المنتدى وليس كضيف ثقيل
لاتقدم المساعدة وانت تنتظر مقابل لذلك ، الدعاء الصادق يغنيك
المسؤولين على المنتدى لا يستخدمون الرسائل الخاصه لانها ليست الحل المناسب لوجود مشكله يمكنك طرحها بالمنتدى ليستفيد غيرك
عدد مواضيعك ومشاركاتك ليس هو الدليل على نجاحك بل مواضيعك المتميزة واخلاقك الرفيعه
قبل ان تعمل اي شيء تذكر ان الله عز وجل يراك


سارق القلوب غير متواجد حالياً  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
رد مع اقتباس
قديم 11-10-1427, 06:57 مساء   #2 (permalink)
شـاعر الاحزان
::قـلـب سـاحـر::
 
الصورة الرمزية شـاعر الاحزان
 
تاريخ التسجيل: Sep 2006
الدولة: بلاد الاحزان
المشاركات: 742
مشاركات اليوم : لايوجد
المواضيع: 48
الـردود: 694
شـاعر الاحزان is on a distinguished road

شكرا على الشرح الوافي

 

شـاعر الاحزان غير متواجد حالياً  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
رد مع اقتباس
قديم 3-1-1429, 03:14 مساء   #3 (permalink)
ابراهيم محمد سليمان
::قـلـب فـعـال::
 
تاريخ التسجيل: Jan 2008
المشاركات: 147
مشاركات اليوم : لايوجد
المواضيع: 0
الـردود: 147
ابراهيم محمد سليمان is on a distinguished road

شكراااااااااااعلى حسن الشرح

 

ابراهيم محمد سليمان غير متواجد حالياً  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
رد مع اقتباس
رد


الدرس الثاني والعشرون : إنشاء سجل الزوار

أدوات الموضوع
طرق مشاهدة الموضوع

تعليمات المشاركة
لا تستطيع كتابة مواضيع
لا تستطيع كتابة ردود
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

كود [IMG] متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are معطلة
Refbacks are متاحة


يمكنك تحميل صورك وملفاتك من هنا
 

ادارة الموقع غير مسؤله عن المواضيع المنشوره ولاتمثل رأيها وانما تمثل رأي الكاتب

شات | دردشة | دردشه | شات صوتي | دردشة صوتية | منتديات | المنتدى | منتدى | عالم حواء | المصارعه الحره | صور | رفع صور | الثقافة الطبية - الزوجية  | الستلايت و الفضائيات و القنوات و الترددات | رسائل جوال | الطرب والفن | تحميل افلام عربية - افلام اجنبية - سينما | صور x صور | الكمبيوتر و الانترنت الحاسب و الاجهزة computer hardware  | سينما وعالم الافلام | اخبار الرياضة | الاناقة والموضة | كلام نواعم | بالهناء والعافية المطبخ الاكل الطبخ اكلات و اطعمة ماكولات منوعة food | العاب - مسابقات كرتونيه | المشاهد المضحكه والغريبه | عالم الحياة الزوجية | جرائم - احداث عجائب غرائب قضايا | افلام انمي - كرتون اغاني anime | صور انمي صور كرتون Anime cartoon | افلام | هكرز

    Arabic Chat - دردشة عمري | 3omre Chat بنت السعودية شات  دردشه  شات الشلة شات الغلا   شات القلوب دردشة سعودية  قلوب شات قلوب شات مغربي دردشة المغرب شات المغرب  شات كويت25 - دردشة كويت 25 افضل مائة شات عربي دردشه سعوديه شات عالم الرومنسيه دردشة الحب شات مزنه chat يوتيوب فيديو


الساعة الآن: 08:19 صباحاً


Powered by vBulletin® Version 3.6.4, Copyright ©2000 - 2008, Dr By sareq

SEO by vBSEO 3.0.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103