Creare form contatti con php

Barbara72

Nuovo Utente
6 Set 2011
14
0
0
Ciao a tutti,
sto cercando di creare da giorni un form contatti per il mio sito, ma continuo ad avere problemi di visualizzazione dei dati inseriti, al ricevimento della mail.
Ecco il codice:
PHP:
<?php

//Qui va inserito il mio indirizzo e-mail
$to = "barbara@...........com";

//Recupero tutte le variabili
	
	$nome = $_POST['nome'];
	$cognome = $_POST['cognome'];
	$ragione_sociale = $_POST['ragione'];
	$mail = $_POST['mail'];
	$citta = $_POST['città'];
	$telefono = $_POST['telefono'];
	$oggetto = $_POST['oggetto'];
	$text = $_POST['messaggio'];
	$ip = $_SERVER['REMOTE_ADDR'];
	
//Creazione del mesaggio da inviare
$message = "Hai ricevuto una e-mail da: ".$nome.", ".$cognome.", ".$ragione_sociale.".<br/>";
$message = "Recapiti mittente: ".$citta.", ".$telefono.",  ".$mail.".<br />";
$message .= "Messaggio: <br />".$text."<br /><br />";
$message .= "IP: ".$ip."<br />";
$headers = "From: $mail \n";
$headers .= "Reply-To: $mail \n";
$headers .= "MIME-Version: 1.0 \n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1 \n";

//Rendere i campi obbligatori
if (trim($nome)=="") {
 print "Tutti i campi del form sono obbligatori...Inserisci il nome, grazie";
 } elseif (trim($cognome)=="") {
 print "Tutti i campi del form sono obbligatori...Inserisci il cognome, grazie";
 } elseif (trim($ragione_sociale)=="") {
 print "Tutti i campi del form sono obbligatori...Inserisci la ragione sociale, grazie";
 } elseif (trim($telefono)=="") {
 print "Tutti i campi del form sono obbligatori...Inserisci il telefono, grazie";
 } elseif (trim($mail)=="") {
 print "Tutti i campi del form sono obbligatori...Inserisci l'indirizzo e-mai grazie";
 } elseif (trim($oggetto)=="") {
 print "Tutti i campi del form sono obbligatori...Torna indietro e inserisci l'oggetto del messaggio!! Grazie!!";
 }
 
 else {

//Se l'e-mail viene spedita correttamente, compare un messaggio di avvenuto invio
 if(mail($to, $oggetto,$message, $headers)){
	echo "<p>Messaggio inviato con successo</p>";
}

}

?>

1) Quando ricevo la mail non visualizzo questi dati (nome, cognome, ragione sociale):
PHP:
$message = "Hai ricevuto una e-mail da: ".$nome.", ".$cognome.", ".$ragione_sociale.".<br/>";

Visualizzo invece telefono e mail:
PHP:
$message = "Recapiti mittente: ".$citta.", ".$telefono.",  ".$mail.".<br />";

... e naturalmente anche il testo del messaggio.

2) Cercando nel vostro forum ho trovato inoltre vari codici interessanti che potrebbero completare il mio. Mi chiedo però se sia giusto inserire questo o se nel mio codice c'è già magari scritto in modo diverso:

PHP:
// dati utente che compila il form (ip ecc. ecc) 
$auth = date("Y-m-d")." : ".$_SERVER['HTTP_REFERER']." : ".$_SERVER['REMOTE_ADDR']." : ".$_SERVER['HTTP_USER_AGENT'];

Vi ringrazio molto per la pazienza. Probabilmente avrete risposto a quesiti come i miei centinaia di volte, ho provato a leggere i messaggi di altri utenti, ho fatto dei collage di codici php ma avendo una conoscenza nulla di PHP non riesco a trovare una soluzione.
Confido in un aiuto dal forum e accetto consigli.
Grazie
Barbara
 
Ultima modifica di un moderatore:
ciao
intanto l'errore: manca un punto di concatenamento

PHP:
//.....
//Creazione del mesaggio da inviare
$message = "Hai ricevuto una e-mail da: ".$nome.", ".$cognome.", ".$ragione_sociale.".<br/>";
$message .= "Recapiti mittente: ".$citta.", ".$telefono.", ".$mail.".<br />";//qui manca il punto
//ecc....

per il resto si puoi mettere anche gli altri dati
es, in coda al message

PHP:
//.......
$message .="----------------------------<br />dati mittente<br />";
$message .= date("Y-m-d")." : ".$_SERVER['HTTP_REFERER']." : ".$_SERVER['REMOTE_ADDR']." : ".$_SERVER['HTTP_USER_AGENT'];
//....



p.s.
quando scrivi del codice racchiudilo tra gli appositi tag (seconda riga formattazione post ultime tre iconcine)
 
Ultima modifica:
Ciao,
grazie per la risposta rapida. Sarà ridicolo ma non so quale sia il punto di concatenamento (è il punto e virgola? Quello c'è.): il PHP è per me una lingua sconosciuta che stò cercando di imparare.
Potresti scrivermi quello che intendi per punto mancante?
Grazie
 
ciao
il punto di concatenamento è quello davanti all'uguale
due esempi
1)
$messaggio="pinco";
$messaggio="pallo";
qui non ho fatto il concatenamento quindi alla fine in $messaggio troverò pallo
2)
$messaggio="pinco";
$messaggio.="pallo";
qui ho fatto il concatenamento (il punto davanti a =) quindi alla fine in $messaggio troverò pincopallo

il punto e virgola rappresenta la fine di una istruzione (è obbligatorio in php)
 

Discussioni simili