دیتالایف انجین فارسی

تماس با ما با امکان آپلود فایل

تاریخ انتشار: 7 مهر 1389
ارسال کننده: SMostafa
هک اضافه کردن آپلود فایل به فرم تماس با ما
امکانات:
- امکان تعیین میزان مجاز حجم فایل آپلود (مثلا حداکثر 1024 کیلوبایت)
- امکان تعریف پسوندهای مجاز (jpg , *.gif , *.zip , *.rar , *.doc , *.pdf , *.bmp , *.txt.*)
  • آموزش نصب
  • سوالات متداول
  • تصاویر
1- یک فولدر بنام feedback در پوشه uploads ایجاد کنید و سطح دسترسی آنرا روی 777 بگذارید.


2- فایل engine/modules/feedback.php را باز کنید،

و به دنبال کد زیر بگردید:
if( ! defined( 'DATALIFEENGINE' ) ) {
die( "Hacking attempt!" );
}

پس از آن کد زیر را قرار دهید(config):
$file_allowed = array("gif","jpg","jpeg","bmp","pdf","txt","doc","rar","zip");
$file_path = "uploads/feedback/";
$file_size = "1024"; //kb


به دنبال کد زیر بگردید:
$_SESSION['sec_code_session'] = false;
پس از آن کد زیر را قرار دهید:
        $file_size = Intval($file_size) * 1024;
        if( (trim($_FILES['file']['name']) != "") And ((!in_array(end(explode(".",strtolower($_FILES["file"]["name"]))),$file_allowed)) Or ($_FILES["file"]["size"] > $file_size)) ) {
            $stop .= "<li>فرمت يا حجم فايل مجاز نيست.</li>";
        }

به دنبال کد زیر بگردید:
include_once ENGINE_DIR . '/classes/mail.class.php';
قبل از آن کد زیر را قرار دهید:
            $file_path = $file_path . time() . "_" . strtolower(basename($_FILES["file"]["name"]));
            if(move_uploaded_file($_FILES['file']['tmp_name'], $file_path)) {
                $message .= "\n attachment:".$config["http_home_url"].$file_path;
            }

به دنبال کد زیر بگردید:
<form
و با کد زیر جایگزین کنید:
<form enctype=\"multipart/form-data\"


3- کد زیر را در جای مناسبی از فایل feedback.tpl قالب سایت قرار دهید:
<input type="file" name="file">


مشکل اجباری بودن ضمیمه حل شد.
در صورت برخورد با هرگونه مشکل لطفا در قسمت نظرات همین پست اعلام کنید.
چرا این هک روی نسخه های بالاتر از 9.2 کار نمی کند؟
در نسخه های بالا تر از 9.2 فرم تماس با ما بصورت ای جکس ارسال می شود و این عمل مانع آپلود شدن فایل روی سرور می شود.
برای غیر فعال کردن ای جکس فایل engine/modules/feedback.php را باز کنید،
کد زیر را پیدا کنید و حذف کنید:
$(function(){

    $('#sendmail').submit(function() {

        if(document.sendmail.subject.value == '' || document.sendmail.message.value == '') {

            DLEalert('{$lang['comm_req_f']}', dle_info);
            return false;

        }

        var params = {};
        $.each($('#sendmail').serializeArray(), function(index,value) {
            params[value.name] = value.value;
        });

        params['skin'] = dle_skin;

        ShowLoading('');

        $.post(dle_root + "engine/ajax/feedback.php", params, function(data){
            HideLoading('');
            if (data) {
    
                if (data.status == "ok") {

                    $('#dle-content').html(data.text);    
    
                } else {

                    if ( document.sendmail.sec_code ) {
                       document.sendmail.sec_code.value = '';
                       reload();
                    } else {
                        Recaptcha.reload();
                    }

                    DLEalert(data.text, dle_info);

                }
    
            }
        }, "json");

      return false;
    });

});
تماس با ما با امکان آپلود فایل
38 نفر (38 کاربر و 0 میهمان) از این مطلب تشکر کرده اند.
تشکر
عضو سایت
18 اردیبهشت 1398 - 18:23
نقل قول: sir_iman
سلام. پیام ارسال میشه اما به مدیر سایت نمیرسه!

سلام.از نسخه 11.3 دیتالایف به بعد نیازی به این هک نیست و در خود دیتالایف این مورد اضافه شده و امکان ضمیمه کردن فایل در فرم تماس با ما وجود داره، اگر دیتالایف شما 11.3 و بالاتر هست باید در تنظیمات فعال و تغییرات قالب مربوط به این نسخه رو در قالب اعمال کنید

--------------------
جهت ارسال نظر، فرم زیر را تکمیل نمائید:
نام:*
ایمیل:*
متن نظر:

 
پررنگکج خط دارخط دار در وسط|سمت چپوسط سمت راست|قرار دادن شکلکانتخاب رنگ|پنهان کردن متنقراردادن نقل قولتبدیل نوشته ها به زبان روسیقراردادن Spoiler
کد را وارد کنید: *
عکس خوانده نمی شود