منتديات قراصنة الجــــتزائر

مـــــــرحبا بكم في منتدانا الغالي


انضم إلى المنتدى ، فالأمر سريع وسهل

منتديات قراصنة الجــــتزائر

مـــــــرحبا بكم في منتدانا الغالي

منتديات قراصنة الجــــتزائر

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


    الدرس الرابع php

    Sohaib Assault
    Sohaib Assault


    أوسمتى : مدير
    عدد المساهمات : 78
    السٌّمعَة : 0
    تاريخ التسجيل : 07/04/2012
    العمر : 27

    الدرس الرابع php Empty الدرس الرابع php

    مُساهمة  Sohaib Assault الجمعة أغسطس 10, 2012 5:35 pm

    الحاجة أم الإختراع






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

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

    غالباً يتم وضع كود التبليغ في ملف تركيب السكربت 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 مثلاً ..





      الوقت/التاريخ الآن هو الخميس مارس 28, 2024 5:13 pm