Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Form contatto in php

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2003
    residenza
    Prato
    Messaggi
    687

    Form contatto in php

    Salve
    Ho trovato un form di contatto in php che potrebbe essermi utile però ha un problema..
    L'e-mail che mando da li arriva a chi compila il form non al destinatario nonostante io abbia impostato l'email del form.

    Questo è il form: http://www.luxury-italian-office.com...w/contatti.php

    Questo è il codice del file setting.php:

    Codice PHP:
    <?phpini_set('display_errors''On');ini_set('error_reporting'E_ALL & ~E_NOTICE);//email del destinatario del form//$destinatario = 'wordpress@luxury-italian-office.com';//oggetto dell'email inviata$oggetto = 'Mail dal modulo contatti articolo YIW';

    //Messaggio d'errore per campi mancanti//Error message for missing fields$error_missing_fields= 'Per favore, completate tutti i campi del form indicati';//Messaggio d'errore del server mail//Error message for mail server$error_mail_server = 'Siamo spiacenti. Si &egrave; verificato un errore e     l\'email non &egrave; stata inviata. Riprovate pi&ugrave; tardi.';//Messaggio di conferma invio mail//Info message for correct mail sent$info_mail_sent = 'L\'email è stata inviata correttamente!.';

    /* Se il form è stato inviato, elenca i campi che ci si aspetta di ricevere.   Evita che qualcuno possa aggiungere dei campi non previsti */
    $expected = array('nome','email','sito','messaggio');//imposta i campi obbligatori$required = array('nome','email','messaggio');//crea un array vuoto per i campi mancanti$missing = array();   ?>
    Questo del file form.php:

    codice HTML:
    <form action="<?php basename($_SERVER['PHP_SELF']) ?>" method="post" id="formYIW">  <fieldset>    <legend><span>Inviaci un messaggio</span></legend>    <ol><li><label for="nome">Nome <abbr title="campo obbligatorio">*</abbr></label>        <input type="text" name="nome" id="nome" tabindex="1"	       value="<?php if ( isset( $missing ) && isset($nome) ) echo $nome; ?>"	       class="<?php if (isset( $missing ) && in_array('nome',$missing))			echo 'error';	       ?>"/>      </li>      <li>        <label for="email">Email <abbr title="campo obbligatorio">*</abbr></label>        <input type="text" name="email" id="email" tabindex="2"	       value="<?php if ( isset( $missing ) && isset($email) ) echo $email; ?>"	       class="<?php if (isset( $missing ) && in_array('email',$missing))			echo 'error';	       ?>"/>      </li>      <li>        <label for="sito">Sito web</label>        <input type="text" name="sito" id="sito" tabindex="3"	       value="<?php if ( isset( $missing ) && isset($sito) ) echo $sito; ?>"	       class="<?php if (isset( $missing ) && in_array('sito',$missing))			echo 'error';	       ?>"/>      </li>      <li>        <label for="messaggio">Messaggio <abbr title="campo obbligatorio">*</abbr></label>        <textarea name="messaggio" id="messaggio" rows="10" cols="30" tabindex="4"	class="<?php if (isset( $missing ) && in_array('messaggio',$missing))			echo 'error';	       ?>"><?php if ( isset( $missing ) && isset($messaggio) ) echo $messaggio; ?></textarea>      </li>    </ol>  </fieldset>  <p class="controls">   <input type="submit" name="submit" id="submit" value="Invia Mail" tabindex="5" />  </p></form>
    Questo del file principale contatti.php:

    codice HTML:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Modulo contatti in PHP | Your Inspiration Web</title>
    <link rel="stylesheet" type="text/css" href="stile.css" />
    </head>
    <body>
    <?php
    require_once 'settings.php';
    if(isset($_POST['submit'])){
    foreach ($_POST as $key => $value){
    //elimina eventuali spazi aggiuntivi
    $temp = $value ? trim($value) : '';
    //se è richiesta ma vuota aggiungila all'array missing
    if(!strlen ($temp) && in_array($key, $required)){
    array_push($missing, $key);
    }
    //se il campo è aspettato, setta la variabile associata
    elseif(in_array($key, $expected)){
    ${$key} = htmlentities($temp); //in questo caso crea $nome, $email, $sito, $commento
    }
    }
    if ( empty($missing) ){
    //Se l'array missing è vuoto, vuol dire che sono stati inseriti i valori
    //obbligatori. Costruisco il messaggio 
    $contenuto_email = "Nome: $nome\n\n"; //Queste variabili sono create nel passaggio precedente
    $contenuto_email .= "Email: $email\n\n";
    $contenuto_email .= "Sito Web: $sito\n\n";
    $contenuto_email .= "Messaggio:\n $messaggio\n\n";
    //limita la lunghezza a 70 caratteri per la compatibilità
    $contenuto_email = wordwrap($contenuto_email,70);
    //invia l'email 
    $mail_sent = mail($email,$oggetto,$contenuto_email, 'From: '.$email);
    $info_message = '<p class="info">' . $info_mail_sent . '</p>';
    if($mail_sent){
    //Se l'email viene inviata l'array missing non serve più quindi lo svuoto
    unset($missing);
    }
    }
    }
    //se non sono stati immessi campi obbligatori
    if ( isset( $_POST['submit'] ) && isset($missing) && !empty($missing)) :
    $info_message = '<p class="error">' . $error_missing_fields . '</p>';
    elseif ($_POST['submit'] && !$mail_sent) :
    //se ci sono stati problemi con l'invio della mail da parte del server
    $info_message = '<p class="error">' . $error_mail_server . '</p>';
    endif;
    
    
    
    
    //Mostra una notifica sia d'errore che di conferma
    if ( isset( $info_message ) && strlen( $info_message ) ) echo $info_message;
    //Include il form
    require_once 'form.php';
    ?>
    </body>
    </html>
    Ultima modifica di Artgallery75; 12-04-2016 a 18:26

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Riformatta il codice e visualizza l'anteprima del messaggio per assicurarti che sia tutto a posto prima di postare, così si capisce poco.

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2003
    residenza
    Prato
    Messaggi
    687
    Ho riprovato e si vede sempre così..

  4. #4
    Utente di HTML.it L'avatar di lukezz
    Registrato dal
    Feb 2010
    Messaggi
    494
    Da quello che vedo (pochissimo visto la formattazione del post) sostituisci:

    $mail_sent = mail($email,$oggetto,$contenuto_email, 'From: '.$email);
    con
    $mail_sent = mail($destinatario,$oggetto,$contenuto_email, 'From: '.$email);

    Al posto di $email dovrebbe andare $destinatario

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2003
    residenza
    Prato
    Messaggi
    687
    Scusami sono abbastanza ignorante riguardo il php... Sto inserendo un form esterno perché con wordpress non va... Mi puoi indicare per favore in quali dei tre pezzi di codice ci sono queste cose da cambiare?

    Thank's..

  6. #6
    Utente di HTML.it L'avatar di lukezz
    Registrato dal
    Feb 2010
    Messaggi
    494
    Su contatti.php sull'invio della mail (c'è il commento //invia l'email)

  7. #7
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Quote Originariamente inviata da Artgallery75 Visualizza il messaggio
    Ho riprovato e si vede sempre così..
    Non devi fare solo copia/incolla, altrimenti è logico che il risulatato è sempre lo stesso.
    Se il codice viene visualizzato male, devi rimettere a posto il codice riga per riga dall'editor del form (ritorni a capo ed indentazione).

    Di solito questo problema dipende dalle impostazioni dell'editor che usi sul tuo pc per scrivere il codice, in particolare la codifica usata per i ritorni a capo (Windows/Unix).

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2003
    residenza
    Prato
    Messaggi
    687
    Ho provato così l'email non arriva neanche...

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2003
    residenza
    Prato
    Messaggi
    687
    Ho fatto anche questo e niente...

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.