-
[php] errore form mail
aiuto! dando un occhiata in giro ho cercaro di creare un form per l'invio delle email alla mia casela di posta, ma non funziona:crycry: ho cercato nel forum ma a quanto pare anche se sembra semplice hanno difficoltà un pò tutti i principianti.
Quando provo a scrivere un messaggio di prova mi dice che manca un file, ma non sò di che file parla!!! sapreste dirmi dove ho sbagliato?
-
-
già letto,grazie ma non mi è servito
-
Non sono sicuro di poterti aiutare...
ma qualche info in più sul codice che hai scritto aiuterebbe molto ^^
-
Infatti... posta codice ed errore.
-
questa è la pagina in htm che contiene il form per inviare i dati
Codice HTML:
<html>
<body>
<form name="mail" action="contatti.php" method="post">
Il tuo nome: <input type="text" name="nome"><br>
La tua e-mail: <input type="text" name="mitt"><br>
<textarea name="text" cols="25" rows="5">Inserisci il testo del messaggio</textarea>
<input type="hidden" name="dest" value="esempio@yahoo.it">
<input type="hidden" name="ogg" value="Mail dal sito"><br>
<input type="submit" value="invia">
</form>
</body>
</html>
questo è il codice in php
Codice PHP:
<?PHP
#Specifica la tua mai e quella del destinatario
$mail_mittente = "mittente@sito.com";
$mail_destinatario = "fighter-one@hotmail.com";
#specifica il subject ed il body della mail
$mail_oggetto = "Messaggio di prova";
$mail_corpo = "Questo è un messaggio di prova per testare la mia applicazione";
if (mail($mail_destinatario, $mail_oggetto, $mail_corpo, "From: $mail_mittente"))
echo "Messaggio inviato con successo a $mail_destinatario";
else
echo "Errore. Nessun messaggio inviato.";
?>
ho sistemato la cosa più importante, cioè che adesso spedisce le mail (il codice in php andava in un file diverso da quello in cui cè il form :oops: .
Ora ci sono diversi ritocchi da fare:
1° la scritta "messaggio inviato con successo a...."spunta sotto il form :shock:
2° sempre la stessa scritta, appare pure dopo l'invio del messaggio in una pagina bianca (dovrei farla sembrare più attinente al sito) e si blocca, come posso far tornare indietro il navigatore? in questo modo lui può solo cliccare il tasto indietro del brawser
3° errori vari o codici superflui perchè ho copiato alcuni esempi dalla rete per rendermi conto di come funziona, chiaramente ci sono stringhe che forse non mi servono o impostate male (dovrei fare un pò di pulizia)
-
Se la pagina contiene del codice PHP (come in questo caso) per fa si che funzioni l'estensione deve essere obbligatoriamente .php, prova cosi:
Codice PHP:
<html>
<head>
<title>Untitled</title>
</head>
<body>
<?php if(empty($_POST['text'])) { ?>
<form name="mail" action="contatti.php" method="post">
Il tuo nome: <input type="text" name="nome"><br>
La tua e-mail: <input type="text" name="mitt"><br>
<textarea name="text" cols="25" rows="5">Inserisci il testo del messaggio</textarea>
<input type="hidden" name="dest" value="esempio@yahoo.it">
<input type="hidden" name="ogg" value="Mail dal sito"><br>
<input type="submit" value="invia">
</form>
<?php
}else{
#Specifica la tua mai e quella del destinatario
$mail_mittente = "mittente@sito.com";
$mail_destinatario = "fighter-one@hotmail.com";
#specifica il subject ed il body della mail
$mail_oggetto = "Messaggio di prova";
$mail_corpo = "Questo è un messaggio di prova per testare la mia applicazione";
if (mail($mail_destinatario, $mail_oggetto, $mail_corpo, "From: $mail_mittente"))
echo "Messaggio inviato con successo a $mail_destinatario";
else
echo "Errore. Nessun messaggio inviato.";
}
?>
</body>
</html>
-
Per farlo funzionare coni dati inseriti dall'utente e non quelli inseriti per la prova e con un allert javascript che segnala se la mail è stata inviata correttamente o meno (sono quei piccoli dettagli che hanno il loro perchè :lol:)
Codice PHP:
<html>
<head>
<title>Untitled</title>
</head>
<body>
<form name="mail" action="contatti.php" method="post">
Il tuo nome: <input type="text" name="nome"><br>
La tua e-mail: <input type="text" name="mittente"><br>
oggetto: <input type="text" name="oggetto"><br>
<textarea name="text" cols="25" rows="5">Inserisci il testo del messaggio</textarea>
<input type="submit" value="invia">
</form>
<?php
if(!empty($_POST['text'])) {
#Specifica la tua mai e quella del destinatario
$mail_mittente = $_POST['mittente'];
$mail_destinatario = "fighter-one@hotmail";
#specifica il subject ed il body della mail
$mail_oggetto = $_POST['oggetto'];
$mail_corpo = $_POST['text'];
//aggiungi una sorta di firma in calce alla mail utilizzando il nome inserito
$mail_corpo .= "\n\n\nFrom: " . $_POST['nome'];
if (mail($mail_destinatario, $mail_oggetto, $mail_corpo, "From: $mail_mittente")){
echo "<script language='JavaScript'>";
echo "alert('Messaggio inviato con successo a $mail_destinatario')";
echo "</script>";
} else{
echo "<script language='JavaScript'>";
echo "alert('Errore. Nessun messaggio inviato.')";
echo "</script>";
}
}
?>
</body>
</html>
-
per utilizzare questo script devo modificare anche il form html giusto? (ancora mi viene un pò complicato decodificare tutte le stringhe del php leggendole...un pò di pratica scusate,l'ignoranza)