Geen errors.
Toch al ik het formulier heb ingevuld zegt hij wel "Uw email is ontvangen, deze nemen wij zo spoedig mogelijk in behandeling!"

Maar krijg niks in mij mailbox.
heb dit script al vaker zonder problemen gebruikt.
Dus snap het niet.

Het mailscript:

<?php
include 'phpscript.inc.php';

?>
<?php

// maakt verbinding met je MYsql
$conn = mysql_connect("localhost","ron","");
if (!$conn)
  {
  die('Could not connect: ' . mysql_error());
  }
//Plaats hier alle data van je database uit je MYsql
mysql_select_db("kb_cadeau", $conn);
$sql="INSERT INTO gegevens (voornaam, toevoegsel, achternaam, adres, huisnummer, toevoeging, postcode, woonplaats, telefoonnummer, email, rekeninghouder, rekeningnummer, nkind1, geslachtkind1, geboorte1d, geboorte1m, geboorte1j, cadeau1)

VALUES ('$_POST[voornaam]','$_POST[toevoegsel]','$_POST[achternaam]','$_POST[adres]','$_POST[huisnummer]','$_POST[toevoeging]','$_POST[postcode]','$_POST[woonplaats]','$_POST[telefoonnummer]','$_POST[email]','$_POST[rekeninghouder]','$_POST[rekeningnummer]','$_POST[nkind1]','$_POST[geslachtkind1]','$_POST[geboorte1d]','$_POST[geboorte1m]','$_POST[geboorte1j]','$_POST[cadeau1]')";

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>mailing script</title>
</head>

