- Home
- Categorie
- Coding e Sistemistica
- PHP
- Problema con l'invio di un form via e-mail
-
Problema con l'invio di un form via e-mail
Ciao a tutti, sono abbastanza nuovo di php, sinora mi sono dato solo all'editazione, mai alla creazione di una pagina in questo formato, ma ora sto cominciando a creare e mi sono imbattuto in questo problema:
Ho creato un semplice form, in stile registrazione utente, con pulsante che mi invia una mail con i dati che sono stati inseriti, solo che la mail mi fa ricevere solo lo username.
E la mail arriva doppia...
Esempio: Mail al mio indirizzo, con oggetto "nuova registrazione" e corpo:
user = Pincopallo...e basta...
il codice è questo (prendete come validi i nomi dentro i POST, sono esatti li ho controllati)
[php]<?php
$mail = "la mia mail";
$oggetto ="nuova registrazione";
$testo = "user = ".$_POST["username"];
"psw = ".$_POST["password"];
"nome = ".$_POST["nome"];
"cap = ".$_POST["cap"];
"citta = ".$_POST["city"];
"email = ".$_POST["email"];
"provincia = ".$_POST["provincia"];
"nazione = ".$_POST["nazione"];
"indirizzo = ".$_POST["indirizzo"];
"telefono = ".$_POST["telefono"];mail($mail, $oggetto, $testo);
if(@mail($mail, $oggetto, $testo)) {echo "La mail e' stata inoltrata con successo.";
} else {
echo "Si sono verificati dei problemi nell'invio della mail.";
}
?>[/php]
Qualcuno mi sa dire qual'è il problema?
I punti ammetto che li ho messi piuttosto a caso, essendo, come ho scritto sopra, abbastanza un neofita, e non avendone ancora perfettamente compreso l'utilizzo.
Ringrazio in anticipo chi abbia la pazienza di aiutarmi!
-
Prova così:
[PHP]<?php
$mail = "la mia mail";
$oggetto .="nuova registrazione";
$testo .= "user = ".$_POST["username"]."\n";
$testo .="psw = ".$_POST["password"]."\n";
$testo .="nome = ".$_POST["nome"]."\n";
$testo .="cap = ".$_POST["cap"]."\n";
$testo .="citta = ".$_POST["city"]."\n";
$testo .="email = ".$_POST["email"]."\n";
$testo .="provincia = ".$_POST["provincia"]."\n";
$testo .="nazione = ".$_POST["nazione"]."\n";
$testo .="indirizzo = ".$_POST["indirizzo"]."\n";
$testo .="telefono = ".$_POST["telefono"]."\n";mail($mail, $oggetto, $testo);
if(@mail($mail, $oggetto, $testo)) {echo "La mail e' stata inoltrata con successo.";
} else {
echo "Si sono verificati dei problemi nell'invio della mail.";
}
?> [/PHP]
-
[...]
Mi dà questo errore:
Parse error: syntax error, unexpected T_CONCAT_EQUAL in livereg.php on line 5 (livereg.php è la pagina interessata)
-
Scusa, errore mio..
[PHP]$mail = "la mia mail";
$oggetto ="nuova registrazione";
$testo = "user = ".$_POST['username']."\n";
$testo .="psw = ".$_POST['password']."\n";
$testo .="nome = ".$_POST['nome']."\n";
$testo .="cap = ".$_POST['cap']."\n";
$testo .="citta = ".$_POST['city']."\n";
$testo .="email = ".$_POST['email']."\n";
$testo .="provincia = ".$_POST['provincia']."\n";
$testo .="nazione = ".$_POST['nazione']."\n";
$testo .="indirizzo = ".$_POST['indirizzo']."\n";
$testo .="telefono = ".$_POST['telefono']."\n";[/PHP]E poi, ecco perchè ti arriva due volte:
Sostituisci questo
[PHP]mail($mail, $oggetto, $testo);
if(@mail($mail, $oggetto, $testo)) {echo "La mail e' stata inoltrata con successo.";
} else {
echo "Si sono verificati dei problemi nell'invio della mail.";
}[/PHP]
Con questo:
[PHP]if(@mail($mail, $oggetto, $testo)) {
echo "La mail e' stata inoltrata con successo.";
} else {
echo "Si sono verificati dei problemi nell'invio della mail.";
}
[/PHP]Eccoti il codice finale:
[PHP]<?php
$mail = "la mia mail";
$oggetto ="nuova registrazione";
$testo = "user = ".$_POST['username']."\n";
$testo .="psw = ".$_POST['password']."\n";
$testo .="nome = ".$_POST['nome']."\n";
$testo .="cap = ".$_POST['cap']."\n";
$testo .="citta = ".$_POST['city']."\n";
$testo .="email = ".$_POST['email']."\n";
$testo .="provincia = ".$_POST['provincia']."\n";
$testo .="nazione = ".$_POST['nazione']."\n";
$testo .="indirizzo = ".$_POST['indirizzo']."\n";
$testo .="telefono = ".$_POST['telefono']."\n";if(@mail($mail, $oggetto, $testo)) {
echo "La mail e' stata inoltrata con successo.";
} else {
echo "Si sono verificati dei problemi nell'invio della mail.";
}
?>[/PHP]
-
Argh, ora non dà più errore, ma nell'iterazione mi ritorna "ci sono stati problemi nell'invio della mail" e forzandolo la mail non viene comunque inviata...
-
Prova a sostituire [php]@mail[/php] con [php]mail[/php]