Headers php mail

  • Creatore Discussione Creatore Discussione coguaro
  • Data di inizio Data di inizio

coguaro

Utente Attivo
28 Mar 2004
32
0
0
44
www.coguaro.it
io ho questo script
PHP:
<?php

if(isset($_POST['Email'])) {



function died($Error) {

        // your error code can go here

        echo "Siamo spiacenti, ma sembra che vi sia un errore con il modulo che hai inviato. ";

        echo "Questi errori vengono visualizzate sotto.<br /><br />";

        echo $Error."<br /><br />";

        echo "Si prega di tornare indietro e correggere questi errori.<br /><br />";

        die();

    }

    // validation expected data exists

    if(!isset($_POST['Oggetto']) ||

    	  !isset($_POST['Nome']) ||

        !isset($_POST['Cognome']) ||

        !isset($_POST['Email']) ||

        !isset($_POST['Messaggio'])){

        died('Siamo spiacenti, ma sembra che vi sia un problema con il modulo che hai inviato.');      

    }

$Oggetto_field = $_POST['Oggetto'];

$Nome_field = $_POST['Nome'];

$Cognome_field = $_POST['Cognome'];

$Telefono_field = $_POST['Telefono'];

$Cellulare_field = $_POST['Cellulare'];

$Email_field = $_POST['Email'];

$Messaggio = $_POST['Messaggio'];

$Contact = $_POST['Contact'];

$Refer = getenv ("HTTP_REFERER"); 

$Ip = getenv ("REMOTE_ADDR");

$Info = getenv ("HTTP_USER_AGENT");

	 $Error_message = "";

	 $Oggetto_exp = "/^[A-Za-z .'-]+$/";

  if(!preg_match($Oggetto_exp,$Oggetto_field)) {

    $Error_message .= 'Inserire l´oggetto della richiesta.<br />';

  }

    $Nome_exp = "/^[A-Za-z .'-]+$/";

  if(!preg_match($Nome_exp,$Nome_field)) {

    $Error_message .= 'Inserire il Nome.<br />';

  }

    $Cognome_exp = "/^[A-Za-z .'-]+$/";

  if(!preg_match($Cognome_exp,$Cognome_field)) {

    $Error_message .= 'Inserire il Cognome.<br />';

  }

    $Email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';

  if(!preg_match($Email_exp,$Email_field)) {

    $Error_message .= 'Inserire un Indirizzo di E-mail Valido<br />';

  }

   if(strlen($Messaggio) < 2) {

    $Error_message .= 'Inserire un messaggio.<br />';

  }

  if(strlen($Error_message) > 0) {

    died($Error_message);

  } 
$To = "[email protected]";

$Sender = "[email protected]";

$Subject = "$Oggetto_field"; 

$Email_message = " Questi sono i dati inseriti nel modulo presente alla pagina: $Refer\n da $Nome_field $Cognome_field con indirizzo IP: $Ip\n Browser e sistema operativo: $Info\n Oggetto: $Oggetto_field\n Nome:  $Nome_field\n Cognome: $Cognome_field\n Telefono: $Telefono_field\n Cellulare: $Cellulare_field\n  E-Mail: $Email_field\n Messaggio: $Messaggio\n Come preferisci essere ricontattato: $Contact\n";

$Headers = 'From: '.$Email_field."\r\n".

'Reply-To: '.$Email_field."\r\n" .

'Sender: '.$Sender."\r\n".

'X-Mailer: PHP/' . phpversion(); 


@mail($To, $Subject, $Email_message, $Headers);

header("location:");

} 

else {

header("location:");

}

?>

che riceve i dati da un form adesso io vorrei modificare l'header in modo da inserire nel from e nel reply-to anche il nome e il cognome presi dal form ma con tutte le prove fatte non funziona qualcuno sa aiutarmi???
 
Ultima modifica di un moderatore:
ciao
non so se ho capito bene il tuo problema, eventualmente prova così
PHP:
<?php
//....
$Headers = "From: $Nome_field $Cognome_field $Email_field \r\n
	Reply-To: $Nome_field $Cognome_field $Email_field \r\n
	Sender: $Sender.\r\n
	X-Mailer: PHP/".phpversion(); 
//....
?>
 
ciao
non so se ho capito bene il tuo problema, eventualmente prova così
PHP:
<?php
//....
$Headers = "From: $Nome_field $Cognome_field $Email_field \r\n
	Reply-To: $Nome_field $Cognome_field $Email_field \r\n
	Sender: $Sender.\r\n
	X-Mailer: PHP/".phpversion(); 
//....
?>

