Ik moet die lijst van producten uit de database meesturen met de e-mail.. maar ik krijg het niet in de e-mail.. Iemand die me kan helpen? code hieronder


$select = "SELECT * FROM producten";
$query = mysql_query($select);
$aantal = mysql_num_rows($query);
$list = mysql_fetch_object($query);

if ($_POST["Bestellen"])
{
$datum = date("Y-m-j");

if (!$_POST[email] || !$_POST[naam])
{
echo "<b>Verzenden mislukt</b><br><br>";
echo "U bent een veld vergeten in te vullen.<br><br><a class=\"linkje1\" href=\"javascript:history.go(-1)\">Klik hier om terug te gaan naar de vorige pagina</a>";
}
else
{
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: Eetsjop Baloe <[email protected]>\r\n";
$mail_body = "Bestel script werd op " . date("d-m-Y") . " om " . date("H:i") . " uur uitgevoerd.<br><br>";
$mail_body .= "De volgende persoon vulde het bestel formulier in:<br><br>";
$mail_body .= "<strong>Naam:</strong> " . $_POST['naam'] . "<br>";
$mail_body .= "<strong>Telefoonnummer:</strong> " . $_POST['telnumr'] . "<br>";
$mail_body .= "<strong>Gewenste tijdstip van afhalen:</strong> " . $_POST['tijd_uur'] . ":" . $_POST['tijd_minuut'] . "<br>";
$mail_body .= "<strong>E-mailadres:</strong> " . $_POST['email'] . "<br><br>";
$mail_body .= "Overzicht Bestelling<br>";

$mail_body .=

"
<html>
<head>
<title>Bestellings systeem eetsjop baloe</title>
</head>
<body>
<p>Dit is een overzicht van de bestelling</p>
<table class=\"email_tabel\" width=\"100%\" align=\"left\" border=\"1\">
<tr>
<td><strong>Product</strong></td><td><strong>Aantal</strong></td><td><strong>Product</strong></td><td><strong>Aantal</strong></td>
</tr>
<tr>
$sql = "SELECT * FROM producten";
$res = mysql_query($sql);
while($rij = mysql_fetch_array($res)){

<tr>
<td>".$rij["omschrijving"]."</td>
<td>".$rij["prijsl"]."</td>
</tr>
}
<td>Patat</td><td>" . $_POST['pw1'] . "</td><td>Patat met</td><td>" . $_POST['pw2'] . "</td>
</tr>
<tr>
<td>Patat Speciaal</td><td>" . $_POST['pw3'] . "</td><td>Patat met pindasaus</td><td>" . $_POST['pw4'] . "</td>
</tr>
</table>
</body>
<br><br>
</html>

";


mail("[email protected]", "Bestelling", $mail_body, $headers);

echo "<form method=\"post\" action=\"$PHP_SELF\" onSubmit=\"this.submit.disabled='true'\">";
echo "<table width=\"100%\" cellpadding=\"2\">";
echo "<tr>";
echo "<td>Uw bestelling is geplaatst<br><br></td>";
echo "</tr>";
echo "<tr>";
echo "<td><a href=\"test.php\">klik hier om terug te gaan</a><br><br></td>";
echo "</tr>";
echo "</table>";
echo "</form>";
}
}

<?php
$select = "SELECT * FROM producten";
$query = mysql_query($select);
$aantal = mysql_num_rows($query);
$list = mysql_fetch_object($query);

