Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1

    richiesta inviata correttamente da form

    Buongiorno, mi chiamo adriano e sono un nuovo iscritto al forum. Come fanno molti, avendo visitato parecchie pagine del forum, mi sono iscritto per chiedere il vostro aiuto su un problema che ho. In pratica sto costruendo un sito con FPE ed in una pagina ho inserito il form, dopo aver compilato i vari campi invio la mail che parte regolarmente ed arriva a destinazione. Il prolema è che vorrei apparisse la dicitura "messaggio inviato correttamente", ma ciò nonostante abbia provato ad inserire vari codici non funziona. Per maggior chiarezza inserisco sia l'html del form sia il php con l'ultima modifica fatta, ma che non dà il risultato voluto.
    Spero che qualcuno possa aiutarmi.
    Grazie a tutti.
    <html>

    <head>
    <meta http-equiv="Content-Language" content="it">
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>Nuova pagina 1</title>
    </head>

    <body>



    Nome e Cognome
    <input type="text" name="T1" size="20"></p>



    Via
    <input type="text" name="T2" size="20"></p>


    Località
    <input type="text" name="T3" size="20"></p>


    CAP
    <input type="text" name="T4" size="8"></p>


    Nazione
    <input type="text" name="T5" size="20"></p>


    Telefono
    <input type="text" name="T6" size="20"> </p>



    Email
    <input type="text" name="T7" size="20"></p>


    Data Arrivo
    <input type="text" name="T8" size="20"></p>


    Data Partenza
    <input type="text" name="T9" size="20"> </p>


    Numero Persone
    <input type="text" name="T10" size="7"></p>





    </body>

    </html>

    Poi il php
    <?php
    $oggi = date("j F Y G:i");
    $sito = "www.uclaselce.it";
    $ip = "$_SERVER";
    $to = "camillacamere@gmail.com";
    $soggetto = "Contatto dal $sito";
    if(trim($_POST['nome']) == "" OR trim($_POST['email']) == "" OR trim($_POST['messaggio']) == "") {
    echo "<font color=\"#FF0000\" face=\"comic sans ms\" size=\"2\">Tutti i campi sono obbligatori</font>"; }
    else {
    $body = "Modulo inviato il $oggi da $ip - $browser \n\n";
    $body .= "Nome: $_POST[nome] \nEmail: $_POST[email] \nMessaggio: $_POST[messaggio]";
    mail("$to","$soggetto","$body");}
    {
    echo "<h1>Messaggio inviato correttamente!</h1>\n";
    }
    ?><?php header('Location: contatti.htm'); ?>
    Ciao Adriano

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    O hai commesso qualche errore facendo copia/incolla o il codice è proprio sbagliato.
    Nella pagina php hai
    Codice PHP:
    if(trim($_POST['nome']) == "" OR trim($_POST['email']) == "" OR trim($_POST['messaggio']) == "") {
        echo 
    "<font color=\"#FF0000\" face=\"comic sans ms\" size=\"2\">[b]Tutti i campi sono obbligatori[/b]</font>";
    }
    else {
        
    $body "Modulo inviato il $oggi da $ip - $browser \n\n";
        
    $body .= "Nome: $_POST[nome] \nEmail: $_POST[email] \nMessaggio: $_POST[messaggio]";
        
    mail("$to","$soggetto","$body");
    }
    {
        echo 
    "<h1>Messaggio inviato correttamente!</h1>\n";

    echo "<h1>Messaggio inviato correttamente!</h1>\n";
    è racchiuso tra due parentesi graffe che non hanno senso, inoltre come puoi dire se l'email è stata correttamente inviata se non controlli il valore ritornato dalla funzione mail()?

    Codice PHP:
    else {
        
    $body "Modulo inviato il $oggi da $ip - $browser \n\n";
        
    $body .= "Nome: $_POST[nome] \nEmail: $_POST[email] \nMessaggio: $_POST[messaggio]";
        if(
    mail("$to","$soggetto","$body")) { // gli apici non servono, li puoi togliere
            
    echo "<h1>Messaggio inviato correttamente!</h1>\n";
        }


  3. #3
    ma il "form" che hai postato che legame ha con il codice PHP?
    perchè a guardarlo così, escludendo il fatto che non è un vero form (manca anche il tasto submit), sembrano del tutto estranei.

  4. #4
    Grazie per la risposta, però mi segnala errore.
    ripropongo la parte di codice, forse sarà il dopo pranzo, sarà che non sono tanto esperto, ma non riesco proprio a capire quale può essere il problema.

    questo è il codice php corretto:
    else {
    $body = "Modulo inviato il $oggi da $ip - $browser \n\n";
    $body .= "Nome: $_POST[nome] \nEmail: $_POST[email] \nMessaggio: $_POST[messaggio]";
    if(mail("$to","$soggetto","$body")) {
    echo <h1>Messaggio inviato correttamente!</h1>\n;
    }
    }

    Grazie ancora
    Ciao Adriano

  5. #5
    posta anche l'errore

  6. #6
    Originariamente inviato da google01
    ma il "form" che hai postato che legame ha con il codice PHP?
    perchè a guardarlo così, escludendo il fatto che non è un vero form (manca anche il tasto submit), sembrano del tutto estranei.
    Hai ragione scusate, ma ho preso il form sbagliato, ora lo riposto.

    html>
    <head>
    <title>Titolo Pagina</title>
    <script language="javascript" type="text/javascript">
    function Modulo() {
    if ((document.modulo.nome.value == "")) {
    alert("Il campo Nome è obbligatorio");
    document.modulo.nome.focus();
    return false;
    }
    else if ((document.modulo.email.value == "")) {
    alert("Il campo Email è obbligatorio");
    document.modulo.email.focus();
    return false;
    }
    else if ((document.modulo.messaggio.value == "")) {
    alert("Il campo Messaggio è obbligatorio");
    document.modulo.messaggio.focus();
    return false;
    }
    else {
    document.modulo.action = "mailto.php";
    document.modulo.submit();
    }
    }
    </script>
    </head>
    <body>
    <form method="post" name="modulo" action="mailto.php">
    <table border="0" bgcolor="#EEEEEE" cellspacing="2" cellpadding="2">
    <tr>
    <td>Nome:</td>
    <td><input type="text" size="36" name="nome" maxlength="30"></td>
    </tr>
    <tr>
    <td>Email:</td>
    <td><input type="text" size="36" name="email" maxlength="30"></td>
    </tr>
    <tr>
    <td>Messaggio:</td>
    <td><textarea rows="7" cols="30" name="messaggio"></textarea></td>
    </tr>
    <tr>
    <td></td>
    <td><input type="button" value="Invia" onClick="Modulo()"> <input type="reset" value="Reset"></td>
    </tr>
    </table>
    </form>
    </body>
    </html>
    Scusate ancora
    Ciao Adriano

  7. #7
    Originariamente inviato da google01
    posta anche l'errore
    Eccolo
    Parse error: syntax error, unexpected '<' in D:\Inetpub\webs\uclaselceit\mailto.php on line 13
    Ciao Adriano

  8. #8
    mancano i doppi apici nell'ultimo echo
    Codice PHP:
    ...
    else {
    $body "Modulo inviato il $oggi da $ip - $browser \n\n";
    $body .= "Nome: $_POST[nome] \nEmail: $_POST[email] \nMessaggio: $_POST[messaggio]";
    if(
    mail("$to","$soggetto","$body")) { 
    echo 
    "<h1>Messaggio inviato correttamente!</h1>\n";
    }


  9. #9
    Ok adesso l'errore non lo evdenzia più. la mail parte, ma non vedo però la conferma di lettura. Non vorrei tediarvi oltre e abusare della vostra pazienza, spero di riuscirci in qualche modo.
    Grazie ancora.
    Ciao Adriano

  10. #10
    una possibile soluzione potrebbe essere di inserire nella mail un link univoco (ad una tua pagina php) che, una volta visitato, registra l'avvenuta lettura della mail (ed eventulamente invia una mail di conferma al tuo account).
    un po' come accade nelle mail di conferma di iscrizione ai forum.

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.