<body>
<?php
if(isset($_POST['email'])) {
	
	// Vul hier het juiste e-mail en het onderwerp (subject) in
	$email_to = "[email protected]";
	$email_subject = "subject";
	
	
	function died($fout) { ?>
    
<div>
<p>Let A.U.B op dat alle gegevens zijn ingegevult.</p>
		<?php echo $fout ?>
		  <p><a href="Javascript:history.back()">terug</a></p></div>
          
<?php		die();
	}
	//hier benoemen we alle velden met een array
	// ## == moet aanwezig zijn
	// -- == hoeft neit aanwezig te zijn
	if(!isset($_POST['voornaam']) ||
		!isset($_POST['toevoegsel']) ||
		!isset($_POST['achternaam']) ||
		!isset($_POST['adres']) ||
		!isset($_POST['huisnummer']) ||
		!isset($_POST['toevoeging']) ||
		!isset($_POST['postcode']) ||
		!isset($_POST['woonplaats']) ||
		!isset($_POST['telefoonnummer']) ||
		!isset($_POST['email']) ||
		!isset($_POST['rekeninghouder']) ||
		!isset($_POST['rekeningnummer']) ||
		!isset($_POST['geslachtkind1']) ||
		!isset($_POST['geboorte1d']) ||
		!isset($_POST['geboorte1m']) ||
		!isset($_POST['geboorte1j'])); {
			
	
		
	$voornaam = $_POST['voornaam']; /* ## */
	$toevoegsel = $_POST['toevoegsel']; /* -- */
	$achternaam = $_POST['achternaam']; /* ## */
	$adres = $_POST['adres']; /* ## */
	$huisnummer = $_POST['huisnummer']; /* ## */
	$toevoeging = $_POST['toevoeging']; /* -- */
	$postcode = $_POST['postcode']; /*  ## */
	$woonplaats = $_POST['woonplaats']; /* ## */
	$telefoon = $_POST['telefoonnummer']; /* ## */
	$mail = $_POST['email']; /* ## */
	$rekeningh = $_POST['rekeninghouder']; /* ## */
	$rekeningn = $_POST['rekeningnummer']; /* ## */
	$naamk1 = $_POST['nkind1']; /* -- */
	$geslachtkind1 = $_POST['geslachtkind1']; /* -- */
	$geboorte1d = $_POST['geboorte1d'];  /* -- */
	$geboorte1m = $_POST['geboorte1m']; /* -- */
	$geboorte1j = $_POST['geboorte1j']; /* -- */
	$cadeau = $_POST['cadeau1']; /* ## */
	
	$fout_melding = "";
	
	$email_ver = "^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$";
	if(!eregi($email_ver,$mail)) 
	{
		$fout_melding .= '<p>Vul een geldig <b>e-mail</b> in</p>';
	}	
	// als er meerdere array de zelfde voorwaarde hebben kun je die onder 1 noemer plaatsen.
	$naam_ver = "^[A-Z .'-]+$";
	if(!eregi($naam_ver,$voornaam))
	{
		$fout_melding .= '<p>U bent uw <b>voornaam</b> of <b>voorletter</b> vergeten in te vullen.</P>';
	}
	if(!eregi($naam_ver,$woonplaats))
	{
		$fout_melding .= '<p>vul uw <b>woonplaats</b> in aub. </p>';
	}
		if(!eregi($naam_ver,$adres))
	{
		$fout_melding .= '<p>u <b>adres</b> klopt niet.</p>';
	}
	if(!eregi($naam_ver,$achternaam))
	{	
		$fout_melding .= '<p>U bent uw <b>achternaam</b> vergeten in te vullen. </p>';
	}
	if(!eregi($naam_ver,$rekeningh))
	{
		$fout_melding .= '<p> <b>rekeninghouder</b> is onbekent of onjuist. </p>';
	}
	$postcode_ver = "^[A-Z0-9 .'-]+$"; 
	if(!eregi($postcode_ver,$postcode))
	{
		$fout_melding .= '<p>vul een juiste <b>postcode</b> in A.U.B. </p>';
	}
	$nummer_ver = "^[0-9.'-]+$";
	if(!eregi($nummer_ver,$huisnummer))
	{
		$fout_melding .= '<p><b>huisnummer</b> is onjuist.</p>';
	}
	if(!eregi($nummer_ver,$telefoon))
	{
		$fout_melding .= '<p>onjuist <b>telefoonnummer</b> ingevult.</p>';
	}
	if(!eregi($nummer_ver,$rekeningn))
	{	
		$fout_melding .= '<p>onjuist <b>rekeningnummer</b> ingevult.</p>';
	}
	if(strlen($fout_melding) > 0)	{
	died($fout_melding);
	}
	}
	
	
	$email_bericht = "klant gegevens.\n\n";
	
	function clean_string($string) {
	$bad = array("content-type","bcc:","to:","cc:","href");
	return str_replace($bad,"",$string);
	}

	$email_bericht .= "Voornaam: ".clean_string($voornaam)."\n";
	$email_bericht .= "Toevoegsel: ".clean_string($toevoegsel)."\n";
	$email_bericht .= "Achternaam: ".clean_string($achternaam)."\n";
	$email_bericht .= "Adres: ".clean_string($adres)."\n";
	$email_bericht .= "Huisnummer.: ".clean_string($huisnummer)."\n";
	$email_bericht .= "HuisNRtoev.: ".clean_string($toevoeging)."\n";
	$email_bericht .= "Postcode: ".clean_string($postcode)."\n";
	$email_bericht .= "Woonplaats: ".clean_string($woonplaats)."\n";
	$email_bericht .= "Telefoon nr.: ".clean_string($telefoon)."\n";
	$email_bericht .= "E-mail.: ".clean_string($mail)."\n";
	$email_bericht .= "Rekeninghouder: ".clean_string($rekeningh)."\n";
	$email_bericht .= "Rekening nr.: ".clean_string($rekeningn)."\n";
	$email_bericht .= "Naam kind: ".clean_string($naamk1)."\n";
	$email_bericht .= "Geslacht van kind: ".clean_string($geslachtkind1)."\n";
	$email_bericht .= "Geboorte dag van kind: ".clean_string($geboorte1d)."\n";
	$email_bericht .= "Geboorte maand van kind: ".clean_string($geboorte1m)."\n";
	$email_bericht .= "Geboorte jaar van kind: ".clean_string($geboorte1j)."\n";
	$email_bericht .= "Gekozen cadeau: ".clean_string($cadeau)."\n";
	
$headers = 'From: '.$mail."\r\n".
'Reply-To: '.$email_to."\r\n" .
'X-Mailer: PHP/' . phpversion();
@mail($email_to, $email_subject, $email_bericht, $headers);
	
$headers = 'From: '.$email_to."\r\n".
'Reply-To: '.$email_to."\r\n" .
'X-Mailer: PHP/' . phpversion();
@mail($mail, "Gratiskinderboeken.nl Bevestigingsmail", "Geachte heer/mevrouw \n \n Hartelijk dank voor uw bestelling bij 							Gratiskinderboeken.nl!\n \n Het kinderboekenpakket zal zo spoedig mogelijk worden verzonden.\n Heel veel plezier gewenstmet het pakket.\n \n Groeten,\n Het team van Gratiskinderboeken.nl", $headers);
?>

<div id="div_home_maat3">
  <p>&nbsp;</p>
  <p>Uw email is ontvangen, deze nemen wij zo spoedig mogelijk in behandeling!</p>
  <p><a href="Javascript:history.back()">terug</a> </p>
</div>

<?php
}
?>
	
    	
</body>
</html>