penso che il problema lo hai capito però così ad occhio non essendo esperto e dopo una prova direi che c'è ancora qualche problema in quanto adesso come mittente ho tutto questo
Codice:
[email protected], [email protected], [email protected], "Reply-To:io"@postlady.main-hosting.eu, [email protected], [email protected], "Sender:info"@coguaro.tk.X-Mailer:PHP/5.3.29

eventualmente visto che se faccio modifiche non mi da il carattere con l'errore ma solo la riga come posso far stampare l'errore completo?
 
Ultima modifica:
l'email deve avere il tuo indirizzo email o dell'utente?

perché non ti crei le funzioni?

ecco i due codici che uso :

questo è quello che invi l'email all'utente con (info@blablabla.)

la variabile principale è $admin_email = "[email protected]";

PHP:
function invio_mail($admin_email, $destinatario,$oggetto,$messaggio)
{
  $intestazione   = "MIME-Version: 1.0\r\n";
  $intestazione  .= "Content-type: text/html; charset=iso-8859-1\r\n";
  $intestazione  .= "From: <".$admin_email.">\n";
  $intestazione  .= "X-Priority: 3\r\n"; 
  $parametri = "-f ".$admin_email."";
  mail($destinatario, $oggetto, $messaggio, $intestazione, $parametri);
 }
si usa cosi:
$email_presa_dopo_cliclo_db = $row["email"];
invio_mail($admin_email,$email_presa_dopo_cliclo_db,"Conferma Iscrizione Newsletter",$messaggio);

questo è quello che mi devono contattarmi me (info@blablabla.)
PHP:
function invio_mail_contact($admin_email,$destinatario,$oggetto,$messaggio)
{
  $intestazione   = "MIME-Version: 1.0\r\n";
  $intestazione  .= "Content-type: text/html; charset=iso-8859-1\r\n";
  $intestazione  .= "From: <".$destinatario.">\n";
  $intestazione  .= "X-Priority: 3\r\n"; 
  $parametri = "-f ".$destinatario."";
  mail($admin_email, $oggetto, $messaggio, $intestazione, $parametri);
}

si usa cosi:
invio_mail_contact($admin_email, $_POST["email"],$oggetto,$messaggio);

ciao vedi se ti funziona io sono ancora principiante e faccio uso di google.
 
Ultima modifica:
l'email deve avere il tuo indirizzo email o dell'utente?

perché non ti crei le funzioni?

ecco i due codici che uso :

questo è quello che invi l'email all'utente con (info@blablabla.)

la variabile principale è $admin_email = "[email protected]";

PHP:
function invio_mail($admin_email, $destinatario,$oggetto,$messaggio)
{
  $intestazione   = "MIME-Version: 1.0\r\n";
  $intestazione  .= "Content-type: text/html; charset=iso-8859-1\r\n";
  $intestazione  .= "From: <".$admin_email.">\n";
  $intestazione  .= "X-Priority: 3\r\n"; 
  $parametri = "-f ".$admin_email."";
  mail($destinatario, $oggetto, $messaggio, $intestazione, $parametri);
 }
si usa cosi:
$email_presa_dopo_cliclo_db = $row["email"];
invio_mail($admin_email,$email_presa_dopo_cliclo_db,"Conferma Iscrizione Newsletter",$messaggio);

questo è quello che mi devono contattarmi me (info@blablabla.)
PHP:
function invio_mail_contact($admin_email,$destinatario,$oggetto,$messaggio)
{
  $intestazione   = "MIME-Version: 1.0\r\n";
  $intestazione  .= "Content-type: text/html; charset=iso-8859-1\r\n";
  $intestazione  .= "From: <".$destinatario.">\n";
  $intestazione  .= "X-Priority: 3\r\n"; 
  $parametri = "-f ".$destinatario."";
  mail($admin_email, $oggetto, $messaggio, $intestazione, $parametri);
}

si usa cosi:
invio_mail_contact($admin_email, $_POST["email"],$oggetto,$messaggio);

ciao vedi se ti funziona io sono ancora principiante e faccio uso di google.

se riesco nel pomeriggio faccio una prova anche con questo se non trovo altro anche se mi sembra più complicato e forse non adatto al mio scopo?!?!?!?!??!
 
ciao io uso cosi:

PHP:
<?php
session_start();
include('inc.php');
$title = "Contatti";
include(''.$theme.'header.php');
echo '<div id="content-full-width">';
echo '<div id="f">';
?>
<h1 class="center">Contatti</h1>
<fieldset>
<legend>Modulo</legend>
<div class="contact">
<?php
if(isset($_POST["invia"]))
{
	$nome = $_POST["nome"];
	$cognome = $_POST["cognome"];
	$oggetto = $_POST["oggetto"];
	$messaggio =$_POST["messaggio"];
	$email = $_POST["email"];
 
	if(empty($nome))
	{
	$error = "Non hai inserito il nome";
	}
	elseif(empty($cognome))
	{
	$error = "Non hai inserito il cognome";
	}
	elseif(empty($oggetto))
	{
	$error = "Non hai inserito l'oggetto";
	}
	elseif(empty($email))
	{
	$error = "Inserire il l'email";
	}
	elseif(!valid_email($email))
	{
	$error = "Inserire la tua email valida";
	}
	
	elseif(empty($messaggio))
	{
	$error = "Non hai inserito il messaggio";
	}
	else
	
	{
	if ($_SESSION['codice']==$_POST['codice'])
	{
		  
		$messaggio = "Nome: ". $_POST["nome"]."<br />";
		$messaggio .= "Cognome: ". $_POST["cognome"]."<br />";
		$messaggio .= "Messaggio: <br />". nl2br(replace_text($_POST["messaggio"]))."<br />";
		$oggetto = "Richiesta da sitoweb.it : ".$_POST["oggetto"]."";
		
		invio_mail_contact($admin_email, $_POST["email"],$oggetto,$messaggio);
		
		$msg = "Fatto. Attendere prego il redirect";
		
		redirect("index.php",2);
			   
	   } else {
		  $error = 'Codice Di Sicurezza/Somma errata';
		}
	}
}
$nome = (isset($_POST["nome"])) ? trim(($_POST["nome"])): '';
$cognome = (isset($_POST["cognome"])) ? trim(($_POST["cognome"])): '';
$oggetto = (isset($_POST["oggetto"])) ? trim(($_POST["oggetto"])): '';
$messaggio = (isset($_POST["messaggio"])) ? trim(($_POST["messaggio"])): '';
$email = (isset($_POST["email"])) ? trim(($_POST["email"])): '';

if(isset($error)){ echo '<p class="info_error">'.$error.'</p>';}
if(isset($msg)){ echo $msg;} else {
?>   
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
 <p>Nome</p>
 <p><input type="text" name="nome"  value="<?php if(isset($_POST['nome'])){echo htmlspecialchars($_POST['nome']);}else { echo htmlspecialchars($nome); }?>" /></p>
 <p>Cognome</p>
 <p><input type="text" name="cognome"  value="<?php if(isset($_POST['cognome'])){echo htmlspecialchars($_POST['cognome']);}else { echo htmlspecialchars($cognome); }?>"  /></p>
 <p>Oggetto</p>
 <p><select name="oggetto">
 <option value="Informazioni"   <?php if ($oggetto == "Informazioni") echo ' selected' ?>>Informazioni</option>
<option value="Richiesta di contatto"    <?php if ($oggetto == "Richiesta di contatto") echo ' selected' ?>>Richiesta di contatto</option>
<option value="Richiesta di cancellazione newsletter"    <?php if ($oggetto == "Richiesta di cancellazione newsletter") echo ' selected' ?>>Richiesta di cancellazione newsletter</option>
 <option value="Altro"    <?php if ($oggetto == "Altro") echo ' selected' ?>>Altro</option>
</select>
</p>
 <p>Email</p>
 <p><input type="text" name="email" size="40" value="<?php if(isset($_POST['email'])){echo htmlspecialchars($_POST['email']);}else { echo htmlspecialchars($email); }?>" /></p>
 <p>Messaggio</p>
 <p><textarea rows="10" cols="40" name="messaggio"><?php if(isset($_POST['messaggio'])){echo $_POST['messaggio'];}else { echo $messaggio; }?></textarea></p>
 <p>
 <img src="security/captcha.php" alt="Codice Captcha" title="Codice Captcha" width="" alt="">
 <input name="codice" type="text" id="codice" size="5"/>
 </p>
 <p><input type="submit" name="invia" value="invia"></p>
</form>
<?php } ?>
</div>

</fieldset>
<?php 
echo '</div>';
echo '</div>';
include(''.$theme.'footer.php');
?>

per metterlo al tuo codice vedi il listato:

PHP:
if ($_SESSION['codice']==$_POST['codice'])
	{
		  
		$messaggio = "Nome: ". $_POST["nome"]."<br />";
		$messaggio .= "Cognome: ". $_POST["cognome"]."<br />";
		$messaggio .= "Messaggio: <br />". nl2br(replace_text($_POST["messaggio"]))."<br />";
		$oggetto = "Richiesta da sitoweb.it : ".$_POST["oggetto"]."";
		
		invio_mail_contact($admin_email, $_POST["email"],$oggetto,$messaggio);
		
		$msg = "Fatto. Attendere prego il redirect";
		
		redirect("index.php",2);
			   
	   } else {
		  $error = 'Codice Di Sicurezza/Somma errata';
		}

lascia perdere alcune cose perché ci sono funzioni che uso e le includo da inc.php.

vedi se ti può prendere spunto.

buona giornata.
 

Discussioni simili