Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Form Mail

  1. #1

    Form Mail

    Salve ragazzi,
    nel mio sito ho inserito un Form Mail in php, che alla fine del processo di invio, apre una pagina di ringraziamento.
    Mi piacerebbe che nella pagina di ringraziamento apparisse il nome di chi mi ha inviato la mail.
    Attualmente appare così:
    Grazie, il tuo messaggio è stato inviato.
    Vorrei farlo apparire così:
    Grazie, "$nome" il tuo messaggio è stato inviato.
    Come faccio a richiamare la variabile "$nome" dal mio file .php?
    Grazie, a presto.

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2003
    Messaggi
    2,008
    recuperi il campo nome per inserirlo, se la pagina del ringrazioamento è la stessa che invia la mail e nome è valore del campo nome ed i dati li trasmette col metodo post il campo lo recuperi cosi $nome=$_POST['nome']

    se invece si viene indirizzati alla pagina di ringragiamento, nel indirizzo in header("location:.....
    apicichi una variabile tipo ringraziamento.php?nome=$_POST['nome'] che requperi nella pagina ringraziamento.php con $nome=$_GET['nome']

    spero di essermi spiegato

    dimenticavo nella paina ringraziamento.php
    devi scrivrere
    Grazie <?=$nome?>, ...............

  3. #3
    Le pagine sono 2.
    La prima contiene il "form":

    <form action="send.php" method="post">


    <div>Compila il modulo qui sotto per inviarmi una e-mail.</div>


    Il tuo nome:*


    <input type="text" size="32" name="nome"/>


    Il tuo indirizzo e-mail:*


    <input type="text" size="32" name="mail"/>


    Oggetto:


    <input type="text" size="32" name="oggetto" />


    Messaggio:*


    <textarea cols="30" rows="7" name="messaggio"></textarea>


    <div>I campi contrassegnati con * sono obbligatori.</div>


    <input type="reset" value="Reset"/> <input type="submit" value="Invia"/>
    </form>


    Che utilizza il file "send.php" che risiede nella cartella del sito.

    <?php
    $receiverMail = "xxx@xxx.it";

    $nome = ltrim(rtrim(strip_tags(stripslashes($_POST['nome']))));
    $mail = ltrim(rtrim(strip_tags(stripslashes($_POST['mail']))));
    $messaggio = ltrim(rtrim(strip_tags($_POST['messaggio'])));
    $oggetto = ltrim(rtrim(strip_tags(stripslashes($_POST['oggetto']))));


    $msgformat = "Da: $nome\n Email: $mail \n\n Oggetto: $oggetto\n";

    // VALIDATION
    if(empty($nome) || empty($mail) || empty($messaggio)) {
    echo "<script type=\"text/javascript\">alert(\"I campi contrassegnati sono obbligatori!\"); history.go(-1)</script>";
    }
    elseif(!ereg("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $mail)) {
    echo "<script type=\"text/javascript\">alert(\"Indirizzo mail non valido!\"); history.go(-1)</script>";
    }
    else {
    mail($receiverMail,$msgformat, "$messaggio");
    header("Location: http://www.xxx.it/grazie.htm"); }
    ?>

    Che mi porta nella pagina "grazie.htm".


    <h3>Grazie,(qui vorrei far apparire la variabile $nome)il tuo messaggio &egrave; stato inviato.</h3>

    E' possibile farlo?
    Il problema è che la pagina "grazie.htm" non ha nessun collegamento con le altre due.
    Spero possiate aiutarmi.
    Grazie, a presto.

  4. #4
    Nella pagina di ringraziamento ho inserito il codice:
    Grazie <?=$nome?>, il tuo messaggio è stato inviato.
    Ma nel comando del file php:
    header("Location: http://www.xxx.it/grazie.htm"); come faccio a inviare la variabile?
    Mi spiego meglio, la pagina "grazie.htm" come fa a recuperare la variabile $nome?

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2003
    Messaggi
    2,008
    come ho detto prima se nn puoi modificare l estensione della pagina allora requpera la querystring can javascript

  6. #6
    Scusami, dimenticavo di dire che sono un principiante e che non so nemmeno cosa voglia dire "querystring can javascript".
    Naturalmente se cambio l'estensione dovrei modificare anche il contenuto della pagina!
    Vabbè se riuscissi a darmi altri suggerimenti te ne sarei grato, altrimenti lascierò la pagina così.
    Grazie.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2003
    Messaggi
    2,008
    se cambi estendione no il conenuto della pagina html lo vede come tale ma puoi usare anche script php

  8. #8
    1) modifica l'estensione della pagina grazie.php (l'html che vi è all'interno rimarrà valido)

    2) modifica il redirect così

    header("Location: http://www.xxx.it/grazie.php?nome=$nome");

    3) nella pagina grazie scrivi così
    <h1>Grazie <?php echo $_GET['nome']; ?>

  9. #9
    Ho seguito la tua guida.
    La mail mi arriva correttamente, ma la pagina "grazie.php" non si apre.
    Mi appare una pagina di errore.

  10. #10
    Utente di HTML.it L'avatar di vikey89
    Registrato dal
    Apr 2009
    Messaggi
    333
    Scusate se mi intrometto ma se fai cosi, apposta di avere 3 pagine per un form mail:
    Questa è la pagina invia:
    Codice PHP:
    <?php
    header 
    ('Refresh: 5; URL=index.html');    
    ?>

    <?php
    //indirizzo email
    $receiverMail    "tua@email.it";


    // pulizia dei dati inseriti
    $name    = ($_POST['name']);
    $cognome = ($_POST['cognome']);
    $email = ($_POST['email']);
    $tel = ($_POST ['tel']);
    $city = ($_POST ['city']);
    $subject = ($_POST['subject']);
    $msg = ($_POST['msg']);

    // lettura dell'indirizzo IP
    $ip getenv("REMOTE_ADDR");

    // formattazione del messaggio ( \n per le messe a capo )
    $messaggio ="<div style=\"margin-left: 10px;\"><h3> L'e-mail &egrave; stata inviata da: <font color=\"red\"><u>[b]$name $cognome[/b]</u></font>.</h3></div>

    <div style=\"background-color:#F93; width:250px; border: 1px solid #F60; margin-left: 10px; padding:5px;\"><font color=\"#000\" face=\"Georgia, Times New Roman, Times, serif\" size=\"2\">Dati cliente:</font></div>

    <div style=\"margin-left: 10px;\">
    [b]Nome:[/b] 
    $name 

    [b]Cognome:[/b] 
    $cognome 

    [b]E-mail:[/b] 
    $email 

    [b]Telefono: [/b] 
    $tel 

    [b]Citt&agrave;:[/b] 
    $city 

    [b]IP:[/b] 
    $ip 


    [b]Messaggio: [/b] 
     
    $msg 

     
    <hr width=\"600\" color=\"#000\"></div>"
    ;

    $headers = array ();
    $headers [] = 'MIME-Version: 1.0';
    $headers [] = 'Content-type: text/html; charset=iso-8859-1';
    $headers [] = 'Content-Transfer-Encoding: 7bit';
    $headers [] = 'From: ' $email;



    // verifica campi obbligatori
    if(empty($name) || empty($cognome) || empty($email)|| empty($tel) || empty($city) || empty($subject) || empty($msg)) {
        echo 
    "<div class=\"messaggio_errore\">";
        echo 
    "<div class=\"testo\">";
        echo 
    "<h3>Il messaggio non &egrave; stato inviato</h3>

    <a href=\"javascript:history.back()\">Torna indietro</a> Tutti i campi sono obbligatori</p>"
    ;
        echo 
    "</div>";
        echo 
    "</div>";
    }
    // verifica indirizzo email
    elseif(!ereg("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$"$email)) {
        echo 
    "<div class=\"messaggio_errore\">";
        echo 
    "<div class=\"testo\">";
        echo 
    "<h3>Il messaggio non &egrave; stato inviato</h3>

    L'indirizzo email indicato non &egrave; valido!</p>"
    ;
        echo 
    "</div>";
        echo 
    "</div>";
    }
    else {
      
    // invio del messaggio
        
    mail($receiverMail,  $subject$messaggiojoin("\r\n"$headers));
        echo 
    "<div class=\"messaggio\">";
        echo 
    "<div class=\"testo\">";
        echo 
    "

    Grazie per averci Contattato. Riceverai una risposta il prima possibile a 
     [b]
    $email[/b].
    <h3>Stai per essere rindirizzato alla pagina principale</h3></p>"
    ; } //metti la variabile che ti interessa, apposta di $email
        
    echo "</div>";
        echo 
    "</div>";
    ?>

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 © 2024 vBulletin Solutions, Inc. All rights reserved.