if ($_POST["Bestellen"])
{
	$datum = date("Y-m-j");

	if (empty($_POST['naam']))
	{
		echo "<b>Verzenden mislukt</b><br><br>";
		echo "U bent een veld vergeten in te vullen.<br><br><a class=\"linkje1\" href=\"javascript:history.go(-1)\">Klik hier om terug te gaan naar de vorige pagina</a>";
	}
	else
	{
		$headers = "MIME-Version: 1.0\r\n";
		$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
		$headers .= "From: Eetsjop Baloe <[email protected]>\r\n";
		$mail_body = "Bestel script werd op " . date("d-m-Y") . " om " . date("H:i") . " uur uitgevoerd.<br><br>";
		$mail_body .= "De volgende persoon vulde het bestel formulier in:<br><br>";
		$mail_body .= "<strong>Naam:</strong> " . $_POST['naam'] . "<br>";
		$mail_body .= "<strong>Telefoonnummer:</strong> " . $_POST['telnumr'] . "<br>";
		$mail_body .= "<strong>Gewenste tijdstip van afhalen:</strong> " . $_POST['tijd_uur'] . ":" . $_POST['tijd_minuut'] . "<br>";
		$mail_body .= "<strong>E-mailadres:</strong> " . $_POST['email'] . "<br><br>";
		$mail_body .= "Overzicht Bestelling<br>";
		
		$mail_body .=
		
		"
		<html>
		<head>
		<title>Bestellings systeem eetsjop baloe</title>
		</head>
		<body>
		<p>Dit is een overzicht van de bestelling</p>
		<table class=\"email_tabel\" width=\"100%\" align=\"left\" border=\"1\">
		<tr>
		<td><strong>Product</strong></td><td><strong>Aantal</strong></td><td><strong>Product</strong></td><td><strong>Aantal</strong></td>
		</tr>
		<tr>
	";
		$sql = "SELECT * FROM producten";
		$res = mysql_query($sql);
		while($rij = mysql_fetch_array($res))
		{
		
			$mail_body .="<tr>
			<td>".$rij["omschrijving"]."</td>
			<td>".$rij["prijsl"]."</td>
			</tr>";
		}
	$mail_body .= "
	<td>Patat</td><td>" . $_POST['pw1'] . "</td><td>Patat met</td><td>" . $_POST['pw2'] . "</td>
	</tr>
	<tr>
	<td>Patat Speciaal</td><td>" . $_POST['pw3'] . "</td><td>Patat met pindasaus</td><td>" . $_POST['pw4'] . "</td>
	</tr>
	</table>
	</body>
	<br><br>
	</html>

";


	mail("[email protected]", "Bestelling", $mail_body, $headers);
	
	echo "<form method=\"post\" action=\"$PHP_SELF\" onSubmit=\"this.submit.disabled='true'\">";
	echo "<table width=\"100%\" cellpadding=\"2\">";
	echo "<tr>";
	echo "<td>Uw bestelling is geplaatst<br><br></td>";
	echo "</tr>";
	echo "<tr>";
	echo "<td><a href=\"test.php\">klik hier om terug te gaan</a><br><br></td>";
	echo "</tr>";
	echo "</table>";
	echo "</form>";
}
}
?>


Doet hij het zo wel?
Ik heb geen tijd om je gehele script door te lopen maar het volgende valt me op.

- Gebruik enkele quotes om html te echoen dan hoef je niet alle dubbele quotes te escapen. Dat scheelt je dus hoop tijd.
- $PHP_SELF is onveilig "XSS", Gewoon uitschrijven. Zoveel meer werk is het niet.
- Gebruik $_SERVER['REQUEST_METHOD'] == 'POST' om te controleren of een formulier is verzonden.
- Zowel je formulier als MySQL mist nogal wat fout afhandeling.
@ Rolf nee dan verstuurd hij het aantal e-mails aan de hand van het aantal records @ datbase, in dit geval een stuk of 60
Aanvulling op mark:

-$PHP_SELF is niet eens nodig op een pagina als dit, gewoon het veld legen laten werkt ook.
-Bij controleren van de naam staat er nu if(empty($_POST['naam'])). Als iemand nu alleen spaties doet is het ook voldoende. Doe dus ook even trim().
-Controleren van gebruiker input gaat heel makkelijk met filter_input(), meer info daar over vind je hier: http://php.net/manual/en/function.filter-input.php
-En nooit user input zo in een mail zetten.
En inderdaad nog even een foutafhandeling maken.

-edit-
Misschien dat je hier nog wat aan hebt: http://www.phptuts.nl/view/40/

Reageren