Hallo,

Ik heb een vraag ik heb een bestel script op de index pagina kunnen de mensen hun bestelling doorgeven en word dan via bestelling_bevestigen.php verstuurd naar de snackbar maar de klant krijgt geen bevestigingsmail terwijl dat wel zou moeten. Heeft iemand een idee wat er misschien aan de hand kan zijn. Ze zijn wel overgestapt op een nieuwere server met PHP versie 5.6+.


bestelling_bevestigen.php
<?
require("config.php");
include("ubb.php");

echo " <head>";
echo " <link rel=\"stylesheet\" href=\"css/style.css\" type=\"text/css\" media=\"screen\" />";
echo " </head>";

$select = "SELECT * FROM bestellingen  WHERE `bestelcode`='" . $_GET[id] . "' ORDER by bestelling_id";
$query = mysql_query($select);
$aantal = mysql_num_rows($query);

$select1 = "SELECT * FROM bestelinfo  WHERE `bestelcode`='" . $_GET[id] . "'";
$query1 = mysql_query($select1);
$aantal1 = mysql_num_rows($query1);
$list1 = mysql_fetch_object($query1);

$select2 = "SELECT * FROM bestelinfo WHERE bestelcode='" . $_GET[id] . "' AND bevestigd='nee'";
$query2 = mysql_query($select2);
$bestaat = mysql_num_rows($query2);

