Hallo,

Ik heb een heel simpel bestelscriptje waar je een aantal kaarten kunt bestellen.
Het werkt via een Form, welke de variabelen meestuurd naar een "sendHTMLEmail" pagina.
Op deze pagina moeten de variabelen uitgelezen worden, en een totaalbedrag moet gegenereerd worden, welke vervolgens automatisch in het mailbericht verschijnt.

De variabelen neemt de pagina prima mee, en de variabelen zijn leesbaar in het email bericht.
De rekensom om tot het totaalbedrag te komen werkt echter niet, het totaalbedrag blijft 0.

Dit zijn de variabelen:
aantal, prijs en kosten

Ik lees ze uit met een GET:
$totaal1 = $_GET['aantal'];
$totaal2 = $_GET['prijs'];
$totaal3 = $_GET['kosten'];
$antwoord = ($totaal1 * $totaal2) + $totaal3;


En de Email, pagina:

function sendHTMLEmailAuto($name, $adres, $postcode, $woonplaats, $email, $subject, $prijs, $aantal, $kosten, $antwoord){
	include("web2mail_config.php");
	$recipient = "$name <$email>";
	$rand = md5(time());
	$mime_boundary = "SNNC_". $rand;
	$sub = "$auto_subject aan $name";
	//$text_version = "$name, bedankt voor uw reservering via $your_website.\n\nMet vriendelijke groet\n$yourname\n\n\nOpmerking: Dit is een automatisch gegenereerd bericht, u kunt niet antwoorden op deze mail";
	$html_version = "<html>\n<head>\n<style>\nA:link {text-decoration: none; color: $alink_color;}\nA:visited {text-decoration: none; color: $vlink_color;}\nA:hover {font-style: normal; color: $hlink_color; text-decoration: underline;}\nBODY{font-family: $html_font; font-size: $html_font_size;}TD {font-family: $html_font; color: #000000; font-size: $html_font_size;}\n</style>\n</head>\n<body>\n\n<table border=\"0\" cellpadding=\"6\" cellspacing=\"0\" width=\"100%\">\n<tr>\n<td colspan=\"2\">Geachte $name,<br><br>Dank voor uw bestelling. Wij hebben deze in goede orde ontvangen.<br><br>Uw bestelling:<br><br></td>\n</tr>\n
<tr>\n<td nowrap width=\"1%\">Product</td>\n<td width=\"99%\">$subject</td>\n</tr>\n
<tr>\n<td nowrap width=\"1%\">Aantal</td>\n<td width=\"99%\">$aantal</td>\n</tr>\n
<tr>\n<td nowrap width=\"1%\">Prijs</td>\n<td width=\"99%\">&euro; $prijs</td>\n</tr>\n
<tr>\n<td nowrap width=\"1%\">Verzendkosten</td>\n<td width=\"99%\">&euro; $kosten</td>\n</tr>\n
<tr>\n<td nowrap width=\"1%\">Totaal</td>\n<td width=\"99%\">$antwoord</td>\n</tr>\n
En nog een zooi bla bla bla....

$antwoord moet dus het totaal bedrag geven, maar doet dit niet.

Iemand enig idee hoe ik deze "rekensom" correct op kan zetten?
(was altijd al een druiloor met wiskunde ;-) )

Groeten,
Luit
Gelieve de code tussen [code][/code] tags zetten.

$antwoord moet dus het totaal bedrag geven, maar doet dit niet.


Wat doet het wel? wordt afgerond, telt zelf btw op, geeft foutmelding.....
Hoi Ivo,

Alles werkt voor de rest. Het is het simpelste van het simpelste, er hoeft bijv. niet eens btw over berekend worden.
De 3 variabelen worden wel correct uitgelzen, deze zijn zichtbaar in het mailbericht.
Alleen het totaal bedrag ($antwoord) blijft 0. De variabelen worden dus niet bij elkaar opgeteld.
En zo dan?
<?php
$totaal1 = (int)$_GET['aantal'];
$totaal2 = (int)$_GET['prijs'];
$totaal3 = (int)$_GET['kosten'];
$antwoord = ($totaal1 * $totaal2) + $totaal3;
?>

>>> Ik lees ze uit met een GET:

Moet het geen POST zijn? Lijkt me wat vreemd om deze waardes via de url over te brengen terwijl je ze ook met het formulier kunt posten.

Let er trouwens op dat de <style> die je in je HTML mail gebruikt niet wordt ondersteund door bijv Gmail. Die accepteert alleen (beperkte) inline css.
understanding-gmail-and-css
Hoi Michael,

Helaas, totaal nog steeds 0

Update:
Het werkt!
POST was idd de oplossing.

Heel erg bedankt voor alle hulp!

Greetz,
Luit
Doe eens een var_dump() op die GET waarden.

Alles werkt voor de rest. Het is het simpelste van het simpelste, er hoeft bijv. niet eens btw over berekend worden.
De 3 variabelen worden wel correct uitgelzen, deze zijn zichtbaar in het mailbericht.
Alleen het totaal bedrag ($antwoord) blijft 0. De variabelen worden dus niet bij elkaar opgeteld.


Dat van die 0 bedoelde ik dus: het was niet duidelijk wat er mis ging. Had ook kunnen zijn dat jij prijzen met "4,95" doorgeeft en dan de .95 kwijt raakt bijvoorbeeld.

Wat ook erg handig zou zijn: error reporting aan zetten, want dan had je gewoon een melding gehad over niet bestaande GET variabelen...
Hoi Ivo,

Je mept wel een kronkel los in m'n hoofd, had nog geen rekening gehouden met cijfers achter de komma (of punt).
Dit zou voor kunnen komen in het bestelformulier. Is dit makkelijk aan te vullen op het script? Want als ik idd een getal met cijfers achter de komma gebruik, dan worden die niet meegenomen.

Werkt error reporting ook binnen een mail dan?
Zo ja, dan zal ik dat ook ff aanzetten.
<?php $prijs = $_POST['aantal'] * $_POST['prijs']; ?>

werkt ook als de prijs 4.95 is.

Zou de prijs ook 4,95 mogen zijn:

<?php $prijs = $_POST['aantal'] * str_replace(',','.',$_POST['prijs']); ?>

MAAAAR

Ik hoop dat jij niet de prijs laat posten/ bepalen door de klant?

Op die manier zijn al de nodige TV's voor 1 euro verkocht en heeft in de buurt van Utrecht een pizza-tent jaren voor bijna niets bezorgd bij hongerige studenten.
Luit Slopsema op 15/04/2014 13:07:22

De 3 variabelen worden wel correct uitgelzen, deze zijn zichtbaar in het mailbericht.

Luit Slopsema op 15/04/2014 13:19:37

POST was idd de oplossing.

Hoe kan het dan dat de 3 variabelen wel getoond werden in het mailbericht?
Dat is 1 van de redenen om geen variabelen te gaan aanmaken/kopiƫren, als je ook gewoon met de $_GET / $_POST / $_SESSION waarde kunt werken.

Reageren