invio mail in unico script

  • Creatore Discussione Creatore Discussione atonyc
  • Data di inizio Data di inizio

atonyc

Utente Attivo
10 Dic 2008
67
0
0
Ciao a tutti, avrei necessità di unire due script per invio mail in un'unica pagina php, quello che vi posto è strutturato in una pagina form che manda i dati a un'altra pagina per l'invio della mail, come devo fare per unirli in un'unica pagina php?


From.php
Codice:
<html>
<body>
<form method="get" action="send.php">
Il tuo nome <input type="text" name="nomemittente"><br>
La tua e-mail <input type="text" name="emailmittente"><br>
Il nome del destinatario <input type="text" name="nomedestinatario"><br>
L'email del destinatario <input type="text" name="emaildestinatario"><br>
Cosa vuoi dirgli<br>
<textarea name="commenti" rows="7" cols="70"></textarea><br>
<input type="submit" value="Invia"> <input type="reset" value="cancella">
</form>
</body>
</html>




send.php
Codice:
<?php

if(!$risultato = ereg("^[^@ ]+@[^@ ]+\.[^@ \.]+$", $emaildestinatario)){
echo " Questa $emaildestinatario non è una email valida";
}else{ 
$messaggio=""; 
$messaggio .="Ciao <b>$nomedestinatario!!$nomemittente Ti ha mandato una email dal sito www.giorgiotave.it "; 
$destinatario= "$emaildestinatario";
$oggetto="Modulo inviato dal sito www.giorgiotave.it";
$intestazioni="From: $nomemittente<>\n";
$messaggio.="\n Ecco cosa ti ha scritto:\n $commenti";
$intestazioni.="Reply-To: $emailmittente";
mail($destinatario,$oggetto,$messaggio,$intestazioni);
echo "ecco cosa hai mandato<br>$messaggio";
echo "<br><a href=\"http://www.giorgiotave.it\">Torna alla Home</a>";
}
?>
 
ciao
non è difficile
copia sopra il form (metti il nome al pulsante di invio)
<form method="get" action="send.php">

la parte php mettendo un if per verificare l'invio

PHP:
<?php
if(isset($_POST['invio']){
//ec........
}
?>
<form method="get" action="send.php">
ecc.....
</form>

ti conviene poi (così non hai problemi nel nome della pagina) mettere

<form method="get" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>">

dimenticavo: ricordati che la pagina deve essere salvata con l'estensione .php e non .html
 
ciao
ecco qui brutalmente lo script.

PHP:
<?php
if(isset($_POST['invia'])){
	$tuo_nome=strip_tags($_POST['nomemittente']);
	$tua_email=strip_tags($_POST['emailmittente']);
	$destinatario=strip_tags($_POST['nomedestinatario']);
	$email_destinatario=strip_tags($_POST['emaildestinatario']);
	$testo=strip_tags($_POST['commenti']);
	if(!$risultato = ereg("^[^@ ]+@[^@ ]+\.[^@ \.]+$", $emaildestinatario)){
		echo "Questa $emaildestinatario non è una email valida";
	}else{
		$messaggio ="Ciao <b>$nomedestinatario!!$nomemittente </b>Ti ha mandato una email dal sito www.giorgiotave.it "; 
		$destinatario= "$emaildestinatario";
		$oggetto="Modulo inviato dal sito www.giorgiotave.it";
		$intestazioni="From: <$nomemittente>\n";
		$messaggio.="\n Ecco cosa ti ha scritto:\n $commenti";
		$intestazioni.="Reply-To: $emailmittente";
		if(mail($destinatario,$oggetto,$messaggio,$intestazioni)){
			echo "ecco cosa hai mandato<br>$messaggio";
			echo "<br><a href=\"http://www.giorgiotave.it\">Torna alla Home</a>";
		}else{
			echo "errore di trasmissione: riprova più tardi";
		}//fine if-else trasmissione
	}//fine if-else email valida
}//fine if submit
?>
<form method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>">
Il tuo nome <input type="text" name="nomemittente"><br>
La tua e-mail <input type="text" name="emailmittente"><br>
Il nome del destinatario <input type="text" name="nomedestinatario"><br>
L'email del destinatario <input type="text" name="emaildestinatario"><br>
Cosa vuoi dirgli<br>
<textarea name="commenti" rows="7" cols="70"></textarea><br>
<input type="submit" value="Invia" name="invia"> <input type="reset" value="cancella">
</form>

poi puoi chiamare la pag come vuoi, solo deve avere l'estensione .php

p.s.
guarda che un form fatto bene dovrebbe avere vari controlli sui dati immessi
 
funziona tutto alla grande solo una cosa una volta che si invia la mail apperi il messaggio di ciò che è stato postato ma sotto c'è ancora il form, come fare per evitare che si visualizzi nuovamente il form?
 
ciao
al posto di
PHP:
echo "<br><a href=\"http://www.giorgiotave.it\">Torna alla Home</a>";
potresti mettere
PHP:
echo "<meta http-equiv='Refresh' content='3; URL=nome_della_pagina.php'>";
in queto modo ritorna in automatico dopo 3 secondi alla pagina che vuoi.
puoi allungare il tempo varinado es content='5; e i secondi diventano 5.
e mettere subito prtina della graffa
PHP:
  }//fine if-else email valida 
}//fine if submit
il ritorno automatico al form eliminando i messaggi
PHP:
  }//fine if-else email valida
  echo "<meta http-equiv='Refresh' content='3; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
}//fine if submit
 

Discussioni simili