PHP: compilazione form mail

  • 3 Risposte
  • 6166 Visite

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline BiOs

  • Membro Giovane
  • **
  • 65
  • Sesso: Maschio
    • http://biosulfur.altervista.org
PHP: compilazione form mail
« il: 19 Gennaio 2009, 13:41 »
Salve gente. Avrei un piccolo problemino con il php. Non sono molto pratico in merito. Vi spiego subito il mio ostacolo:

Ho compilato un form mail da inserire su un sitoweb, affichè gli utenti mi inviassero delle mail. Mi piacerebbe, che nella mail che mi arriva sulla mia casella di posta, comparirebbero tutti i campi compilati dall'utente, che sono nome cognome città oggetto, messaggio, professione, telefono ed età. Vedendo un po' in rete sono riuscito solo a ricevere nella mail che mi arriva, solo il messaggio. Mentre la mail del mittente e l'oggetto mi compaiono, diciamo, nelle proprietà della mail stessa. In poche parole vorrei che nel corpo/testo della mail, mi compariserro tutti i campi inseriti nel form della mia pagina web. Allego sotto codice php. Grazie mille anticipate.

Codice: [Seleziona]
<?
//Edita la variabile $mia_mail con il tuo indirizzo di posta elettronica
$mia_mail = "[email protected]";
//Informazioni del mittente che saranno visualizzate nella mail ricevuta
$mittente = $_POST['email'];
$headers  = "MIME-Version: 1.0\r\n";
$headers = "From: $mittente\r\n";
//Inizializza l'array degli errori
$errori = array();
if(empty($_POST['nome']) )
{
$errori[] = 'Non hai specificato il tuo nome';
}
if(empty($_POST['cognome']) )
{
$errori[] = 'Non hai scritto il tuo cognome';
}
if(empty($_POST['età']) )
{
$errori[] = 'Non hai scritto la tua età';
}
if(!is_numeric($_POST['età']) )
{
$errori[] = 'Non hai inserito un valore età valido';
}
if(empty($_POST['indirizzo']) )
{
$errori[] = 'Non hai scritto il tuo indirizzo';
}
if(empty($_POST['telefono']) )
{
$errori[] = 'Non hai scritto il tuo recapito telefonico';
}
if(!is_numeric($_POST['telefono']) )
{
$errori[] = 'Non hai inserito un numero telefonico valido';
}
if(!ereg("^[^@ ][email protected][^@ ]+\.[^@ \.]+$", $_POST['email']))
{
$errori[] = 'Devi inserire una mail valida';
}
if(empty($_POST['email']) )
{
$errori[] = 'Hai lasciato il campo e-mail vuoto';
}
if(empty($_POST['oggetto']) )
{
$errori[] = 'Non hai inserito nulla nel campo Oggetto';
}
if(empty($_POST['messaggio']) )
{
$errori[] = 'Non hai scritto alcun messaggio';
}
if(empty($_POST['professione']) )
{
$errori[] = 'Non hai scritto la professione';
}
if(empty($_POST['città']) )
{
$errori[] = 'Non hai scritto la città';
}
//Spedisce la mail in caso di controllo positivo
if(!$errori)
{
$subject = $_POST['nome'];
$message = $_POST['messaggio'];
mail($mia_mail, $subject, $message, $headers);
if(mail)
{echo "<h1>Messaggio inviato. Grazie per averci contattato. Tra 5 secondi verrai reindirizzato alla Home Page.</h1>";
redirect("index.html", 5);
}
}
// Errori nella compilazione del modulo
else {
echo "<h1>Attenzione : I seguenti errori sono stati riscontrati nella compilazione del modulo</h1><br />";
// I messaggi di errore saranno visualizzati in un ciclo foreach
foreach($errori as $error_message)
{
echo "$error_message <br />\n";
}
echo "Tornare <a href='javascript:history.back()'>indietro</a> e correggere.<br/>
Grazie";
}
function redirect($url, $seconds = FALSE)
{
    if (!headers_sent() && $seconds == FALSE)
    {
        header("Location: " . $url);
    }
    else
    {
        if ($seconds == FALSE)
        {
            $seconds = "0";
        }
        echo "<meta http-equiv=\"refresh\" content=\"$seconds;url=$url\">";
    }
}
?>
Più passa il tempo, meno ho voglia e meno ho voglia, meno mi passa il tempo!!!

Offline magnus1

  • Nuovo Iscritto
  • *
  • 4
Re:PHP: compilazione form mail
« Risposta #1 il: 19 Gennaio 2009, 23:12 »
prova a crearti una varibile temporanea in cui metti tutti i campi che ti interessano concatenandoli
e poi aggiungi il nome della variabile al corpo del del testo che invii via mail ,  per mandare a capo il testo tra i campi concatenati
basta che concateni (testo...)+"\n"+(testo...) , prova e fammi sapere .. Ciao

