• Moderatore

    Ciao Elena sei sicura che non siano finite nella cartella di spam??


  • User

    In effetti mi sono arrivate tutte insieme circa tre ore dopo la prova! Però... devo aver sbagliato qualcosa (e infatti sto smadonnando non poco) perchè il testo arrivato è solo:
    Nome:
    Email:
    Messaggio:

    e in un caso è :

    Nome: prova
    Email: prova chiocciola prova.it
    Messaggio: Messaggio di prova

    PHP questo sconosciuto... ma prima o poi ce la farò anche io!!!


  • User

    Nome: vuota
    Email: vuota
    Messaggio: vuota

    Potrebbe stare a significare che le variabili trasmesse dalla form non vengono valorizzate (potrebbero mancare $_POST, $_GET eccetera). Se posti lo script (form, script php e pagina di conferma) magari ci si da un occhio


  • User

    Grazie per la comprensione!

    Allora, il form:

    <form method="post" action="contactengine.php">
    <label for="Nome">Nome:</label>
    <input type="text" name="Nome" id="Nome" />
    <label for="Email">Email:</label>
    <input type="text" name="Email" id="Email" />
    <label for="Messaggio">Messaggio:</label>
    <textarea name="Messaggio" rows="20" cols="20" id="Messaggio"></textarea>
    <input type="submit" name="submit" value="invia" class="submit-button" />
    </form>


    Il file contactengine.php:

    <?php

    $EmailFrom = "mia mail";
    $EmailTo = "mia mail";
    $Subject = "Modulo inviato da sito CARRARA90";
    $Nome = Trim(stripslashes($_POST['Nome']));
    $Email = Trim(stripslashes($_POST['Email']));
    $Messaggio = Trim(stripslashes($_POST['Messaggio']));

    // validation
    $validationOK=true;
    if (!$validationOK) {
    print "<meta http-equiv="refresh" content="0;URL=error.htm">";
    exit;
    }

    // prepare email body text
    $Body = "";
    $Body .= "Nome: ";
    $Body .= $Nome;
    $Body .= "\n";
    $Body .= "Email: ";
    $Body .= $Email;
    $Body .= "\n";
    $Body .= "Messaggio: ";
    $Body .= $Messaggio;
    $Body .= "\n";

    // send email
    $success = mail($EmailTo, $Subject, $Body, "From: <$EmailFrom>");

    // redirect to success page
    if ($success){
    print "<meta http-equiv="refresh" content="0;URL=contactthanks.php">";
    }
    else{
    print "<meta http-equiv="refresh" content="0;URL=error.htm">";
    }
    ?>


    Il file di risposta mail.php (che non funziona in quanto mai arrivata):

    <?php

    $msg = "Sender's Full Name:\t$sender_name\y";
    $msg .= "Sender's E-Mail:\t$sender_email\y";
    $msg .= "Sender's Message:\t$sender_message\y";

    // use two newline characters at the end of your content,
    // or to insert additional spacing

    $mailheaders = "From: My Web Site <carrara90> \n";
    $mailheaders .= "Reply-To: $sender_email\n\n";

    mail("carrara90", "Contact Form", $msg, $mailheaders);

    echo "<H1 align=center>Grazie, $sender_name</h1>";
    echo "<p align=center>Vi contatteremo appena possibile.</p>";

    ?>


    La pagina di conferma viene visualizzata correttamente ad ogni invio.

    Prego non inorridire!!! :giggle:

    Grazie ancora,
    elena


  • User

    Ok ci do un occhio. Appena finito ti rispondo editando questo post.


  • User

    @websources said:

    Ok ci do un occhio. Appena finito ti rispondo editando questo post.

    💋


  • User

    Il ritardo dell'invio è dovuto alla funzione mail() e al server sul quale poggia il sito. Riguardo il testo vuoto, è evidentemente perché $Nome, $Email e $Messaggio sono vuoti o NULL al momento dell'aggiunta a $Body. Per debuggare un pò, leva i reindirizzamenti, metti tutto in var_dump() e controlla in quale punto le informazioni non procedono.
    Se proprio non ne esci, trasforma tutto temporaneamente in GET e vedi se nell'URL vengono passate le 3 variabili senza problemi

    (PS. ho dato solo un'occhiata rapida. magari alla fine si scopre che è un punto e virgola mancante 😄 )


  • User

    No è qualcosa di peggio.

    Dopo 30 mai inviare correttamente dal mio sito al mio indirizzo di posta e con var_dump($seccess) che dava true ha comiciato a dare false e non sta mandando più nulla.


  • User

    Premetto che ho "ereditato" questo sito creato da qualcun altro e abbandonato per rimetterlo in piedi. Il form era già presente nel vecchio sito, l'ho ricopiato paro paro nella nuova pagina contatti. Evidentemente non è mai stato testato dal creatore. 😮
    Ho provveduto a fare un bel reset ricominciando da capo e affidandomi alla buena suerte!
    Grazie per la vostra disponibilità... e scusate per avervi fatto perdere tempo! (ora però vado a testare se quello nuovo che ho fatto funziona :surprised: )

    elena


  • User

    La mail di risposta dubito possa mai funzionare visto da nessuna parte viene incluso il file mail.php che dunque è come se non ci fosse.

    Lo script contactengine.php l'ho riscritto così e adesso va. Come mittente nel client di posta visualizza la mail del mittente, il soggetto che hai impostato tu e nel corpo lo stesso soggetto, il nome del mittente e il suo messaggio.

    Fammi sapere se serve altro.

    $EmailTo = "tua_mail_destinatario";
    $Subject = "Modulo inviato dal sito Carrara90";
    $Nome = "Nome: " . trim( stripslashes( $_POST['Nome'] ) ) . "\n";
    $From = trim( stripslashes( $_POST['Email'] ) );
    $Messaggio = "Messaggio: " . stripslashes( $_POST['Messaggio'] );

    $Body = $Nome . $Messaggio;
    $success = mail( $EmailTo, $Subject, $Body, "From: $From" );
    if ( $success == true ) :
    print "<meta http-equiv="refresh" content="0;URL=contactthanks.php">";
    else:
    print "<meta http-equiv="refresh" content="0;URL=error.htm">";
    endif;

    Nel testo del messaggio meglio non levare gli spazi. Immagina se dovessi leggere un messaggio di questo tipo: "CiaomichiamoStefanoequestomessaggioèperottenereinformazionisuquesto,quello,su,giù,sotto,sopraperchèsonoiniteressatoatantebellissimecosechemipiacciono".

    Che casino vero?


  • User

    Grazie di tutto ragazzi!
    💋 :ciauz: