Ik vrees dat ik iets fout doe, maar geen idee wat.
Ik krijg netjes alle info als je op verzenden klikt, maar de bezoeker ontvangt niets ( of helemaal leeg)
iemand een idee?



dit is het script:


<?php
// datum laatste wijziging: 9 juli 2012 
// Invoer uit het contactformulier
$name		= strip_tags($_POST['name']);
$email		= strip_tags($_POST['email']);
$message	= strip_tags($_POST['msg']);
// datum$jaar = date("Y");
$maand = date("m");
$dag = date("d");
$datum = $dag . " " . $maand . " " . $jaar;
$tijd = time();

// emailadres waar de berichten heen moeten
// hier moet je dus je eigen emailadres neerzetten!
	$mijnadres = "[email protected]";

// de naam van je website
// hier moet je dus de naam van je eigen website neerzetten!
	$mijnsite = "www.cargowebshippers.no";

// ongewenste emaildomeinen in een array:
$xmail = array("@cepk.info", "ceprk.info", "@gawab.com", "@mail.ru", "@yandex.com", "@gates.com");
$xmaildomein = "";

function is_substr($needle, $haystack){ 
        $pos = strpos($haystack, $needle); 
 
        if ($pos === false) { 
                return false; 
        } else { 
                return true; 
        } 
}

	// Fouten en veiligheidscontroles
	if ( ( !$email ) ||
		 ( strlen($_POST['email']) > 200 ) ||
	     ( !preg_match("#^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$#", $email) )
       ) 
	{ 
		print "Fout: Ongeldig E-Mail Adres"; 
		exit; 
	} 
	
	// ongewenste emaildomeinen filteren
	foreach ($xmail as $xmaildomein) {
		if ( is_substr($xmaildomein,$email))
		{
			print "Fout: Ongewenst E-Mail Adres";
			exit;
		}	
	}
	
	// filteren op http om de overlast van spambots te verminderen
	if ( is_substr("http",$message))
	{
		print "Fout: Gebruik geen http in je bericht";
		exit;
	}	

	if ( ( !$name ) ||
		 ( strlen($name) > 100 ) ||
		 ( preg_match("/[:=@\<\>]/", $name) ) 
	   )
	{ 
		print "Fout: Ongeldige Naam"; 
		exit; 
	} 
	if ( preg_match("#cc:#i", $message, $matches) )
	{ 
		print "Fout: Ongeldig Header Field Gevonden"; 
		exit; 
	} 
	if ( !$message )
	{
		print "Fout: Geen Bericht"; 
		exit; 
	} 
	
	if (mb_eregi("\r",$email) || mb_eregi("\n",$email)){ 
		print "Fout: Ongeldig E-Mail Adres"; 
		exit; 
	} 
	
	// E-mail opstellen
	$headers	= "Content-Type: text/plain; charset=iso-8859-1\n";
	$headers	.= "Van: $name <$email>\n";
	$recipient	= $mijnadres;
	$subject	= "Bericht via $mijnsite $datum $tijd";
	$mssg = "=== AFZENDER ========\n";
	$mssg .= "$name <$email>\n";
	$mssg .= "=== BEGIN BERICHT ======\n\n";
	$mssg .= "$message\n\n";
	$mssg .= "=== EINDE BERICHT ======\n";
	$message = $mssg;
	
	// E-mail verzenden
	mail($recipient, $subject, $message, $headers);

	// Doorsturen naar dank-je-wel-pagina
	header("location: http://www.cargowebshippers.no/contents/en-uk/thankyou.html");
?>

===================
en het html deeltje

<!doctype html>
<html xmlns:sf lang="en-uk" dir="ltr" >
<head>
<STYLE>
body {
background-color: #FFFFFF;
color: #999399;
}
</STYLE>
<CENTER>
<!--?php echo $jaar; ?--></H1>
<FORM method=post name=form action=verwerking.php>
<BR>&nbsp;<BR><B>Bestellings cofirmation</B><BR>&nbsp;<BR>
<LABEL>Name:<BR><INPUT maxLength=200 size=40 name=name></LABEL><BR>&nbsp;<BR><LABEL> e-mail:<BR>
<INPUT maxLength=100 size=40 name=email></LABEL><BR>&nbsp;<BR><LABEL>Ordernumber:<BR>
(Gebruik geen "http" in je bericht)<BR><TEXTAREA rows=6 cols=40 name=msg></TEXTAREA></LABEL><BR>&nbsp;<BR><INPUT class=pointer type=submit value=Send name=Submit><BR>&nbsp;<BR></FORM>
<!-- einde formulier --></CENTER>


Je hebt het e-mailadres van de klant opgeslagen in $email:

$email = strip_tags($_POST['email']);


maar je mailt naar het adres in $recipient:

mail($recipient, $subject, $message, $headers);


Dan komt de mail dus nooit aan bij $email.

Verder schort er nogal wat aan het script. Er bestaat bijvoorbeeld geen e-mailheader "Van":

$headers .= "Van: $name <$email>\n";
Dat is dan de 'From' header.
!preg_match("#^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$#", $email)

Waarom niet gewoon de filter_var() functie gebruiken en dan php's eigen filter gebruiken?
Hoewel jouw regex al flink wat opvangt, zal het misgaan zodra er een ö of ander niet accentloze letter, dan wel een niet westers teken gebruikt wordt.
dank voor de respons.
Ik ben niet zo goed in php en was al blij dat ik dit kon...lol
ik krijg keurig mijn emails binnen, vandaar dat ik dacht: ben al aardig op weg.

mail($recipient, $subject, $message, $headers, $email);
Heb hier email in toegevoegd....maar komt ook dan niet aan
http://php.net/mail

de functie mail() verwacht als eerste parameter een string met het mailadres dat de mail moet gaan ontvangen. Simpelweg als 5e parameter een adres toevoegen, zal niet gaan.
de functies zoals ik in het scriptje heb staan, werkt aan mijn kant wel goed.
de functie mail() is toch de mail die ik zelf op mijn email adres ontvang? en niet de kopie van de klant ?
mail() is een functie.

$email bevat het mailadres uit het formulier

$recepient bevat een hardcoded adres (van jou)

De mail wordt gestuurd aan $receipient

in de headers staat: $headers .= "Van: $name <$email>\n";

als je van Van From maakt zal de mail schijnbaar afkomstig zijn van het mailadres dat in formulier stond ingevuld.

Er is geen reden waarom er ook een mail aan $email gestuurd zou worden.

Hooguit als je een CC header opneemt en daarin $email zet.


Ik heb nu deze er ingezet...mag dit zo?

<?php
// E-mail opstellen
	$headers	= "Content-Type: text/plain; charset=iso-8859-1\n";
	$headers	.= "From: $name <$email>\n";

        $headers .= 'Cc: $email\r\n';

	$recipient	= $mijnadres;
	$subject	= "Bericht via $mijnsite $datum $tijd";
	$mssg = "=== AFZENDER ========\n";
	$mssg .= "$name <$email>\n";
	$mssg .= "=== BEGIN BERICHT ======\n\n";
	$mssg .= "$message\n\n";
	$mssg .= "=== EINDE BERICHT ======\n";
	$message = $mssg;
	
	// E-mail verzenden
	mail($recipient, $subject, $message, $headers);
?>



Php zelf heeft slechte Mail functie. Daarom adveseer ik library 'Mailer' gaan gebruiken.

Reageren