Offline Taskman

  • Ex-Staff
  • Esperto
  • *****
  • 697
  • Sesso: Maschio
Re:PHP: compilazione form mail
« Risposta #2 il: 19 Gennaio 2009, 23:38 »
Abbiamo risolto così:

Codice: [Seleziona]
<?php

//Edita la variabile $mia_mail con il tuo indirizzo di posta elettronica
$mia_mail "[email protected]";

//Informazioni del mittente che saranno visualizzate nella mail ricevuta
$mittente $_POST['email'];
$headers "From: $mittente\r\n";

//Inizializza l'array degli errori
$errori = array();

if(empty(
$_POST['nome']) )
$errori[] = 'Non hai specificato il tuo nome';

if(empty(
$_POST['cognome']) )
$errori[] = 'Non hai scritto il tuo cognome';

if(empty(
$_POST['età']) )
$errori[] = 'Non hai scritto la tua età';

if(!
is_numeric($_POST['età']) )
$errori[] = 'Non hai inserito un valore età valido';

if(empty(
$_POST['indirizzo']) )
$errori[] = 'Non hai scritto il tuo indirizzo';

if(empty(
$_POST['telefono']) )
$errori[] = 'Non hai scritto il tuo recapito telefonico';

if(!
is_numeric($_POST['telefono']) )
$errori[] = 'Non hai inserito un numero telefonico valido';

if(!
ereg("^[^@ ][email protected][^@ ]+\.[^@ \.]+$"$_POST['email']))
$errori[] = 'Devi inserire una mail valida';

if(empty(
$_POST['email']) )
$errori[] = 'Hai lasciato il campo e-mail vuoto';

if(empty(
$_POST['oggetto']) )
$errori[] = 'Non hai inserito nulla nel campo Oggetto';

if(empty(
$_POST['messaggio']) )
$errori[] = 'Non hai scritto alcun messaggio';

if(empty(
$_POST['professione']) )
$errori[] = 'Non hai scritto la professione';

if(empty(
$_POST['città']) )
$errori[] = 'Non hai scritto la città';

//Spedisce la mail in caso di controllo positivo
if(!$errori)
{

$subject $_POST['oggetto'];

$message "";
$message .= "Nome: "$_POST['nome'] . "\r\n";
$message .= "Cognome: "$_POST['cognome'] . "\r\n";
$message .= "Eta: "$_POST['eta'] ."\r\n";
$message .= "Indirizzo: "$_POST['indirizzo'] ."\r\n";
$message .= "Telefono: "$_POST['telefono'] . "\r\n";
$message .= "E-mail: "$_POST['mail'] . "\r\n";
$message .= "Professione: "$_POST['professione'] . "\r\n";
$message .= "Citta: "$_POST['citta'] . "\r\n";
$message .= "\r\n";
$message .= "Messaggio: "$_POST['messaggio'] . "\r\n";

if(mail($mia_mail$subject$message$headers)) {
echo "<h1>Messaggio inviato. Grazie per averci contattato. Tra 5 secondi verrai reindirizzato alla Home Page.</h1>";
redirect("index.html"5);
}

} else {

// Errori nella compilazione del modulo
echo "<h1>Attenzione : I seguenti errori sono stati riscontrati nella compilazione del modulo</h1><br />";

// I messaggi di errore saranno visualizzati in un ciclo foreach
foreach($errori as $error_message) {
echo "$error_message <br />\n";
}

echo "Tornare <a href='javascript:history.back()'>indietro</a> e correggere.<br/>Grazie";

}

function 
redirect($url$seconds FALSE)
{
    if (!
headers_sent() && $seconds == FALSE)
    {
        
header("Location: " $url);
    }
    else
    {
        if (
$seconds == FALSE)
        {
            
$seconds "0";
        }
        echo 
"<meta http-equiv=\"refresh\" content=\"$seconds;url=$url\">";
    }
}
?>
Pirelli Discus™ Multiplay Access Gateway (DRG A226G), Alice 7 Mega

Offline BiOs

  • Membro Giovane
  • **
  • 65
  • Sesso: Maschio
    • http://biosulfur.altervista.org
Re:PHP: compilazione form mail
« Risposta #3 il: 20 Gennaio 2009, 08:41 »
Grazie a tutti x la risposta.. spero che qst soluzione, sia d'aiuto anche ad altri utenti... grazie ancora!
Più passa il tempo, meno ho voglia e meno ho voglia, meno mi passa il tempo!!!