het formulier:
[code]
<div id="order_content_frame">
<div id="order_links"></div>
<div id="order_content">
<form action="verzend.php" method="POST" name="aanmelden" id="aanmelden">
<div id="order_top"><h2><?php echo $row_Ophalen_content['titel1']; ?></h2></div>
<div id="order_text">
<div id="order_img"><img src="<?php echo $map.$_GET["action"],".",jpg;?>" width="163" height="163" border="0" /></div>
<table width="470px" class="main_tekstvak_formulier">
<tr>
<td width="21%">Naam:</td>
<td width="15%"><input name="voornaam" type="text" id="voornaam" size="12" /></td>
<td width="19%">Tussenvoegsel:</td>
<td width="45%"><input name="toevoegsel" type="text" id="toevoegsel" size="8" /></td>
</tr>
<tr>
<td>Achternaam:</td>
<td><input name="achternaam" type="text" id="achternaam" size="12" /></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>Adres:</td>
<td><input name="adres" type="text" id="adres" size="12" /></td>
<td>Huisnummer:</td>
<td><input name="huisnummer" type="text" id="huisnummer" size="4" />
<input name="toevoeging" type="text" id="toevoeging" size="4" /></td>
</tr>
<tr>
<td>Postcode:</td>
<td><input name="postcode" type="text" id="postcode" size="12" /></td>
<td>Woonplaats:</td>
<td><input name="woonplaats" type="text" id="woonplaats" size="12" /></td>
</tr>
<tr>
<td>Telefoonnummer:</td>
<td><input name="telefoonnummer" type="text" id="telefoonnummer" size="12" /></td>
<td>E-mail:</td>
<td><input name="email" type="text" id="email" size="12" /></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>Naam kind:</td>
<td><input name="nkind1" type="text" id="nkind1" size="12" /></td>
<td>Geslacht:</td>
<td><input type="radio" checked="checked" value="man" name="geslachtkind1">Man
<input type="radio" value="vrouw" name="geslachtkind1">Vrouw
</td>
</tr>
<tr>
<td>Geboortedatum:</td>
<td colspan="3"><select name="geboorte1d" id="geboorte1d">
<option selected="selected">1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
<option>8</option>
<option>9</option>
<option>10</option>
<option>11</option>
<option>12</option>
<option>13</option>
<option>14</option>
<option>15</option>
<option>16</option>
<option>17</option>
<option>18</option>
<option>19</option>
<option>20</option>
<option>21</option>
<option>22</option>
<option>23</option>
<option>24</option>
<option>25</option>
<option>26</option>
<option>27</option>
<option>28</option>
<option>29</option>
<option>30</option>
<option>31</option>
</select>
/
<select name="geboorte1m" id="geboorte1m">
<option selected="selected">1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
<option>8</option>
<option>9</option>
<option>10</option>
<option>11</option>
<option>12</option>
</select>
/
<select name="geboorte1j" id="geboorte1j">
<option>1990</option>
<option>1991</option>
<option>1992</option>
<option>1993</option>
<option>1994</option>
<option>1995</option>
<option>1996</option>
<option>1997</option>
<option>1998</option>
<option>1999</option>
<option>2000</option>
<option>2001</option>
<option>2002</option>
<option>2003</option>
<option>2004</option>
<option>2005</option>
<option>2006</option>
<option>2007</option>
<option>2008</option>
<option>2009</option>
</select></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>Rekeninghouder:</td>
<td><input name="rekeninghouder" type="text" id="rekeninghouder" size="12" /></td>
<td>Rekeningnummer:</td>
<td><input name="rekeningnummer" type="text" id="rekeningnummer" size="12" /></td>
</tr>
<tr>
<td><input name="cadeau1" id="cadeau1" type="hidden" value="1" /></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td colspan="4">
<input type="checkbox" name="checkbox2" id="checkbox2" />Ja, ik ga akkoord met de algemene voorwaarden
</td>
</tr>
<tr>