if($_POST['bevestigen']) {
   echo "<center><b>Status:</b>";

  $dbres					= mysql_query("SELECT * FROM `bestelinfo` WHERE `bestelcode`='" . $_GET[id] . "' AND `bevestigd`='nee'");
    if($data = mysql_fetch_object($dbres)) {
	mysql_query("UPDATE `bestelinfo` SET `bevestigd`='ja' WHERE `bestelcode`='" . $_GET[id] . "' AND `bevestigd`='nee'");
      print "  <tr><td class=\"mainTxt\">Bestelling is bevestigd, u heeft een email ontvangen met verdere informatie</td></tr>\n";
      echo '<META HTTP-EQUIV="refresh" CONTENT="3;URL=http://eetsjopbaloe.com/index.php">';

        $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";
        $headers .= '
        
        <style type="text/css">
        .style1 {
	                font-family: Verdana;
                }
        </style>';
        
        $mail_body = "<p class=\"style1\">De volgende email werd op " . date("d-m-Y") . " om " . date("H:i") . " uur gestuurd.<br><br>";
        
        $mail_body .= "Beste $data->naam<br><br>";
        
        $mail_body .= "Bedankt voor uw bestelling.<br>Binnen <b>15 minuten</b> zult u een bevestigings mail uit onze keuken in uw mailbox krijgen.<br>In die bevestingsmail zal de exacte tijdstip van afhalen komen te staan.<br>U heeft aangegeven de bestelling $data->tijdstip_afhalen op te willen halen, hier wordt uiteraard rekening mee gehouden.<br><br><b>Let op!<br>Indien uw bestelling boven de 20 euro is wordt u gebeld ter bevestiging.<br>Indien u niet opneemt wordt de bestelling automatisch geannuleerd.</b><br><br>Hierbij hopen wij u voldoende geïnformeerd te hebben.<br><br>";
        
        $mail_body .= "Met vriendelijke groet,<br><br>Team Eetsjop Baloe</p>";
        
    mail("$data->email", "Baloe Bestelling", $mail_body, $headers);

    }
    else
      echo "<br><br>Deze bestelling is al eerder bevestigd.<br>U kunt een bestelling maar 1x bevestigen om misverstanden te voorkomen</center>";
      echo '<META HTTP-EQUIV="refresh" CONTENT="3;URL=http://eetsjopbaloe.com/index.php">';
  }else{
  	
  	  	if($bestaat == 'ja')
		{
			echo "<b>Er is een fout opgetreden</b><br><br>";
			echo "Deze bestelling is al bevestigd<br><br> <a class=\"linkje1\" href=\"javascript:history.go(-1)\">Klik hier om terug te gaan</a>";	
		}else{
		
if ($aantal != 0)
{

  echo "<center><p class=\"style2\">Controleer de bestelling voordat u deze bevestigd</p></center>";
	echo "<br><table align=\"center\" id=\"tabel_gegevens\" width=\"70%\" cellpadding=\"10\" cellspacing=\"10\">";
	echo "<tr></td><td><b>De door uw bestelde producten:</b></td><td><b>Aantal keer:</b></td><td><b>Prijs per stuk:</b></td><td><b>Totaal:</b></td></tr>";

	while ($list = mysql_fetch_object($query))
	{
		echo "<tr class=\"td_style_bevestig\"><td>$list->omschrijving: $list->bakje</td><td>$list->aantal</td><td>€$list->prijs</td><td>$list->totaalkolom</td></tr>";
	}
	if ($list1->totaalprijs >= 20.00){
		$bt	= "<b>Deze bestelling wordt telefonisch bevestigd<br>Indien u niet opneemt wordt de bestelling automatisch geannuleerd.</b>";
  }
  if ($list1->totaalprijs <= 20.00){
		$bt	= "<b>Deze bestelling wordt per e-mail bevestigd";
  }
	echo "<tr><td></td><td><p class=\"style1\">Totaal prijs:</p></td><td><p class=\"style1\">€$list1->totaalprijs</p></td><td></td></tr>";
	echo "</table>";
	echo "<br><table align=\"center\" id=\"tabel_gegevens\" width=\"70%\" cellpadding=\"10\" cellspacing=\"10\">";
	echo "<tr></td><td><b>Persoonlijke gegevens</b></td><td width=\"40%\"><b>Door u ingevuld</b></td></tr>";
	echo "<tr class=\"td_style_blue\">";
	echo "<td>Naam:</td>";
	echo "<td>$list1->naam</td>";
	echo "</tr>";
	echo "<tr class=\"td_style_none\">";
	echo "<td>Email:</td>";
	echo "<td>$list1->email</td>";
	echo "</tr>";
	echo "<tr class=\"td_style_blue\">";
	echo "<td>Telefoon nummer:</td>";
	echo "<td>$list1->telnummer</td>";
	echo "</tr>";
	echo "<tr class=\"td_style_none\">";
	echo "<td>Gewenste tijdstip van afhalen:</td>";
	echo "<td>$list1->tijdstip_afhalen</td>";
	echo "</tr>";
	echo "<tr class=\"td_style_blue\">";
	echo "<td>Extra opmerkingen:</td>";
	echo "<td class=\"extra\">";
	echo ubb($list1->extra);
	echo "</td>";
	echo "</tr>";
		echo "<tr class=\"td_style_none\">";
	echo "<td><b>Bevestigingswijze:</b></td>";
	echo "<td>". $bt ."</td>";
	echo "</tr>";
	echo "<tr class=\"td_style_blue\">";
	echo "<td><p class=\"style1\">Deze bestelling klopt en ik wil deze graag versturen</p></td>";
	echo "<td><form method=\"POST\" onSubmit=\"return confirm('Weet u het zeker?')\"><input name=\"bevestigen\" type=\"submit\" class=\"H1\" value=\"Bevestig de bestelling\" /></td>";
	echo "</tr>";
	echo "<tr class=\"td_style_none\">";
	echo "<td><p class=\"style1\">Deze bestelling klopt niet en ik wil graag terug</p></td>";
	echo "<td><input type=\"button\" class=\"H1\" value=\"Annuleer deze bestelling\" onclick=\"location.href = 'http://bestellen.eetsjopbaloe.com/annuleer.php?id=" . $_GET[id] . "'\" /></td>";
	echo "</tr>";
	echo "</form></table>";
}
else{
	$select = "SELECT * FROM bestelinfo";
  $query = mysql_query($select);
	mysql_query("DELETE FROM `bestelinfo` WHERE `bestelcode`='" . $_GET[id] . "'");
	echo "<center><p class=\"style2\">Er is geen bestelling gevonden<br>Probeer het opnieuw</p></center>";
	echo '<META HTTP-EQUIV="refresh" CONTENT="3;URL=http://eetsjopbaloe.com/index.php">';
}
}
}
?>


Groeten Ronnie Vos
Kan je je code even minimaliseren naar relevante code, en deze tussen code-tags zetten?
Verder raad ik aan om ook van de oude mysql_****() functies af te stappen en je te verdiepen in de MySQLi-driver of PDO. Als je webhosting overstapt naar PHP 7 zal je script gaan 'breken'.

Verder is het erg onnodig om elke lijn te echo'en. je kan ook prima HTML buiten PHP-blokken uitvoeren.
Ik zie bij de mailfunctie ook nergens de from en to staan. Als je zelf ook een kopie wil hebben, dan moet je dat in de cc regelen.
Zelf raad ik aan om PHPmailer te gebruiken i.p.v. de standaard PHP-functie.
Deze werkt makkelijker, je hoeft geen headers samen te stellen en het werkt efficiënter.
Oke bedankt.

Script is ooit door iemand anders gebouwd.
Zal mij is gaan verdiepen in php mailer en kijken of het lukt :).

Reageren