الثلاثاء، 14 شتنبر 2010

إنشاء قاعدة البيانات الخاصة بدليل الموقع

سوف نبدأ بأخذ فكرة عن البرنامج الذي سوف أشرح عنه وهو عبارة عن دليل مواقع بسيط جداً جداً يعتمد علي قواعد البيانات.
بالطبع لا يوجد فيه تقسيمات والسبب لأننا سوف نضطر إلي وضع أو خلق أكثر من جدول (Table) في قواعد البيانات وسوف نضطر إلي وضع علاقات بينهم 
وهذا حالياً يعقد الموضوع  فسأكتفي  الآن بجدول واحد (one table) وسوف اشرح إذا اتسع لدي الوقت الكثير عن (sql) عامة وعن العلاقات (Relationstips) لأنها مثيرة أيضاً جداً

نبدأ  في الخطوة الأولى وهي قاعدة البيانات الخاصة بدليل الموقع الذي لدينا , فالبيانات والمعلومات التي غالباً ما يهتم بها دليل الموقع هي عنوان الموقع واسم الموقع والبريد الخاص بالموقع

هذا هو الكود الخاص بإنشاء قاعدة البيانات الخاصة بدليل الموقع
CREATE TABLE dalal (
 id int not null auto_increment,
sitename varchar(100),
add_date date,
email varchar(100),
site_url varchar(100),
description text
primary key (id));
هنا سوف يخزن في قواعد البيانات المعلومات التالية :
id  وهي المرشح الأساسي والفريد الذي يتُعرف علي الجدول بواسطته .
sitename  وهي اسم الموقع وهي من نوع  char
add_date  تاريخ إضافة الموقع وهو من نوع  date
email  البريد الإلكتروني وهو من نوع  char  وطولها نفس طول اسم الموقع (100)
site_url  وهو عنوان الموقع أيضاً من نوع char

سوف اكتفي بشرح id  لأنه ربما يكون جديد علي البعض وسوف اشرح عمله وليس المهم أن تفهم علمه في هذه الخطوة إنما سوف تفهمها بالتفصيل في الخطوات القادمة بعد قليل إن شاء الله
id  هو عبارة عن المرشح الأساسي لهذا الجدول (primary key)

ما هي قواعد البيانات - Base donnée

 ما هي قواعد البيانات

دعنا نأخذ فكرة عن طرف التخزين في البداية وكيف كانت على الإنترنت في السابق ....
كان من أكثر طرق التخزين انتشارا في السابق على الإنترنت وربما هو لا يزال يستخدم في بعض المواقع والمنتديات يعتمد على الملفات ....فكان صاحب الموقع الذي لديه هذه الطريقة في تخزين البيانات خوف وتعب من فقدانها مثلاً وكان الشبح الذي يكدر عليه صفوة نجاح موقعه هو عمل نسخ احتياطية لهذه الملفات لكي يتمكن من استرجعها في حال فقدانها فكانت هذه العملية تأخذ وقت وجهد  ومال ....كما كان من عيوب تخزين البيانات في الجداول ضغط الخادم أو (
server) في حال الاستعلام عن معلومة معينة والبحث عنها كما أنه يستهلك الكثير من ذاكرة هذا الخادم في عملية بحث معينة فهو يحجز مساحة ليست بالهينة في عملية بحث عن أسم مثالاً أو ما شابهها .

ربما يتردد عند البعض ذالك السؤال وهو ....ما هي قواعد البيانات بالضبط ؟

قواعد البيانات ببساطة جمع المعطيات أو المدخلات .
كل قاعدة بيانات ربما تتكون من جدول (
Table) واحد أو عدة جداول هذه الجداول تحتوي علي أعمدة وصفوف تهيكل البيانات وترتبها ,,,,,وسوف أجعل لك مهمة اكتشاف فوائد قواعد البيانات في آخر الدرس .
لترى الجدول الذي بالأسفل كمثال :

#Table "Coustomers"
Id
Fname
Lname
025
عبدالواهب
صالح
044
محمد
خالد

الثلاثاء، 7 شتنبر 2010

التعامل مع الملفات والمجلدات - (Gestion des dossiers , fichiers en PHP )