<td colspan="4">
<input type="checkbox" name="checkbox" id="checkbox" />Ja, ik ga akkoord met de afschrijving van mijn rekeningnummer
</td>
</tr>
</table>
</td>
<div id="order_buttons">
<div id="order_vorige"><a href="Javascript:history.back()"><img src="img/button_vorige.jpg" width="63" height="30" align="left" border="0" /></a></div>
<div id="order_bestel"><input name="aanmelden" type=image value="Submit" src="img/button_bestel.jpg" align="right" /></div>
</div>
</div>
<div id="order_footer"></div>
</form>
</div>

<div id="order_rechts"></div>
</div>
[code]

zie ik gewoon iets heel doms over het hoofd??
Haal de @ tekens eens weg voor @mail en check de foutmeldingen.
ooh..

krijg nu:

Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\wamp\www\php5boek\test_speelgoedgratis.nl\verzend.php on line 171


Maar als ik hem dan "live" gooi heb ik dat probleem niet meer toch?

zal ondertussen is googlen voor een oplossing. Thx John in iedergeval :)
inderdaad maar wellicht een andere foutmelding van een falende smtp/mailserver op je live omgeving. Het @ onderdukt foutmeldingen.
maar snap het niet helemaal, gebruik deze code (bijna het zelfde, alleen minder voorwaarden, en iets verbeterd) ook op de andere, daar had ik geen problemen mee toen ik hem op me local aan het testen was.

Heb even rond gegoogled. Maar daar wordt me aangeraden om de smtp/mailserver aan te passen via me localhost files. Maar nu test ik net een oudere website. waar ik dit script ook voor gebruik. En daar heb ik dan weer niet de error. dat ik geen mail binnen krijg.

nouwja, mebee ga ik is kijken hoe het zit als ie ook niet mailt als hij live staat.
"live" mailt hij waarschijnlijk wel,, want daar heb je andere instellingen.
sorry dat ik dit script nog een keer ophaal,
maar heb nu een ander probleem er mee namelijk.

Hij pakt de voorwaarde prima, die er in zijn gezet. Alleen het maakt niet of dat de voorwaarde wel of niet ingevult zijn of dat er een fout is. Alles komt zoiezo in de database. En dat heb ik liever niet, want dan krijg je natuurlijk dubble post als mensen het alsnog aanpassen na de foutmelding.

heb nog een kleine aanpassing er ingezet, omdat hij anders gewoon helemaal niets er in laden "soms vergeet ej wel eens wat" met betrekking van het script hier boven. Voor de rest geen aanpassingen:
<?$conn = mysql_connect("localhost","ron","");
if (!$conn)
{
die('Could not connect: ' . mysql_error());
}
//Plaats hier alle data van je database uit je MYsql
mysql_select_db("kb_cadeau", $conn);

$sql="INSERT INTO gegevens (
voornaam,
toevoegsel,
achternaam,
adres,
huisnummer,
toevoeging,
postcode,
woonplaats,
telefoonnummer,
email,
rekeninghouder,
rekeningnummer,
nkind1,
geslachtkind1,
geboorte1d,
geboorte1m,
geboorte1j,
cadeau1
)

VALUES (
'$_POST[voornaam]',
'$_POST[toevoegsel]',
'$_POST[achternaam]',
'$_POST[adres]',
'$_POST[huisnummer]',
'$_POST[toevoeging]',
'$_POST[postcode]',
'$_POST[woonplaats]',
'$_POST[telefoonnummer]',
'$_POST[email]',
'$_POST[rekeninghouder]',
'$_POST[rekeningnummer]',
'$_POST[nkind1]',
'$_POST[geslachtkind1]',
'$_POST[geboorte1d]',
'$_POST[geboorte1m]',
'$_POST[geboorte1j]',
'$_POST[cadeau1]')";


if (!mysql_query($sql,$conn))
{
die('Error: ' . mysql_error());
}
mysql_close($conn) ?>

vergeet ik ergen een afsluiting? of een ergens dat ie niet moet posten als er niet aan de voorwaarde wordt voldaan. Want kijk er zelf klaarblijkelijk overheen
gaat zo te zien mis bij de values $_POST(zie higlighting)
Doe eens wat tegen SQL injection. Je script is zo lek als een zeef. Dus pas op alle POST, GET, COOKIE -variabelen in je query de functie: mysql_real_escape_string() toe.

