omar مدير
المخالفات : عدد المساهمات : 1174 السٌّمعَة : 2 تاريخ التسجيل : 09/09/2011 العمر : 29 الموقع : مصر
| موضوع: حفظ حقوق سكريبتاتك .. بكود تبليغ.. مثل منتديات vb .. الأربعاء يناير 09, 2013 2:10 pm | |
| كلنا نعلم ان الphp لغة مفتوحة المصدر لدلك من الصعب على اي مطور سكريبتات الحفاظ على حقوقه
إلا: إذا ظهر كود التبليغ.
و في درسنا هنا سنتطرق إلى: و ذلك. بطريقتين.. و هما بسيطتان جدا.. ^^ لعل البعض قد ينزعج و يقول أني أساعد على عمل برامج ملغمة لا بالعكس فرأيي هو أن كل مبرمج.. له حق في معرفة مستخدميه.. حسنا هذا ليس موضوعنا الآن ننتقل إلى الشرح ========================= غالباً يتم وضع كود التبليغ في ملف تركيب السكربت install.php و بالطبع بهذا الملف يتم زراعة قاعدة البيانات على الغالب و من ثم بعد تركيب القاعدة يتم عمل كود التبليغ .. لذا فالسكربتات التي تحتاج لزراعة القاعدة يدوياً غالباً لا يكون فيها كود تبليغ ..
و التبليغ غالباً يكون عن رابط الموقع الذي قام بتركيب السكربت .. و يتم ذلك عن طريق الإستعلام بمتغيرات و غالباً تستخدم المتغيرات التالية : $HTTP_REFERER :و هو يقوم بجلب الصفحة الأخيرة التي فتحت بالمتصفح قبل تنفيذ الكود .. $HTTP_HOST :و هو يقوم بجلب رابط الموقع .. $PHP_SELF :يقوم بجلب رابط الملف .. كما أنه بعض المبرمجين يضع في ملف الكونفج متغير $SITEURL مثلاً لكي يتم وضع رابط الموقع من قبل المستخدم و من ثم عند التبليغ يتم إرسال ما كتبه المستخدم في هذا المتغير .. و لعمل كود تبليغ في السكربت الخاص بك هناك طريقتين حسب علمي و قد تكون هناك طرق كثيرة أفضل أجهلها حالياً ..█ ◄الطريقة الأولى► █
''التبليغ عن طريق البريد الألكتروني"
وهي من أسهل الطرق المعتمدة حالياو تعتمد على أمر إرسال بريد إلكتروني بلغة php.
=========
الكود: =========
mail("topic@mtwer.com","subject","message"); =========================
كما تلاحظون هناك خانة للبريد الإلكتروني المرسل إليه.
و طبعا نستبدل البريد ذاك بالبريد الخاص بالمبرمج (أنت)
و قد لا يهم كتابة موضوع للرسالة حتى لا يكون لافت للإنتباه .. يمكن وضع رمز - أو . .. و طبعاً يتم وضع أحد المتغيرات المذكورة سابقاً بدلاً من message ..
مثال :
mail("topic@mtwer.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.mtwer.com و الأمر الذي بداخله هو أمر إدراج في قاعدة البيانات قيمة المتغير 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 مثلاً .. ========================= إخواني الموضوع منقول و قد عدلت و أصلحت وعملت الكثير في الموضوع ليصل يهذا المستوى, مش مصدقيني صح ؟؟ إذا أدخلوا هنا و شوفوا الفرق. | |
|