التعامل مع الملفات والمجلدات
كل مبرمج يجب أن يتعامل مع الملفات والمجلدات في بعض النقاط ، برنامجك سوف يستخدم الملفات لكي يقوم بتخزين معلومات الإعداد للسكربت ، أو يقوم بتخزين البيانات لقراءتها وكتابتها ، أو لكي يقوم بحفظ البيانات المؤقتة ، وكمثال فإن أتفه برنامج عداد يحتاج إلي ملف يقوم بتخزين آخر رقم تم الوصول إليه ..

الملف : ليس عبارة عن أكثر من بايتات متسلسلة يتم تخزينها على القرص الصلب أو أي ماده تخزينية أخرى .
والمجلد : هو عبارة عن نوع محدد من الملفات يحتفظ بأسماء ملفات أخري  ومجلدات أخري ( تسمي بالمجلدات الفرعية ) ، كل ما تحتاجه لتتعامل مع الملفات والمجلدات هو كيف يمكنك ربط سكربتك بهم ..

هذا الدرس سيأخذك إلي جولة لتعلم التعامل مع الملفات والمجلدات وفي نفس الوقت يوفر لك مرجعية لبعض الدوال التي تساعدك في ذلك مما يجعل مهمتك أسهل ...

سيقوم هذا الدرس بتغطيه المواضيع التالية :

1      فتح وإغلاق الملف .
2      القراءة من الملف والكتابة إليه .
3      مسح وإعادة تسمية الملفات
4      استعراض وتجول في الملف .
5      فتح وإغلاق المجلدات .
6      نسح وإعادة تسميه المجلدات .

ملاحظة :
قبل أن نبدأ دعنا ننبهك أن التعامل مع الملفات يختلف من نظام تشغيل إلي آخر ففي أنظمة اليونكس تستخدم المسارات العلامة المائلة للأمام
مثال
/home/usr/bin/data.txt
بينما في الويندوز فإن المسار يكون كالتالى
C:\usr\bin\perl
وإذا استخدمنا العلامة الأمامية في PHP للويندوز فإنه يقوم بتحويلها بشكل تلقائي إلي علامة خلفية بينما إذا أردنا استخدام العلامة الأمامية فإننا يجب أن نقوم بتكرار العلامة لكي يتم التعرف عليها
C:\\windows\\PHP

التحكم في المواقع عن طريق الـ Session (session in PHP)

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

- مقدمة عن الـ
Session :
عند الانتقال من صفحة الى أخرى في موقع معين فإن بروتوكول الـ
HTTP لا يمكنه معرفة أن تلك الصفحات قد تم تصفحها من قبل نفس الشخص ، ولكن مع الـ cookies وما نحن بصدده هنا الـ Session تقدم تلك الطريقة ، ولذلك وببساطة فإن الـ Session هي مكان على جهاز المتصفح يمكن من خلاله تخزين قيمة معينة للرجوع اليها في حال قام نفس الشخص بالانتقال من صفحة الى أخرى ، ولعل هذا التعريف يصف ببساطة معناها العام ولا يعني ذلك أنه تعريف شامل لكل المعاني ..

إذاً التعرف على الشخص الذي يقوم بتصفح الموقع هو الهدف الرئيسي للـ
Session أو الجلسـات ، ولكن كيف يتم ذلك ، وما هي النقاط الرئيسية التي يجب معرفتها لفهم طريقة التعامل مع الـ Session ؟

أول تلك النقاط أن عملية تسجيل المتغير على جهاز المستخدم له مدة معينة تنتهي بانتهاء الجلسة ، ومن هنا جاءت التسمية ، أما ما تعنيه الجلسة فهي مصطلح لقيامك بالتصفح من الموقع ومن ثم اغلاق الموقع ، ببساطة كل مرة تقوم بزيارة الموقع تبدأ جلسة أو
Session جديدة ، مع ملاحظة أن هناك طرق للتحكم بوقت الانتهاء كما في الـ cookies ، بالاضافة الى طرق اخرى عن طريق قواعد البيانات وهو حديث سابق لاوانه .

بداية كتابة البرامج بلغة البي اتش بي (Star writing Code With PHP)