<?php
$sql="INSERT INTO gegevens (
                            voornaam, 
                            toevoegsel, 
                            achternaam, 
                            adres, 
                            huisnummer, 
                            toevoeging, 
                            postcode, 
                            woonplaats, 
                            telefoonnummer, 
                            email, 
                            rekeninghouder, 
                            rekeningnummer, 
                            nkind1, 
                            geslachtkind1, 
                            geboorte1d, 
                            geboorte1m, 
                            geboorte1j, 
                            cadeau1
                            )
VALUES             (
                '".mysql_real_escape_string($_POST['voornaam'])."',
                '".mysql_real_escape_string($_POST['toevoegsel'])."',
                '".mysql_real_escape_string($_POST['achternaam'])."',
                '".mysql_real_escape_string($_POST['adres'])."',
                '".mysql_real_escape_string($_POST['huisnummer'])."',
                '".mysql_real_escape_string($_POST['toevoeging'])."',
                '".mysql_real_escape_string($_POST['postcode'])."',
                '".mysql_real_escape_string($_POST['woonplaats'])."',
                '".mysql_real_escape_string($_POST['telefoonnummer'])."',
                '".mysql_real_escape_string($_POST['email'])."',
                '".mysql_real_escape_string($_POST['rekeninghouder'])."',
                '".mysql_real_escape_string($_POST['rekeningnummer'])."',
                '".mysql_real_escape_string($_POST['nkind1'])."',
                '".mysql_real_escape_string($_POST['geslachtkind1'])."',
                '".mysql_real_escape_string($_POST['geboorte1d'])."',
                '".mysql_real_escape_string($_POST['geboorte1m'])."',
                '".mysql_real_escape_string($_POST['geboorte1j'])."',
                '".mysql_real_escape_string($_POST['cadeau1'])."')";
?>


probeer t zo eens (PLUS die tips van Aar natuurlijk)
edit: niet al die mysql_real_escape_string() 's zijn nodig(bij selectboxes niet) maar ga niet alles nalopen...
@ TS

Ik zou opnieuw beginnen als ik jouw was.

Heb een beginnetje voor je gemaakt.

<?PHP

# Errors weergeven
error_reporting(E_ALL);
ini_set('display_errors', 1);

# Connectie maken met de database
require_once 'connect_DB.php';

# Error is false
$Error = false;
# Array voor messages
$Message = array();

# Kijken of er gepost wordt
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
# Kijken of voornaam leeg is
if(empty($_POST['voornaam']))
{
# Naam is niet ingevuld
$Message[] = 'Vul A.U.B een naam in.';
# Error is true
$Error = true;
}

# Kijken of toevoegsel is ingevuld
# Hier hoeven we geen error = true te doen omdat hij leeg of ingevuld mag zijn, dus maken we een variable aan
if(empty($_POST['toevoegsel']))
{
# Toevoegsel is ingevuld, variable aanmaken
$Toevoegsel = $_POST['toevoegsel'];
}
else
{
# Toevoegsel is niet ingevuld, variable aanmaken
$Toevoegsel = '';
}

# Kijken of error false is
if($Error == false)
{
# Query uitvoeren
$Query =
"
INSERT INTO
gegevens
(
voornaam,
toevoegsel
)
VALUES
(
'".mysql_real_escape_string($_POST['voornaam'])."'
'".mysql_real_escape_string($Toevoegsel)."'
)
";

# Resultaat van query
$Result = mysql_query($Query);

# Kijken of de query is gelukt
if(!$Result)
{
# Fout in query
$Message[] = 'Er is een fout opgetreden, fout is: '.mysql_error();
}
else
{
# Alles is ingevuld
$Message[] = 'U heeft alles succesvol ingevuld.';
}
}
}

?>

En om de message te laten zien gebruik je:

<?PHp

# Kijken of er mssages zijn
if(!empty($Message))
{
# Messages laten zien
foreach($Message as Msg)
{
echo $Msg.'<br/>';
}
}

?>

Dit kan je overal neerzetten waar jij maar wilt.

Als je nou een bestandje aanmaakt die connect_DB.php heet en daar je Database gegevens inzet dan hoef je de code niet steeds weer neer te zetten.

Je gebruikt dan gewoon: require_once 'connect_DB'; om connectie met je database te maken.

Gebruik mysql_real_escape_string om SQL Injection tegen te gaan

Om een bericht in de array te proppen gebruik je: $Message[] = 'Jouw bericht';

Verder lees de oranje text en succes verder !

[Edit]

Maak geen onnodige variable's aan.

[Edit2]

Sorry, deel van de code was ineens weg.

Reageren