السلام عليكم ..
حياكم الله يا شباب .. و نقول صباح الخير لمن عنده صباح و مساء الخير لمن عنده مساء .. و صباح الليل للي توه قايم من النوم..
خمسة أيام إنقضت عن الدرس السابق و الذي كان ولله الحمد خفيف على المعدة.. حيث إحتوى على كود مفيد و يحتاجه الكثيرين و مكون من أسطر قليلة
..
لكن درسنا اليوم درس ثقيل .. و يحتاج علبة مشروب غازي للتهضيم..
و يأتي هذا الدرس بناء على طلب أحد الإخوة حيث أراد معرفة كيفية وضع كود تبليغ في السكربتات التي ينتجها ..
و هنا إن شاءالله سأشرح طريقتين بسيطتين لعمل ذلك..
و لعل البعض قد ينزعج و يقول أني أساعد على عمل برامج ملغمة هههههههههه .. لكن أنا على قناعة أن كل مبرمج سكربت له الحرية في معرفة مستخدمي برنامجه و ليس هذا مجال للنقاش فهيا بنا إلى الشرح..
غالباً يتم وضع كود التبليغ في ملف تركيب السكربت install.php مثلاً ..
و بالطبع بهذا الملف يتم زراعة قاعدة البيانات على الغالب و من ثم بعد تركيب القاعدة يتم عمل كود التبليغ ..
لذا فالسكربتات التي تحتاج لزراعة القاعدة يدوياً غالباً لا يكون فيها كود تبليغ ..
و التبليغ غالباً يكون عن رابط الموقع الذي قام بتركيب السكربت .. و يتم ذلك عن طريق الإستعلام بمتغيرات و غالباً تستخدم المتغيرات التالية :
- $HTTP_REFERER و هو يقوم بجلب الصفحة الأخيرة التي فتحت بالمتصفح قبل تنفيذ الكود ..
- $HTTP_HOST و هو يقوم بجلب رابط الموقع ..
- $PHP_SELF يقوم بجلب رابط الملف ..
كما أنه بعض المبرمجين يضع في ملف الكونفج متغير $SITEURL مثلاً لكي يتم وضع رابط الموقع من قبل المستخدم و من ثم عند التبليغ يتم إرسال ما كتبه المستخدم في هذا المتغير ..
و لعمل كود تبليغ في السكربت الخاص بك هناك طريقتين حسب علمي و قد تكون هناك طرق كثيرة أفضل أجهلها حالياً ..
# الطريقة الأولى /
التبليغ عن طريق البريد الإلكتروني و هي من أسهل الطرق و تعتمد على أمر إرسال بريد إلكتروني بلغة php و هي :
و طبعاً كما تلاحظون هناك خانة لكتابة البريد الإلكتروني الذي ترسل الرسالة له و كذلك موضوع الرسالة و محتوى الرسالة ..كود PHP:mail("email@domain.ltd","subject","message");
طبعاً في هذه الطريقة يتم إستبدال البريد الإلكتروني السابق ببريد المبرمج و قد لا يهم كتابة موضوع للرسالة حتى لا يكون لافت للإنتباه.. يمكن وضع رمز - أو . ..
و طبعاً يتم وضع أحد المتغيرات المذكورة سابقاً بدلاً من message ..
مثال :
و طبعاً يوضع الأمر غالباً كما ذكرنا سابقاً في ملف التركيب بعد أمر زراعة قاعدة البيانات مثلاً ..كود PHP:mail("reda1@flashmail.com","---","$HTTP_REFERER");
# الطريقة الثانية /
طريقة ربما فيها قليل من الصعوبة لكنها عملية و مفيدة ..
هي تعتمد على وضع كود بسيط في ملف تركيب السكربت يقوم بفتح سكربت في موقع المبرمج طبعاً مع إرسال المعلومات المطلوبة و يتم تخزين رابط الموقع مثلاً في قاعدة بيانات السكربت الموضوع في موقع المبرمج..
و فكرتها كالتالي :
السكربت الذي يوضع في موقع المبرمج و ستحتاج لعمل قاعدة بيانات مثل هذه :
حسب السابق أسمينا الجدول code و هو يحتوي على حقل للرقم التسلسلي id و حقل لحفظ رابط المواقع التي قامت بتركيب السكربت و هو حقل url .. يمكن مستقبلاً و حسب إحتراف المبرمج إضافة حقول أخرى تاريخ التركيب مثلاً لن أتطرق لها بهذا الدرس لعدم أهميتها !! ..كود PHP:CREATE TABLE `code` (
`id` int(10) unsigned NOT NULL auto_increment,
`url` varchar(255) NOT NULL default '',
PRIMARY KEY (`id`),
KEY `id` (`id`)
) TYPE=MyISAM;
طبعاً سنحتاج بعد هذا للسكربت الذي يقوم المبرمج بوضعه بموقعه و فيه يتم تخزين رابط موقع المستخدم بقاعدة البيانات و هو كالتالي و لنفترض أن إسمه site.php :
طبعاً كما هو ملاحظ قمنا بالسطور الأربعة الأولى بوضع كود التعرف على قاعدة بيانات ثم بالسطرين التي تلتها كود لعمل إتصال بقاعدة البيانات و في السطر السابع وضعنا شرط متعلق بأن لا تعمل الأوامر التي بداخله إلا إذا كان الرابط على الشكل site.php?url=http://www.domain.ltd مثلاً ..كود PHP:<?php
$dbserver="localhost";
$dbusername="";
$dbpassword="";
$dbname="code";
mysql_connect($dbserver,$dbusername,$dbpassword);
mysql_select_db($dbname);
if(isset($url)){
mysql_query("INSERT INTO code (url)VALUES('$url')");
}
?>
و الأمر الذي بداخله هو أمر إدراج في قاعدة البيانات قيمة المتغير url و الذي سيكون رابط موقع المستخدم ..
بقي علينا كتابة الكود الذي نضعه في ملف التركيب install.php ..
طبعاً كما ذكرنا يوضع هذا الكود بعد أمر زراعة قاعدة البيانات في ملف التركيب و نلاحظ فيه أمر فتح رابط و هو رابط السكربت الذي قمنا بعمله قبل قليل و الذي نضعه بموقع المبرمج و نلاحظ أن المتغير url سيحمل فيه قيمة هي عبارة عن رابط الموقع + رابط الملف بعكس الطريقة السابقة وضعنا فيها الصفحة التي سبقت تنفيذ الكود .. و طبعاً عند فتح رابط صفحة بالشكل السابق سيكون تلقائياً رابط موقع المستخدم مسجلاً فيه و من ثم يتم تخزينه بقاعدة البيانات ..كود PHP:@fopen("http://localhost/code/site.php?url=http://"."$HTTP_HOST"."$PHP_SELF","r");
# كيف سنعرف المواقع التي تم حفظ رابطها ؟!!
إما بفتح القاعدة و قراءة محتوياتها المخزنة أو عمل سكربت يستعرض الروابط المخزنة بالقاعدة و هو كالتالي :
طبعاً هذا السكربت نفسه نفس السابق site.php لكن أضفنا عليه شرط و هو site فإذا كتب في المتصفح تم عرض الروابط المخزنة بقاعدة البيانات ..كود PHP:<?php
$dbserver="localhost";
$dbusername="";
$dbpassword="";
$dbname="code";
mysql_connect($dbserver,$dbusername,$dbpassword);
mysql_select_db($dbname);
if(isset($url)){
mysql_query("INSERT INTO code (url)VALUES('$url')");
}
if(isset($site)){
$query=mysql_query("SELECT url FROM code ORDER BY id DESC");
while($result=mysql_fetch_array($query)){
echo "$result[url]"."<br>";
}
}
?>
و يمكن عرضه عن طريق الرابط :
site.php?site=show مثلاً ..
أتمنى يكون الشرح واضح و أعذروني على سطحية الشرح و عدم المنهجية في ذلك..
و كما يقال في المثال يتضح المقال فأنا مرفق مع هذا الموضوع ملفات العمل لكود التبليغ إن شاءالله تنتفعون به ..
و صلى الله و سلم على سيدنا محمد ..


..