بسم الله الرحمن الرحيم والصلاة والسلام على اشرف الانبياء والمرسلين ، بعد المقدمات السابقة والهامة في معرفة اساسيات اللغة يمكننا بداية كتابة البرامج بلغة البي اتش بي ، وبطبيعة الحال سنبدأ من اصغر الاساسيات واهمها في كتابة البرامج عموماً وهي المتغيرات .

المتغيرات في لغة الـ
PHP تبدأ بعلامة الدولار ( $ ) ، ولاسناد قيمة لذلك المتغير نستخدم علامة المساواة ( = ) ، فرضا لدينا المتغير ( Name ) والقيمة ( Khaled ) فنكتب ما يلي :
<?
$Name 
"Khaled";
?>
هذا في حالة المتغيرات النصية ( Text ) ، وفي حالة المتغيرات الرقمية ( Numbers ) يمكن تعريف متغير ( Counter ) الذي يحمل القيمة ( 17 ) كالتالي :
<?
$Counter 
17;
?>
الفرق الواضح في طريقة تعريف المتغيرين النصي والرقمي هو عدم وجود علامات التنصيص في تعريف المتغيرات الرقمية بينما يجب وضع علامات التنصيص في تعريف المتغيرات النصية .

نقاط هامة في تسمية المتغيرات :
- اسماء المتغيرات في كثير من لغات البرمجة لا تتعدى 255 حرف ( المقصود بها الخانات سواء كانت حروف أو ارقـام أو علامات اخرى ) ، و في لغة الـ
PHP لا يوجد حدود على عدد الخانات في تسمية المتغيرات ، ولكن في الغالب لن تحتاج الى اكثر من 15 خانة لتسمية أي متغير ، لان المبالغة في تسمية المتغيرات تسبب مشاكل في تذكر المتغيرات وما تحتوية من قيم .

PHP الدوال في ( PHP Function )

                                              الدوال ( Function )  
 
يوجد في
PHP العديد من الدوال التي تقوم بوظيفة معينة ( محددة ) كذلك توجد إمكانية إنشاء دوال تؤدي وظيفة خاصة وحديثنا هنا عن هذا النوع من الدوال ( كيفية إنشاء دوال )
الدالة تقوم بتنفيذ شئ معين حيث تأخذ ( متغيرات – معطيات ) ثم تقوم بمعالجة هذه المتغيرات وتخرج قيمة أخرى .

- الشكل العام – التركيب :
Function( المعطيات – المتغيرات – البارامتر ) اسم الدالة
{
هنا يتم كتابة الكود
Return  ( المعطيات – المتغيرات – البارامتر ) ;
}

- تعريف الدالة :
لكي نقوم بتعريف دالة نكتب كلمة
function بعدها اسم الدالة وبعد الاسم نكتب المعطيات – المتغيرات بين قوسين .

مثال :
<?
Function aa($s)  
?>
حيث aa هو اسم الدالة ، وبالتأكيد يمكن أن يكون أي اسم .
(
s$) هو ( المتغر – المعطى – البارامتر ) ، أي اسم من هذه كما تحب أن تسميه .
مع ملاحظة عدم وضع فاصلة منقوطة بعد هذا السطر .

بعد ذلك نقوم بكتابة كود الدالة ( عمل الدالة ) بين العلامتين { } ، كما يجب أن ننهي الدالة بكلمة
return لإعلام الدالة بأن وظيفتها قد انتهت بالاضافة الى ذكر اسم المتغير المذكور في تعريف الدالة سابقا ..

الأحد، 5 شتنبر 2010

PHP التاريخ باللغة العربي في (Arabic Date in PHP)


                                التاريخ باللغة العربي   في البي اتش بي
 

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

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

دالة التاريخ في البي اتش بي هي
Date ، ولها معاملين ( أي قيمتين لاعداد مخرجات الدالة ) ، احد المعاملين اجباري والثاني اختياري ، اما الاول وهو الاهم تعتمد عليه مخرجات التاريخ بشكل اساسي مثل ضبط السنة بخانتين أو ضبط الشهر باسم الشهر .. وغيرها ، اما المعامل الثاني فهو ما يسمى بـ ( UNIX time stamp) وهو خاص بنظام اليونكس وكيفية تخزين التاريخ فيه ، عموماً ما يهمنا هنا هو المعامل الأول وهو ما يسمى بـ ( Format String ) ، وكمثال على ما ذكرنا :
<?
$today 
date(Y-m-d);
echo 
$today;
?>
هذا المثال سيقوم بطباعة تاريخ اليوم على الشكل التالي 2002-03-13 ، ولاهمية الرموز التي يمكن استخدامها مع الـ Date ساذكر اهمها :

