الرئيسية » برمجة PHP » شرح وضع كود للتبليغ بالسكربتات

شرح وضع كود للتبليغ بالسكربتات

درسنا اليوم درس من الوزن الثقيل .. و يحتاج تركيز

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

و هنا إن شاءالله سنشرح طريقتين بسيطتين للقيام بهذه المهمة.

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

غالباً يتم وضع كود التبليغ في ملف تركيب السكريبت install.php مثلاً ..
و بالطبع بهذا الملف يتم زراعة قاعدة البيانات على الغالب و من ثم بعد تركيب القاعدة يتم عمل كود التبليغ ..
لذا فالسكربتات التي تحتاج لزراعة القاعدة يدوياً غالباً لا يكون فيها كود تبليغ ..

و التبليغ غالباً يكون عن رابط الموقع الذي قام بتركيب السكربت عليه .. و يتم ذلك عن طريق الإستعلام بمتغيرات و غالباً تستخدم المتغيرات التالية :
– $HTTP_REFERER و هو يقوم بجلب الصفحة الأخيرة التي فتحت بالمتصفح قبل تنفيذ الكود ..
– $HTTP_HOST و هو يقوم بجلب رابط الموقع ..
– $PHP_SELF يقوم بجلب رابط الملف ..
كما أنه بعض المبرمجين يضع في ملف الكونفج متغير $SITEURL مثلاً لكي يتم وضع رابط الموقع من قبل المستخدم و من ثم عند التبليغ يتم إرسال ما كتبه المستخدم في هذا المتغير ..

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

# الطريقة الأولى /
التبليغ عن طريق البريد الإلكتروني و هي من أسهل الطرق و تعتمد على أمر إرسال بريد إلكتروني بلغة php و هي :

mail(“email@domain.ltd”,”subject”,”message”);

و طبعاً كما تلاحظون هناك خانة لكتابة البريد الإلكتروني الذي ترسل الرسالة له و كذلك موضوع الرسالة و محتوى الرسالة ..
طبعاً في هذه الطريقة يتم إستبدال البريد الإلكتروني السابق ببريد المبرمج و قد لا يهم كتابة موضوع للرسالة حتى لا يكون لافت للإنتباه .. يمكن وضع رمز – أو . ..
و طبعاً يتم وضع أحد المتغيرات المذكورة سابقاً بدلاً من message ..

مثال :

mail(“reda1@flashmail.com”,”—“,”$HTTP_REFERER”);

و طبعاً يوضع الأمر غالباً كما ذكرنا سابقاً في ملف التركيب بعد أمر زراعة قاعدة البيانات مثلاً ..

# الطريقة الثانية /
طريقة ربما فيها قليل من الصعوبة لكنها عملية و مفيدة ..
هي تعتمد على وضع كود بسيط في ملف تركيب السكربت يقوم بفتح سكربت في موقع المبرمج طبعاً مع إرسال المعلومات المطلوبة و يتم تخزين رابط الموقع مثلاً في قاعدة بيانات السكربت الموضوع في موقع المبرمج ..
و فكرتها كالتالي :
السكربت الذي يوضع في موقع المبرمج و ستحتاج لعمل قاعدة بيانات مثل هذه :

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;

حسب السابق أسمينا الجدول code و هو يحتوي على حقل للرقم التسلسلي id و حقل لحفظ رابط المواقع التي قامت بتركيب السكربت و هو حقل url .. يمكن مستقبلاً و حسب إحتراف المبرمج إضافة حقول أخرى تاريخ التركيب مثلاً لن أتطرق لها بهذا الدرس لعدم أهميتها !! ..

طبعاً سنحتاج بعد هذا للسكربت الذي يقوم المبرمج بوضعه بموقعه و فيه يتم تخزين رابط موقع المستخدم بقاعدة البيانات و هو كالتالي و لنفترض أن إسمه 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’)”);
}
?>

طبعاً كما هو ملاحظ قمنا بالسطور الأربعة الأولى بوضع كود التعرف على قاعدة بيانات ثم بالسطرين التي تلتها كود لعمل إتصال بقاعدة البيانات و في السطر السابع وضعنا شرط متعلق بأن لا تعمل الأوامر التي بداخله إلا إذا كان الرابط على الشكل site.php?url=http://www.domain.ltd مثلاً ..

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

بقي علينا كتابة الكود الذي نضعه في ملف التركيب install.php ..

@fopen(“http://localhost/code/site.php?url=http://”.”$HTTP_HOST”.”$PHP_SELF”,”r”);

طبعاً كما ذكرنا يوضع هذا الكود بعد أمر زراعة قاعدة البيانات في ملف التركيب و نلاحظ فيه أمر فتح رابط و هو رابط السكربت الذي قمنا بعمله قبل قليل و الذي نضعه بموقع المبرمج و نلاحظ أن المتغير url سيحمل فيه قيمة هي عبارة عن رابط الموقع + رابط الملف بعكس الطريقة السابقة وضعنا فيها الصفحة التي سبقت تنفيذ الكود .. و طبعاً عند فتح رابط صفحة بالشكل السابق سيكون تلقائياً رابط موقع المستخدم مسجلاً فيه و من ثم يتم تخزينه بقاعدة البيانات ..

# كيف سنعرف المواقع التي تم حفظ رابطها ؟!!
إما بفتح القاعدة و قراءة محتوياتها المخزنة أو عمل سكربت يستعرض الروابط المخزنة بالقاعدة و هو كالتالي :

<?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 فإذا كتب في المتصفح تم عرض الروابط المخزنة بقاعدة البيانات ..
و يمكن عرضه عن طريق الرابط :

مثلاً
site.php?site=show

انتهى بعون الله

اقرأ ايضاً!

x

‎قد يُعجبك أيضاً

كيفية برمجة منطقة خاصة لدخول الأعضاء

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