ilpuntotecnicoeadsl.com
30 Luglio 2010, 19:01 *
Benvenuto, Visitatore. Per favore, effettua il login o registrati.
Hai perso la tua email di attivazione?

Login con username, password e lunghezza della sessione

News: Aggiornato il forum alla versione 1.1.11 di SMF.
 
   Home   Help Ricerca Calendario Login Registrati  
Pagine: [1]
  Stampa  
Autore Topic: PHP: compilazione form mail  (Letto 1311 volte)
0 Utenti e 1 Utente non registrato stanno visualizzando questa discussione.
BiOs
Membro Giovane
**
Offline Offline

Posts: 64


biosulfur@hotmail.it
WWW Email
« 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:
<?
//Edita la variabile $mia_mail con il tuo indirizzo di posta elettronica
$mia_mail = "xxxxxx@miamail.it";
//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("^[^@ ]+@[^@ ]+\.[^@ \.]+$", $_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\">";
    }
}
?>
Loggato

Più passa il tempo, meno ho voglia e meno ho voglia, meno mi passa il tempo!!!
magnus1
Nuovo Iscritto
*
Offline Offline

Posts: 4


« 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
Loggato
Taskman
Administrator
Esperto
*****
Offline Offline

Posts: 723



« Risposta #2 il: 19 Gennaio 2009, 23:38 »

Abbiamo risolto così:

Codice:
<?php

//Edita la variabile $mia_mail con il tuo indirizzo di posta elettronica
$mia_mail "xxxxxx@miamail.it";

//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("^[^@ ]+@[^@ ]+\.[^@ \.]+$"$_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\">";
    }
}
?>
Loggato

Pirelli Discus™ Multiplay Access Gateway (DRG A226G), Alice 7 Mega
BiOs
Membro Giovane
**
Offline Offline

Posts: 64


biosulfur@hotmail.it
WWW Email
« 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!
Loggato

Più passa il tempo, meno ho voglia e meno ho voglia, meno mi passa il tempo!!!
Pagine: [1]
  Stampa  
 
Salta a:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.11 | SMF © 2006-2008, Simple Machines LLC
Traduzione Italiana a cura di SMItalia
XHTML 1.0 valido! CSS valido!