Visualizzazione risultati 1 fino 13 di 13

Discussione: Form Contact Non funzionante

  1. #1
    Guest

    Predefinito Form Contact Non funzionante

    Salve, ho disegnato un sito con adobe muse, premetto quindi che di codice non ne so praticamente nulla, e il form dei contatti non funziona con altervista. Lo stesso muse, quando va a pubblicare il sito, mi avverte della cosa e nel codice (php) mi inserisce il seguente commento:
    Codice 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.1.2.344
    */
    Genera inoltre tre file php form-u944.php , form_check.php , form_process.php associati al form contatti.
    Potete gentilmente aiutarmi e correggere il problema?
    Avete bisogno del codice dei tre file php? La pagina contatti è la seguente: http://takethisportfolio.altervista.org/contact.html

    PS Oltre ad aver controllato la posta nello spam ed eventuali ritardi di ricezione, ho testato l'invio delle email dal mio spazio web con il seguente script e tutto funziona correttamente:
    Codice PHP:
    <?php
    if(mail('miaemail@gmail.com','oggetto','messaggio','From: takethisportfolio@altervista.org'))
    echo
    'email inviata correttamente';
    else echo
    'Errore!';
    ?>
    Ringrazio anticipatamente :)

  2. #2
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    Riporta qua il contenuto dei tre file PHP.

  3. #3
    Guest

    Predefinito

    Eccoli :)
    1) form-u944.php
    Codice 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.1.2.344
    */

    require_once('recaptchalib.php');
    require_once(
    'form_process.php');

    $form = array(
    'subject' => 'Invio di Contact',
    'heading' => 'Nuovo invio del modulo',
    'success_redirect' => '',
    'resources' => array(
    'checkbox_checked' => 'Selezionato',
    'checkbox_unchecked' => 'Non selezionato',
    'submitted_from' => 'Modulo inviato dal sito Web: %s',
    'submitted_by' => 'Indirizzo IP del visitatore: %s',
    'too_many_submissions' => 'Troppi invii recenti da questo IP',
    'failed_to_send_email' => 'Invio e-mail non riuscito',
    'invalid_reCAPTCHA_private_key' => 'Chiave privata reCAPTCHA non valida.',
    'invalid_field_type' => 'Tipo di campo "%s" sconosciuto.',
    'invalid_form_config' => 'Il campo "%s" ha una configurazione non valida.',
    'unknown_method' => 'Metodo di richiesta server sconosciuto'
    ),
    'email' => array(
    'from' => 'takethisportfolio@altervista.org',
    'to' => 'miamail@alice.it'
    ),
    'recaptcha' => array(
    'private_key' => '----'
    ),
    'fields' => array(
    'custom_U957' => array(
    'order' => 1,
    'type' => 'string',
    'label' => 'who u think you are',
    'required' => true,
    'errors' => array(
    'required' => 'Il campo \'who u think you are\' è obbligatorio.'
    )
    ),
    'Email' => array(
    'order' => 2,
    'type' => 'email',
    'label' => 'E-mail',
    'required' => true,
    'errors' => array(
    'required' => 'Il campo \'E-mail\' è obbligatorio.',
    'format' => 'L\'e-mail del campo "E-mail" non è valido.'
    )
    ),
    'custom_U948' => array(
    'order' => 3,
    'type' => 'string',
    'label' => 'Messaggio',
    'required' => true,
    'errors' => array(
    'required' => 'Il campo \'Messaggio\' è obbligatorio.'
    )
    ),
    'recaptcha_response_field' => array(
    'order' => 4,
    'type' => 'recaptcha',
    'label' => 'Verifica con immagine',
    'required' => true,
    'errors' => array(
    'required' => 'Il campo \'Verifica con immagine\' è obbligatorio.',
    'format' => 'Valore reCAPTCHA errato.'
    )
    )
    )
    );

    process_form($form);
    ?>
    2) form_check.php
    Codice 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.1.2.344
    */



    if ($_SERVER['REQUEST_METHOD'] == 'GET')
    {
    $supportResponse = checkSupport();
    if (!empty(
    $_GET['mode']) and $_GET['mode'] == 'verify')
    {
    echo
    $supportResponse;
    exit;
    }

    echo(
    '<!DOCTYPE html><html><head><title>Muse PHP Diagnostics</title>');
    echo(
    '<style type="text/css">body { font: 14pt Myriad Pro, Arial, Helvetica;}ul { list-style-type: none; }');
    echo(
    ' h1 { background-color: #CCCCCC; padding: 2px;} label {display: inline-block; width: 100px; vertical-align: top;}');
    echo(
    '.good:before { color: green; content:\'\2713\0020\';} .bad:before {color: red; content: \'X\0020\';}');
    echo(
    '</style></head><body>');
    echo(
    '<h1>Diagnostics</h1><ul>');

    if (
    strrpos($supportResponse,'PHP:0;') === false)
    {
    echo(
    '<li class="bad">PHP version too low');
    }
    else
    {
    echo(
    '<li class="good">PHP version ok');
    }
    if (
    strrpos($supportResponse,'Mail:0;') === false)
    {
    echo(
    '<li class="bad">Mail configuration: PHP mail() configured incorrectly on server. Form will not be able to send email.');
    }
    else
    {
    echo(
    '<li class="good">Mail configuration: No known problems detected with php mail configuration.');
    }



    echo(
    '</body></html>');
    }

    $phpError = '';
    function
    phpErrorHandler($errno, $errstr, $errfile, $errline)
    {
    global
    $phpError;
    if (!(
    error_reporting() & $errno))
    {
    return;
    }

    $phpError .= $errstr;
    return
    true;
    }

    function
    checkSupport()
    {
    global
    $phpError;
    set_error_handler("phpErrorHandler");

    $response = '';


    $version = explode('.', PHP_VERSION);
    if (
    $version[0] < 4 || ($version[0] == 4 && $version[1] < 1))
    {
    $response .='PHP:1;';
    return
    $response;
    }
    else
    {
    $response .='PHP:0;';
    }

    if (
    strncasecmp(php_uname('s'), 'win', 3) == 0)
    {
    $mailserver = ini_get('SMTP');
    }
    else
    {
    $mailserver = ini_get('sendmail_path');
    }
    if (
    strlen($mailserver) == 0)
    {
    $response .='Mail:1;';
    }
    else
    {
    if (!
    function_exists("mail"))
    {
    $response .='Mail:2;';
    }
    else
    {
    $sent = mail("recipient@example.com", "Hi", "test message", "From: sender@example.com");
    if(
    $sent)
    {
    $response .='Mail:0;';
    }
    else
    {
    $response .='Mail:3;';
    }
    }
    }

    if(
    $phpError != '')
    {
    $response .='PHPError:' . $phpError;
    }

    return
    $response;
    }
    ?>
    Ultima modifica di karl94 : 27-04-2016 alle ore 18.16.43

  4. #4
    Guest

    Predefinito

    3) form_process.php
    Codice 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.1.2.344
    */



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



    // 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) || ($_REQUEST[$field] !== "0" && 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
    1 == 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.1.2.344 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'], $resources, true) . '</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 : 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($json, json_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($text, ENT_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($message, 70, "\r\n");
    return
    $message;
    }
    ?>

    PS ho scritto in due messaggi perché avevo superato il limite di 10000 caratteri

  5. #5
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    Non dovrebbero esserci problemi, come puoi anche vedere dallo script di diagnostica.
    Hai controllato che le mai non finiscano fra la posta indesiderata?

  6. #6
    Guest

    Predefinito

    si, come già scritto prima ho controllato la posta nella cartella spam/postaindesiderata e prima di scrivere qui ho aspettato una giornata per verificare se ci fossero stati eventuali ritardi di invio/ricezione, ho anche testato l'invio delle email dal mio spazio web con il seguente script e tutto funziona correttamente:
    Codice PHP:
    <?php
    if(mail('miaemail@gmail.com','oggetto','messaggio','From: takethisportfolio@altervista.org'))
    echo
    'email inviata correttamente';
    else echo
    'Errore!';
    ?>
    . Inoltre ho anche inserito un'altra mail, quindi sia alice.it che gmail.com, ma nulla.

    Quindi? Come è possibile?

  7. #7
    Guest

    Predefinito

    mmmh risolveremo in qualche maniera?

  8. #8
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Dai log risulta che le mail vengano inviate. Proverei a cambiare la casella di destinazione, @virgilio.it tende a scartare mail in arrivo senza avvisare nessuno.


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  9. #9
    Guest

    Predefinito

    ho usato gmail, virgilio e alice. Niente di niente. E nella community di adobe si dice il problema sia da risolvere con il servizio hosting.

  10. #10
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Più che un problema dell'hosting è uno problema dello script visto che con l'altro codice di esempio ti funziona tutto.

    Comunque dopo le mie prove attorno alle 15 non mi risultano altri invii di mail dal tuo account. Vedo però che ieri ci sono stati 3 invii da form-check.php verso la casella fittizia sender@example.com.


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  11. #11
    Guest

    Predefinito

    quindi? -perdona la mia ignoranza in fatto di codice, spero possiate aiutarmi-

  12. #12
    Guest

    Predefinito

    Ciao!
    scusa se mi intrometto: scrivo non per dare risposte ma perchè ho il tuo stesso problema!
    ho visto che questo post e di qualche mese fa e volevo sapere se nel frattempo avete trovato qualche soluzione
    o qualche alternativa o scappatoia valida...

    (che sono disperato... )
    Grazie!

  13. #13
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    Testspacco: hai già aperto una tua discussione, continua lì.

Tags for this Thread

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •