нужна помощь с формой заказа Landing Page

Тема в разделе "PHP", создана пользователем ka4uk93, 21 май 2017.

  1. ka4uk93

    ka4uk93

    Регистрация:
    21 май 2017
    Сообщения:
    0
    Симпатии:
    0
    всем привет, нужна помощь с формой заказа Landing Page
    тоесть, есть сайт на нем форма заказа, но в самом файле пхп надо подкорегоровать что-то так как заказы не приходят на почту
    пробовал ставить на 3 разных бесплатных хостинга, но не в какую не приходят письма, на разные почты переделывал(gmail, ukr.net, rambler)
     
  2. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.581
    Симпатии:
    1.482
    а код где?
     
  3. ka4uk93

    ka4uk93

    Регистрация:
    21 май 2017
    Сообщения:
    0
    Симпатии:
    0
    PHP:
    <?php
    /*   
    If you see this text in your browser, PHP is not configured correctly on this hosting provider.
    Contact your hosting provider regarding PHP configuration for your site.

    PHP file generated by Adobe Muse CC 2015.0.2.310
    */

    require_once('form_process.php');

    $form = array(
        
    'subject' => 'Отправка Форма Turbo Insta|Vk',
        
    'heading' => 'Отправка новой формы',
        
    'success_redirect' => '',
        
    'resources' => array(
            
    'checkbox_checked' => 'Отмечено',
            
    'checkbox_unchecked' => 'Флажок не установлен',
            
    'submitted_from' => 'Формы, отправленные с веб-сайта: %s',
            
    'submitted_by' => 'IP-адрес посетителя: %s',
            
    'too_many_submissions' => 'Недопустимо высокое количество отправок с этого IP-адреса за последнее время',
            
    'failed_to_send_email' => 'Не удалось отправить сообщение эл. почты',
            
    'invalid_reCAPTCHA_private_key' => 'Недействительный закрытый ключ reCAPTCHA.',
            
    'invalid_field_type' => 'Неизвестный тип поля \'%s\'.',
            
    'invalid_form_config' => 'Недопустимая конфигурация поля \"%s\".',
            
    'unknown_method' => 'Неизвестный метод запроса сервера'
        
    ),
        
    'email' => array(
            
    'from' => '[email protected]',
            
    'to' => '[email protected]'
        
    ),
        
    'fields' => array(
            
    'custom_U963' => array(
                
    'order' => 1,
                
    'type' => 'string',
                
    'label' => 'Пользовательский текст:',
                
    'required' => true,
                
    'errors' => array(
                    
    'required' => 'Поле \'Пользовательский текст:\' не может быть пустым.'
                
    )
            ),
            
    'custom_U967' => array(
                
    'order' => 2,
                
    'type' => 'string',
                
    'label' => 'Пользовательский текст:',
                
    'required' => true,
                
    'errors' => array(
                    
    'required' => 'Поле \'Пользовательский текст:\' не может быть пустым.'
                
    )
            )
        )
    );

    process_form($form);
    ?>
     
    Lasted edited by : 21 май 2017
  4. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.581
    Симпатии:
    1.482
    нужен код form_process.php файла
     
  5. ka4uk93

    ka4uk93

    Регистрация:
    21 май 2017
    Сообщения:
    0
    Симпатии:
    0
    PHP:
    <?php
    /*   
    If you see this text in your browser, PHP is not configured correctly on this hosting provider.
    Contact your hosting provider regarding PHP configuration for your site.

    PHP file generated by Adobe Muse CC 2015.0.2.310
    */

    require_once('form_throttle.php');

    function 
    process_form($form) {
        if (
    $_SERVER['REQUEST_METHOD'] != 'POST')
            die(
    get_form_error_response($form['resources']['unknown_method']));

        if (
    formthrottle_too_many_submissions($_SERVER['REMOTE_ADDR']))
            die(
    get_form_error_response($form['resources']['too_many_submissions']));
      
        
    // will die() if there are any errors
        
    check_required_fields($form);
      
        
    // will die() if there is a send email problem
        
    email_form_submission($form);
    }

    function 
    get_form_error_response($error) {
        return 
    get_form_response(false, array('error' => $error));
    }

    function 
    get_form_response($success$data) {
        if (!
    is_array($data))
            die(
    'data must be array');
          
        
    $status = array();
        
    $status[$success 'FormResponse' 'MusePHPFormResponse'] = array_merge(array('success' => $success), $data);
      
        return 
    json_serialize($status);
    }

    function 
    check_required_fields($form) {
        
    $errors = array();

        foreach (
    $form['fields'] as $field => $properties) {
            if (!
    $properties['required'])
                continue;

            if (!
    array_key_exists($field$_REQUEST) || empty($_REQUEST[$field]))
                
    array_push($errors, array('field' => $field'message' => $properties['errors']['required']));
            else if (!
    check_field_value_format($form$field$properties))
                
    array_push($errors, array('field' => $field'message' => $properties['errors']['format']));
        }

        if (!empty(
    $errors))
            die(
    get_form_error_response(array('fields' => $errors)));
    }

    function 
    check_field_value_format($form$field$properties) {
        
    $value get_form_field_value($field$properties$form['resources'], false);

        switch(
    $properties['type']) {
            case 
    'checkbox':
            case 
    'string':
            case 
    'captcha':
                
    // no format to validate for those fields
                
    return true;

            case 
    'checkboxgroup':
                if (!
    array_key_exists('optionItems'$properties))
                    die(
    get_form_error_response(sprintf($form['resources']['invalid_form_config'], $properties['label'])));

                
    // If the value received is not an array, treat it as invalid format
                
    if (!isset($value))
                    return 
    false;

                
    // Check each option to see if it is a valid value
                
    foreach($value as $checkboxValue) {
                    if (!
    in_array($checkboxValue$properties['optionItems']))
                        return 
    false;
                }

                return 
    true;

            case 
    'radiogroup':
                if (!
    array_key_exists('optionItems'$properties))
                    die(
    get_form_error_response(sprintf($form['resources']['invalid_form_config'], $properties['label'])));

                
    //check list of real radio values
                
    return in_array($value$properties['optionItems']);
      
            case 
    'recaptcha':
                if (!
    array_key_exists('recaptcha'$form) || !array_key_exists('private_key'$form['recaptcha']) || empty($form['recaptcha']['private_key']))
                    die(
    get_form_error_response($form['resources']['invalid_reCAPTCHA_private_key']));
                
    $resp recaptcha_check_answer($form['recaptcha']['private_key'], $_SERVER["REMOTE_ADDR"], $_POST["recaptcha_challenge_field"], $_POST["recaptcha_response_field"]);
                return 
    $resp->is_valid;

            case 
    'email':
                return 
    == preg_match('/^[a-z0-9!#$%&\'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&\'*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i'$value);

            case 
    'radio'// never validate the format of a single radio element; only the group gets validated
            
    default:
                die(
    get_form_error_response(sprintf($form['resources']['invalid_field_type'], $properties['type'])));
        }
    }

    function 
    email_form_submission($form) {
        if(!
    defined('PHP_EOL'))
            
    define('PHP_EOL''\r\n');

        
    $form_email = ((array_key_exists('Email'$_REQUEST) && !empty($_REQUEST['Email'])) ? cleanup_email($_REQUEST['Email']) : '');

        
    $to $form['email']['to'];
        
    $subject $form['subject'];
        
    $message get_email_body($subject$form['heading'], $form['fields'], $form['resources']);
        
    $headers get_email_headers($to$form_email);  

        
    $sent = @mail($to$subject$message$headers);
      
        if(!
    $sent)
            die(
    get_form_error_response($form['resources']['failed_to_send_email']));
      
        
    $success_data = array(
            
    'redirect' => $form['success_redirect']
        );
      
        echo 
    get_form_response(true$success_data);
    }

    function 
    get_email_headers($to_email$form_email) {
        
    $headers 'From: ' $to_email PHP_EOL;
        
    $headers .= 'Reply-To: ' $form_email PHP_EOL;
        
    $headers .= 'X-Mailer: Adobe Muse CC 2015.0.2.310 with PHP' PHP_EOL;
        
    $headers .= 'Content-type: text/html; charset=utf-8' PHP_EOL;
      
        return 
    $headers;
    }

    function 
    get_email_body($subject$heading$fields$resources) {
        
    $message '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">';
        
    $message .= '<html xmlns="http://www.w3.org/1999/xhtml">';
        
    $message .= '<head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><title>' encode_for_form($subject) . '</title></head>';
        
    $message .= '<body style="background-color: #ffffff; color: #000000; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: 18px; font-family: helvetica, arial, verdana, sans-serif;">';
        
    $message .= '<h2 style="background-color: #eeeeee;">' $heading '</h2>';
        
    $message .= '<table cellspacing="0" cellpadding="0" width="100%" style="background-color: #ffffff;">';

        
    $sorted_fields = array();
      
        foreach (
    $fields as $field => $properties) {
            
    // Skip reCAPTCHA from email submission
            
    if ('recaptcha' == $properties['type'])
                continue;

            
    array_push($sorted_fields, array('field' => $field'properties' => $properties));
        }

        
    // sort fields
        
    usort($sorted_fields'field_comparer');

        foreach (
    $sorted_fields as $field_wrapper)
            
    $message .= '<tr><td valign="top" style="background-color: #ffffff;"><b>' encode_for_form($field_wrapper['properties']['label']) . ':</b></td><td>' get_form_field_value($field_wrapper['field'], $field_wrapper['properties'], $resourcestrue) . '</td></tr>';

        
    $message .= '</table>';
        
    $message .= '<br/><br/>';
        
    $message .= '<div style="background-color: #eeeeee; font-size: 10px; line-height: 11px;">' sprintf($resources['submitted_from'], encode_for_form($_SERVER['SERVER_NAME'])) . '</div>';
        
    $message .= '<div style="background-color: #eeeeee; font-size: 10px; line-height: 11px;">' sprintf($resources['submitted_by'], encode_for_form($_SERVER['REMOTE_ADDR'])) . '</div>';
        
    $message .= '</body></html>';

        return 
    cleanup_message($message);
    }

    function 
    field_comparer($field1$field2) {
        if (
    $field1['properties']['order'] == $field2['properties']['order'])
            return 
    0;

        return ((
    $field1['properties']['order'] < $field2['properties']['order']) ? -1);
    }

    function 
    is_assoc_array($arr) {
        if (!
    is_array($arr))
            return 
    false;
      
        
    $keys array_keys($arr);
        foreach (
    array_keys($arr) as $key)
            if (
    is_string($key)) return true;

        return 
    false;
    }

    function 
    json_serialize($data) {

        if (
    is_assoc_array($data)) {
            
    $json = array();
      
            foreach (
    $data as $key => $value)
                
    array_push($json'"' $key '": ' json_serialize($value));
      
            return 
    '{' implode(', '$json) . '}';
        }
      
        if (
    is_array($data)) {
            
    $json = array();
      
            foreach (
    $data as $value)
                
    array_push($jsonjson_serialize($value));
      
            return 
    '[' implode(', '$json) . ']';
        }
      
        if (
    is_int($data) || is_float($data))
            return 
    $data;
      
        if (
    is_bool($data))
            return 
    $data 'true' 'false';
      
        return 
    '"' encode_for_json($data) . '"';
    }

    function 
    encode_for_json($value) {
        return 
    preg_replace(array('/([\'"\\t\\\\])/i''/\\r/i''/\\n/i'), array('\\\\$1''\\r''\\n'), $value);
    }

    function 
    encode_for_form($text) {
        
    $text stripslashes($text);
        return 
    htmlentities($textENT_QUOTES'UTF-8');// need ENT_QUOTES or webpro.js jQuery.parseJSON fails
    }

    function 
    get_form_field_value($field$properties$resources$forOutput) {
        
    $value $_REQUEST[$field];
      
        switch(
    $properties['type']) {
            case 
    'checkbox':
                return ((
    $value == '1' || $value == 'true') ? $resources['checkbox_checked'] : $resources['checkbox_unchecked']);
          
            case 
    'checkboxgroup':
                if (!
    is_array($value))
                    return 
    NULL;

                
    $outputValue = array();

                foreach (
    $value as $checkboxValue)
                    
    array_push($outputValue$forOutput encode_for_form($checkboxValue) : stripslashes($checkboxValue));
              
                if (
    $forOutput)
                    
    $outputValue implode(', '$outputValue);

                return 
    $outputValue;
          
            case 
    'radiogroup':
                return (
    $forOutput encode_for_form($value) : stripslashes($value));
          
            case 
    'string':
            case 
    'captcha':
            case 
    'recaptcha':
            case 
    'email':
                return 
    encode_for_form($value);

            case 
    'radio'// never validate the format of a single radio element; only the group gets validated
            
    default:
                die(
    get_form_error_response(sprintf($resources['invalid_field_type'], $properties['type'])));
        }
    }

    function 
    cleanup_email($email) {
        
    $email encode_for_form($email);
        
    $email preg_replace('=((<CR>|<LF>|0x0A/%0A|0x0D/%0D|\\n|\\r)\S).*=i'null$email);
        return 
    $email;
    }

    function 
    cleanup_message($message) {
        
    $message wordwrap($message70"\r\n");
        return 
    $message;
    }
    ?>
     
    Lasted edited by : 21 май 2017
  6. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.581
    Симпатии:
    1.482
    код выглядит валидным. скорее всего какие-то приколы в хостингах.

    нужно почитать логи email сервера, так стоит убрать значок @ перед mail функцией, возможно увидите какое-нибудь полезное сообщение.