MySQL دوال ( MySQl function)

 دوال  MySQL

لاهمية موضوع قواعد البيانات ، سوف نقوم في هذه الدورة بتغطية دوال قواعد البيانات وهي اثنتان وثلاثون دالة فإلى الدرس الأول :


1- الدالة mysql_connect :
integer mysql_connect(string host, string username,
string password);
تقوم هذه الدالة بالاتصال مع قاعدة البيانات وتعيد لك رقم يفيدك اذا كان لديك أكثر من اتصال بقواعد البيانات ، احتفظ به لاستخدامه في دوال أخرى تالية اذا كان هناك حاجة لذلك كما قلنا ، اما الوضع الطبيعي فلا يحتاج الا الى الاتصال بالطريقة السابقة فقط وبدون الاحتفاظ بأي رقم ، فقط مرر للدالة اسم الخادم واسم المستخدم وكلمة المرور ، ولكن يتوجب عليك بعد الانتهاء أن تغلق الاتصال باستخدام الدالة mysql_close
مثال :
<?
$link 
mysql_connect("db.azzozhsn.f2s.com","mag","Pass");
?>

2- الدالة mysql_pconnect :
integer mysql_pconnect(string host, string username,
strin password);
هذه الدالة تقوم بما تقوم به الدلة السابقة إلا أنه لا يتوجب عليك إغلاق الاتصال ، مثال:
<?
$link 
mysql_pconnect("db.azzozhsn.f2s.com","mag","Pass");
?>

3- الدالة mysql_select_db :
boolean mysql_select_db(string database, integer link);
تقوم هذه الدالة باختيار قاعد البيانات المحدد لها. مثال:
<?
mysql_select_db
(string databaseinteger link);
?>


العمليات الرياضية (operation mathématique)


                                               العمليات الرياضية                                
                
هي نفسها العمليات التي درستها في المرحلة الابتدائية من ( جمع + ، طرح - ، ضرب * ، قسمة / ) والزائد عليهم التي لم تدرسه تقريبا هو باقي القسمة ( % ) ..

مثال شامل على كل العمليات في الـ
PHP :
<?
$a 
6;
$b=2;
$c$a +$b;
// سوف نحصل على ناتج الجمع 8

$c$a -$b;
// سوف نحصل على ناتج الطرح 4

$c$a $b;
// سوف نحصل على ناتج الضرب 12

$c$a /$b;
// سوف نحصل على ناتج القسمة 3

$a 7;
$b=2;
$c$a $b;
// سوف نحصل على باقي القسمة 1
?>

- عمليات Assignment :


=
احفظ القيمة في المتغير ، بمعنى خزن القيمة 3 في المتغير a$ :
<?
$a 
3;
print 
$a;
// يطبع 3
?>

=+
إضافة قيمة إلى قيمة في نفس المتغير :
<?
$a 
3;
$a += 3;
print 
$a;
// يطبع 6
?>


الدوال ( Function )


                                              الدوال ( Function )  
يوجد في
PHP العديد من الدوال التي تقوم بوظيفة معينة ( محددة ) كذلك توجد إمكانية إنشاء دوال تؤدي وظيفة خاصة وحديثنا هنا عن هذا النوع من الدوال ( كيفية إنشاء دوال )
الدالة تقوم بتنفيذ شئ معين حيث تأخذ ( متغيرات – معطيات ) ثم تقوم بمعالجة هذه المتغيرات وتخرج قيمة أخرى .

- الشكل العام – التركيب :
Function( المعطيات – المتغيرات – البارامتر ) اسم الدالة
{
هنا يتم كتابة الكود
Return  ( المعطيات – المتغيرات – البارامتر ) ;
}

- تعريف الدالة :
لكي نقوم بتعريف دالة نكتب كلمة
function بعدها اسم الدالة وبعد الاسم نكتب المعطيات – المتغيرات بين قوسين .