كلنا نعلم ان الphp لغة مفتوحة المصدر لدلك من الصعب على اي مطور سكريبتات الحفاظ على حقوقه
إلا: إذا ظهر كود التبليغ.
و في درسنا هنا سنتطرق إلى:
- آلية صنعها.
- آلية حذفها.
لعل البعض قد ينزعج و يقول أني أساعد على عمل برامج ملغمة
لا بالعكس فرأيي هو أن كل مبرمج.. له حق في معرفة مستخدميه..
حسنا هذا ليس موضوعنا الآن ننتقل إلى الشرح
=========================
غالباً يتم وضع كود التبليغ في ملف تركيب السكربت install.php
و بالطبع بهذا الملف يتم زراعة قاعدة البيانات على الغالب و من ثم بعد تركيب القاعدة يتم عمل كود التبليغ ..
لذا فالسكربتات التي تحتاج لزراعة القاعدة يدوياً غالباً لا يكون فيها كود تبليغ ..
و التبليغ غالباً يكون عن رابط الموقع الذي قام بتركيب السكربت .. و يتم ذلك عن طريق الإستعلام بمتغيرات و غالباً تستخدم المتغيرات التالية :
$HTTP_REFERER :و هو يقوم بجلب الصفحة الأخيرة التي فتحت بالمتصفح قبل تنفيذ الكود ..
$HTTP_HOST :و هو يقوم بجلب رابط الموقع ..
$PHP_SELF :يقوم بجلب رابط الملف ..
كما أنه بعض المبرمجين يضع في ملف الكونفج متغير $SITEURL مثلاً لكي يتم وضع رابط الموقع من قبل المستخدم و من ثم عند التبليغ يتم إرسال ما كتبه المستخدم في هذا المتغير ..
و لعمل كود تبليغ في السكربت الخاص بك هناك طريقتين حسب علمي و قد تكون هناك طرق كثيرة أفضل أجهلها حالياً ..
█ ◄الطريقة الأولى► █
''التبليغ عن طريق البريد الألكتروني"
وهي من أسهل الطرق المعتمدة حالياو تعتمد على أمر إرسال بريد إلكتروني بلغة php.
=========
الكود:
=========
كود PHP:
=========================
كما تلاحظون هناك خانة للبريد الإلكتروني المرسل إليه.
و طبعا نستبدل البريد ذاك بالبريد الخاص بالمبرمج (أنت)
و قد لا يهم كتابة موضوع للرسالة حتى لا يكون لافت للإنتباه .. يمكن وضع رمز - أو . ..
و طبعاً يتم وضع أحد المتغيرات المذكورة سابقاً بدلاً من message ..
مثال :
mail("topic@mtwer.com","---","$HTTP_REFERER");
و طبعاً يوضع الأمر غالباً كما ذكرنا سابقاً في ملف التركيب بعد أمر زراعة قاعدة البيانات مثلاً ..
█ ◄الطريقة الثانية► █
طريقة ربما فيها قليل من الصعوبة لكنها عملية و مفيدة ..
هي تعتمد على وضع كود بسيط في ملف تركيب السكربت يقوم بفتح سكربت في موقع المبرمج طبعاً مع إرسال المعلومات المطلوبة و يتم تخزين رابط الموقع مثلاً في قاعدة بيانات السكربت الموضوع في موقع المبرمج ..
و فكرتها كالتالي :
السكربت الذي يوضع في موقع المبرمج و ستحتاج لعمل قاعدة بيانات مثل هذه :
كود PHP:
`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')");
}
?>
طبعاً كما هو ملاحظ قمنا بالسطور الأربعة الأولى بوضع كود التعرف على قاعدة بيانات ثم بالسطرين التي تليها كود لعمل إتصال بقاعدة البيانات و في السطر السابع وضعنا شرط متعلق بأن لا تعمل الأوامر التي بداخله إلا إذا كان الرابط على الشكل
كود PHP:
و الأمر الذي بداخله هو أمر إدراج في قاعدة البيانات قيمة المتغير url و الذي سيكون رابط موقع المستخدم ..
=========================
بقي علينا الآنكتابة الكود الذي نضعه في ملف التركيب install.php
كود PHP:
طبعاً كما ذكرنا يوضع هذا الكود بعد أمر زراعة قاعدة البيانات في ملف التركيب و نلاحظ فيه أمر فتح رابط و هو رابط السكربت الذي قمنا بعمله قبل قليل و الذي نضعه بموقع المبرمج و نلاحظ أن المتغير 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 مثلاً ..
=========================
إخواني الموضوع منقول و قد عدلت و أصلحت وعملت الكثير في الموضوع ليصل يهذا المستوى, مش مصدقيني صح ؟؟
إذا أدخلوا هنا و شوفوا الفرق.