Помощь [help] Генератор форм обратной связи

Тема в разделе "DLE", создана пользователем infant, 3 ноя 2008.

Информация :
Актуальная версия DataLife Engine 11.2
( Final Release v.11.2 | Скачать DataLife Engine | Скачать 11.2 demo )
Нужно ли обновляться | Как обновиться | Изменения в шаблонах
> Нет русских символов <
[Приватная тема DLE (Все подробности в ЛС к модератору раздела)]

Версии 11.1 и ниже - уязвимы!

Локализации | F.A.Q. | Внешний вид
Правила раздела | Правила форума
Обсуждение хайда карается баном!
В каждом сообщении указывайте версию DLE, которого они касаются!
Статус темы:
Закрыта.
Модераторы: killoff
  1. infant

    infant

    Регистр.:
    9 июн 2007
    Сообщения:
    167
    Симпатии:
    62
    В общем с этим модулем история была длинная и судиться пришлось с продавцом, потом нашел самого автора. заплатил ему за доработку модуля, но получил опять х***ню. Обращаюсь теперь здесь за помощью.
    Суть такова:
    Аттаченные файлы приходят без расширения, необходимо это поправить и мод будет работоспособен.
    код отвечающий за вывод формы и отправки сообщений:
    PHP:
    <!-- Скрипт by KorsaR -aKa- Стас (2008год) -->
    <?php
    //==================================================
    //---------------------------------------------
    // Script: form.php
    //---------------------------------------------
    //     > Copyright (c) 2008
    //    > Author: KorsaR -aKa- Стас
    //    > Date: 04/07/2008
    //    > WebSite: http://KorsaR.ZnPortal.ru/
    //    > From: Russia(Moscow/Zhukovsky)
    //----------------------------------------------
    // All Rights Reserved.
    //----------------------------------------------
    //==================================================
    ######### Конфигурациия Скрипта ##########
    $db_project="dle_form_project";         // Имя Таблицы для Проектов.
    $db_items="dle_form_items";         // Название Таблицы для компонетов Проекта.
    ##########################################
    //==========Дальше Лудше ничего не трогать===========//
    if(!defined('DATALIFEENGINE')) { die("Hacking attempt!"); }
    if(!
    $_GET['id']) { echo "<META HTTP-EQUIV='Refresh' CONTENT='0; URL={$config['http_home_url']}'>"; exit; }
       if(!@include_once 
    ROOT_DIR.'/language/'.$config['langs'].'/form/user.lng') { echo "<center><h3>Error, loadings of a language package</h3></center>"; }
    $row2=$db->super_query("SELECT * FROM `$db_project` WHERE id={$_GET['id']}"); $file_st="ok";
    if (
    $is_logged)
    $group=$member_id['user_group']; $name=$member_id['name']; $emailo=$member_id['email']; if($group==1) { $gr="yes"; } } else { $group=0; }
    if(
    $group==$row2['gr'] || $row2['gr']==|| $gr=="yes") {
    $code.="<div style='float:left;' class='story_top'><h1>{$row2['title']}</h1></div>
    <table class='story_body' border'0' cellspacing='0' cellpadding='0'>"
    ;

    $res=$db->query("SELECT * FROM `$db_items` WHERE id_project='{$_GET['id']}' ORDER BY pos"); $row=$db->get_row($res);
    $code.="<form action='' enctype='multipart/form-data' method='post'>";
    if(
    $row['id']) { 

    if(
    $row2['title_ok']==1) { $fs="<font color='red' size=2>*</font> <b>{$form_lang['USER_TEXT_1']}</b><br>"$typ="text"; } else { $typ="hidden"; } $pole.="$fs<input class='f_input' type='$typ' name='subject' value='{$row2['title_def']}' style='width:300px;'>";
    if(
    $row2['from_ok']==1) { $pole.="<tr><td class='td_form'><font color='red' size=2>*</font> <b>{$form_lang['USER_TEXT_2']}</b></td><td class='td_form'><input type='text' class='f_input' name='email' value='$emailo' style='width:300px;'></td></tr>"; }
    do
    {
    $id=$row['id']; $objz="";
    $name="pole_".$id;
    if(
    $row['objaz']==1) { $objz="<font color='red' size=2>*</font>"; }
    if(
    $row['type']=="text") { $pole.="<tr><td class='td_form'>$objz <b>{$row['title']}</b></td><td class='td_form'><input type='{$row['type']}' class='f_input' maxlength='{$row['max']}' name='$name' style='width:300px;' value='{$row['value']}'></td></tr>"; }
    elseif(
    $row['type']=="radio" or $row['type']=="checkbox" or $row['type']=="select") { $id=$row['id']; $pole.="<tr><td class='td_form'>$objz <b>{$row['title']}</b></td><td class='td_form'>".radio($id); }
    elseif(
    $row['type']=="file") { $pole.="<tr><td class='td_form'>$objz <b>{$row['title']}</b></td><td class='td_form'><input type='{$row['type']}' name='file' style='width:300px;'><input type='hidden' name='size' value='{$row['max']}'></td></tr>"; }
    else { 
    if(
    $row['max']!="") { $val=explode(",",$row['max']); } else { $val[0]=50$val[1]=5; }
    $pole.="<tr><td class='td_form'>$objz <b>{$row['title']}</b></td><td class='td_form'><textarea class='f_textarea' cols='{$val[0]}' rows='{$val[1]}'  name='$name'>{$row['value']}</textarea></td></tr>"; }
    }
    while(
    $row=$db->get_row($res));
                
    $code.="<p>$pole</p>";

    //=======Прикрепление файла======//
    if(is_uploaded_file($_FILES['file']['tmp_name'])) {
    $uploaddir=ROOT_DIR."/img/";
    $file_name=$_FILES["file"]["name"];
    $uploadfile=$uploaddir.$file_name;
    $size=$_POST['size']*1024;
    if(
    $_FILES['file']['size'] > $size) {
    $file_st="error"msgbox($form_lang['USER_TEXT_3'],"<center><font color='red' size=2>{$form_lang['USER_TEXT_4']} {$_POST['size']} Kb.</font></center>");
    } else { if(
    move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile)) { $file=$uploadfile; } }
     }
    //=============================//

    if($_POST['email']) { $from_email=$_POST['email']; } else { $from_email=$config['admin_mail']; }

    if(
    $row2['code']==1) { 
    $code.=<<<HTML
    <script language='JavaScript' type="text/javascript">
    function reload () {

        var rndval = new Date().getTime(); 

        document.getElementById('dle-captcha').innerHTML = '<a onclick="reload(); return false;" href="#">
    {$lang['reload_code']}</a><br><img src="{$path['path']}engine/modules/antibot.php?rndval=' + rndval + '" border="0" width="120" height="50">';

    };
    </script>
    HTML;
    $code.="<tr><td class='td_form'><p><font color='red' size=2>*</font> <b>{$form_lang['USER_TEXT_5']}</b></td><td class='td_form'>
    <span id='dle-captcha'><img src='
    {$path['path']}engine/modules/antibot.php' alt='{$lang['sec_image']}' border='0'> <a onclick='reload(); return false;' href='#'>{$lang['reload_code']}</a></span>
    <br><input type='text' class='f_input' style='width:300px;' name='passe' ></p></td></tr>"
    ;
    }
    $code.="<tr><td  class='td_form' colspan='2'><p><input type='submit' name='ok' value='{$form_lang['USER_TEXT_6']}'></form></p></td></tr>";
    $code.="<tr><td  class='td_form' colspan='2'>{$form_lang['USER_TEXT_7']} <font color='red' size=2>*</font> {$form_lang['USER_TEXT_8']}</td></tr>";
    $code.="</table></td></tr></table>";
    }
    #####
    if($row2['code']==1) {
    if(
    $_POST['passe']==$_SESSION['sec_code_session']) { $stop_code="ok"; } else { $stop_code="err"; }
    } else { 
    $stop_code="ok"; }

    if(
    $_POST['ok']) {

    $res=$db->query("SELECT * FROM `$db_items` WHERE id_project='{$_GET['id']}'"); $row=$db->get_row($res);
        do
        {
    if(
    $row['objaz']==1) {
    $name="pole_".$row['id'];
    if(
    $_POST[$name]=="") { $obz="<center><font color='red' size=2>{$form_lang['USER_TEXT_9']}</font>"; }
                 }
        }
    while(
    $row=$db->get_row($res));
    if(
    $file_st!="error") {
    if(!
    $obz) {
     if (
    $stop_code=="ok") { 
    $subject=$_POST['subject'];
    $msg=msg();
    $row2=$db->super_query("SELECT * FROM `$db_project` WHERE id={$_GET['id']}");
    if(
    $row2['email']!="") {
    XMail($from_email$row2['email'], $subject$msg);
    } else { 
    $val=explode(",",$row2['email2']); foreach($val as $v) { XMail($from_email$v$subject$msg);}
    }

    } else { 
    msgbox($form_lang['USER_TEXT_3'],"<center><font color='red' size=2>{$form_lang['USER_TEXT_10']}</font></center>"); }
     } else { 
    msgbox($form_lang['USER_TEXT_3'],$obz."<br>{$form_lang['USER_TEXT_7']} <font color='red' size=2>*</font> {$form_lang['USER_TEXT_8']}</center>"); }
         } 
    }



    } else { 
    $code.="<center><h1>{$row2['text_not_prav']}</h1></center>"; }
    //-------Функции-------//
    ### Функция Отправки на email
    function XMail($from$to$subject$msg) {
    global 
    $form_lang,$config,$file;
    if(isset(
    $file))
    {
        
    $f         fopen($file,"rb");
        
    $un        strtoupper(uniqid(time()));
        
    $head      "From: $from\n";
        
    $head     .= "To: $to\n";
        
    $head     .= "Subject: $subject\n";
        
    $head     .= "X-Mailer: PHPMail Tool\n";
        
    $head     .= "Reply-To: $from\n";
        
    $head     .= "Mime-Version: 1.0\n";
        
    $head     .= "Content-Type:multipart/mixed;";
        
    $head     .= "boundary=\"----------".$un."\"\n\n";
        
    $zag       "------------".$un."\nContent-Type:text/html; charset=\"windows-1251\"\n";
        
    $zag      .= "Content-Transfer-Encoding: 8bit\n\n$msg\n\n";
        
    $zag      .= "------------".$un."\n";
        
    $zag      .= "Content-Type: application/octet-stream;";
        
    $zag      .= "name=\"".basename($file)."\"\n";
        
    $zag      .= "Content-Transfer-Encoding:base64\n";
        
    $zag      .= "Content-Disposition:attachment;";
        
    $zag      .= "filename=\"".basename($file)."\"\n\n";
        
    $zag      .= chunk_split(base64_encode(fread($f,filesize($file))))."\n";
    } else {
        
    $un        strtoupper(uniqid(time()));
        
    $head      "From: $from\n";
        
    $head     .= "To: $to\n";
        
    $head     .= "Subject: $subject\n";
        
    $head     .= "X-Mailer: PHPMail Tool\n";
        
    $head     .= "Reply-To: $from\n";
        
    $head     .= "Mime-Version: 1.0\n";
        
    $head     .= "Content-Type:multipart/mixed;";
        
    $head     .= "boundary=\"----------".$un."\"\n\n";
        
    $zag       "------------".$un."\nContent-Type:text/html; charset=\"windows-1251\"\n";
        
    $zag      .= "Content-Transfer-Encoding: 8bit\n\n$msg\n\n";
        
    $zag      .= "------------".$un."\n";
    }
     
    $result=@mail("$to"$subject$zag$head);
    if (
    $result!=TRUE) { msgbox($form_lang['USER_TEXT_13'],{$form_lang['USER_TEXT_11']} <a href='{$config['http_home_url']}'>{$form_lang['USER_TEXT_12']}</a>");
          } else  { 
    msgbox($form_lang['USER_TEXT_13'],{$form_lang['USER_TEXT_14']} <a href='{$config['http_home_url']}'>{$form_lang['USER_TEXT_12']}</a>"); }
    if(
    $file) { unlink($file); }

    ### Функция Сборки текста сообщения
    function msg()
    {
    global 
    $db_items,$db_project,$db,$form_lang;
    $date=date("d/m/Y - H:i:s");
    $res=$db->query("SELECT * FROM `$db_items` WHERE id_project='{$_GET['id']}'"); $row=$db->get_row($res);
        do
        {
    $id=$row['id'];
    $name="pole_".$id; unset($tex);
    if(
    $row['type']=="radio" or $row['type']=="select") { $n=$_POST[$name]; $array=$row['value']; $val=explode(",",$array); $tex="{$val[$n]}"; }
    if(
    $row['type']=="checkbox") { 
    $array=$row['value']; $val=explode(",",$array); foreach($val as $k=>$v) { $name2="pole_".$id."_".$k;  if(isset($_POST[$name2])) { $tex.="{$val[$k]}<br>"; } } }
    if(
    $row['type']=="text") { $tex=$_POST[$name]; }

    $msg.="<dl><dt><font size=4>{$row['title']}</font></dt>";
    $msg.="<dd><font size=3>{$tex}</font></dd></dl>";
        }
        while(
    $row=$db->get_row($res));
    $msg.="<br><b>{$form_lang['USER_TEXT_15']}</b> $date";
    return 
    $msg;
    }
    ### Функция Сборка полей типа: (radio,checkbox,select)
    function radio($id)
    {
    global 
    $db_items,$db;
    $val=array();
    $ro=$db->super_query("SELECT * FROM `$db_items` WHERE id='$id'"); $array=$ro['value'];
    $val=explode(",",$array);
    $pol="";
    foreach(
    $val as $n=>$v)
     {
     
    $name="pole_".$ro['id'];  $name2="pole_".$ro['id']."_".$n
    if(
    $ro['type']=="checkbox") { $pol.="<input name='$name2' value=$n type='{$ro['type']}'>{$val[$n]}&nbsp;"; }
    elseif(
    $ro['type']=="radio") { $pol.="<input name='$name' value=$n type='{$ro['type']}'>{$val[$n]}&nbsp;"; }
    elseif(
    $ro['type']=="select") { $sel1="<select class='f_select_1' name='$name'><option class='f_select' value=''></option>"$pol.="<option class='f_select' value=$n>{$val[$n]}</option>"$sel2="</select></td></tr>"; }

     }
    return 
    $sel1.$pol.$sel2;
    }
    //-------Подгружаем шаблон-------//
         
    $tpl->load_template('form.tpl');
         
    $tpl->set('{code}'$code);
         
    $tpl->compile('content');
         
    $tpl->clear();
    ?>
    вот сам мод
    Посмотреть вложение form.zip

    готов даже доплатить если кто поможет.
     
  2. infant

    infant

    Регистр.:
    9 июн 2007
    Сообщения:
    167
    Симпатии:
    62
    Автор уже связался со мной. Оперативно как :D
    Жду результатов, если все ок, отпишусь.
     
  3. GauraStyle

    GauraStyle Kot

    Регистр.:
    13 фев 2007
    Сообщения:
    1.493
    Симпатии:
    917
    Ага, только ты наверное неуказал дату покупки этого мода. Вернее когда он был выпущен и почему так и небыл доработан. Я сам помоему пытался обсудить этот вопрос при выходе этого мода. Получилось, что один создал, другой торговал. Но адекватного ответа неуслышал. Мод судя по отзывам и всем остальным притензиям неработает совсем или работает но криво. Так что если доработает, то будет ему респект и уважение.
    ;)
     
Статус темы:
Закрыта.