Ik voel me ontzettend dom maar ik kom er gewoon niet meer uit!
Ben bezig met een script, alles gaat goed totdat ik alle gegevens moet versturen via de mail functie.

Hierbij komt de informatie bij in een variabel genaamd $message

Alleen nu kom ik met wit ruimtes te zitten in de email doordat sommmige variabelen niet ingevuld zijn.
Nu probeer ik dus met een if de legen velden er niet in te zetten maar krijg ik de error "Parse error: syntax error, unexpected T_IF in /home/jaimy/domains/jwcomputers.nl/public_html/test/next.php on line 17"

Hieronder heb ik de code. Lijn 17 is overigens de regel waar de if instaat! Iemand enig idee hoe het wel moet?


$message =

			'<table border="0">
				<tr><td>Product</td><td>Aantal</td><td>Prijs</td></tr>
				'.if(isset($_POST['naam_barbeque_a'])){.'
				<tr><td>'.$_POST['naam_barbeque_a'].'</td><td> '. $_POST['aantal_barbeque_a'].'</td><td> '. $_POST['totaal_barbeque_a'].'</td></tr>
				'.}.'
				<tr><td>'.$_POST['naam_barbeque_b'].'</td><td> '. $_POST['aantal_barbeque_b'].'</td><td> '. $_POST['totaal_barbeque_b'].'</td></tr>
				<tr><td>'.$_POST['naam_barbeque_c'].'</td><td> '. $_POST['aantal_barbeque_c'].'</td><td> '. $_POST['totaal_barbeque_c'].'</td></tr>
				<tr><td>'.$_POST['naam_kinderpakket'].'</td><td> '. $_POST['aantal_kinderpakket'].'</td><td> '. $_POST['totaal_kinderpakket'].'</td></tr>
				<tr><td>'.$_POST['naam_garnituurpakket'].'</td><td> '. $_POST['aantal_garnituurpakket'].'</td><td> '. $_POST['totaal_garnituurpakket'].'</td></tr>
				<tr><td>'.$_POST['naam_barbeque'].'</td><td> '. $_POST['aantal_barbeque'].'</td><td> '. $_POST['totaal_barbeque'].'</td></tr>
				<tr><td>'.$_POST['naam_gas'].'</td><td> '. $_POST['aantal_gas'].'</td><td> '. $_POST['totaal_gas'].'</td></tr>
				<tr><td>'.$_POST['naam_briketten'].'</td><td> '. $_POST['aantal_briketten'].'</td><td> '. $_POST['totaal_briketen'].'</td></tr>
				<tr><td>'.$_POST['naam_karbonade'].'</td><td> '. $_POST['aantal_karbonade'].'</td><td> '. $_POST['totaal_karbonade'].'</td></tr>
				<tr><td>'.$_POST['naam_speklap'].'</td><td> '. $_POST['aantal_speklap'].'</td><td> '. $_POST['totaal_speklap'].'</td></tr>
				<tr><td>'.$_POST['naam_shaslick'].'</td><td> '. $_POST['aantal_shaslick'].'</td><td> '. $_POST['totaal_shaslick'].'</td></tr>
				<tr><td>'.$_POST['naam_hawai'].'</td><td> '. $_POST['aantal_hawai'].'</td><td> '. $_POST['totaal_hawai'].'</td></tr>
				<tr><td>'.$_POST['naam_sate'].'</td><td> '. $_POST['aantal_sate'].'</td><td> '. $_POST['totaal_sate'].'</td></tr>
				<tr><td>'.$_POST['naam_junior'].'</td><td> '. $_POST['aantal_junior'].'</td><td> '. $_POST['totaal_junior'].'</td></tr>
				<tr><td>'.$_POST['naam_bbqworst'].'</td><td> '. $_POST['aantal_bbqworst'].'</td><td> '. $_POST['totaal_bbqworst'].'</td></tr>
				<tr><td>'.$_POST['naam_drumstick'].'</td><td> '. $_POST['aantal_drumstick'].'</td><td> '. $_POST['totaal_drumstick'].'</td></tr>
				<tr><td>'.$_POST['naam_hamburger'].'</td><td> '. $_POST['aantal_hamburger'].'</td><td> '. $_POST['totaal_hamburger'].'</td></tr>
				<tr><td>'.$_POST['naam_varkenshaas'].'</td><td> '. $_POST['aantal_varkenshaas'].'</td><td> '. $_POST['totaal_varkenshaas'].'</td></tr>
				<tr><td>'.$_POST['naam_varkensfilet'].'</td><td> '. $_POST['aantal_varkensfilet'].'</td><td> '. $_POST['totaal_varkensfilet'].'</td></tr>
				<tr><td>'.$_POST['naam_biefstuk'].'</td><td> '. $_POST['aantal_biefstuk'].'</td><td> '. $_POST['totaal_biefstuk'].'</td></tr>
				<tr><td>'.$_POST['naam_spareribs'].'</td><td> '. $_POST['aantal_spareribs'].'</td><td> '. $_POST['totaal_spareribs'].'</td></tr>
				<tr><td>'.$_POST['naam_entrecote'].'</td><td> '. $_POST['aantal_entrecote'].'</td><td> '. $_POST['totaal_entrecote'].'</td></tr>
				<tr><td>'.$_POST['naam_lamskotelet'].'</td><td> '. $_POST['aantal_lamskotelet'].'</td><td> '. $_POST['totaal_lamskotelet'].'</td></tr>
				<tr><td>'.$_POST['naam_biefstukspies'].'</td><td> '. $_POST['aantal_biefstukspies'].'</td><td> '. $_POST['totaal_biefstukspies'].'</td></tr>
				<tr><td>'.$_POST['naam_procureursteak'].'</td><td> '. $_POST['aantal_procureursteak'].'</td><td> '. $_POST['totaal_procureursteak'].'</td></tr>
				<tr><td>'.$_POST['naam_kipfiletspies'].'</td><td> '. $_POST['aantal_kipfiletspies'].'</td><td> '. $_POST['totaal_kipfiletspies'].'</td></tr>
				<tr><td>'.$_POST['naam_v_shaslick'].'</td><td> '. $_POST['aantal_v_shaslick'].'</td><td> '. $_POST['totaal_v_shaslick'].'</td></tr>
				<tr><td>'.$_POST['naam_v_karbonade'].'</td><td> '. $_POST['aantal_v_karbonade'].'</td><td> '. $_POST['totaal_v_karbonade'].'</td></tr>
				<tr><td>'.$_POST['naam_v_hawai'].'</td><td> '. $_POST['aantal_v_hawai'].'</td><td> '. $_POST['totaal_v_hawai'].'</td></tr>
				<tr><td>'.$_POST['naam_v_sate'].'</td><td> '. $_POST['aantal_v_sate'].'</td><td> '. $_POST['totaal_v_sate'].'</td></tr>
				<tr><td>'.$_POST['naam_v_junior'].'</td><td> '. $_POST['aantal_v_junior'].'</td><td> '. $_POST['totaal_v_junior'].'</td></tr>
				<tr><td>'.$_POST['naam_v_speklap'].'</td><td> '. $_POST['aantal_v_speklap'].'</td><td> '. $_POST['totaal_v_speklap'].'</td></tr>
				<tr><td>'.$_POST['naam_v_bbqworst'].'</td><td> '. $_POST['aantal_v_bbqworst'].'</td><td> '. $_POST['totaal_v_bbqworst'].'</td></tr>
				<tr><td>'.$_POST['naam_knoflooksaus'].'</td><td> '. $_POST['aantal_knoflooksaus'].'</td><td> '. $_POST['totaal_knoflooksaus'].'</td></tr>
				<tr><td>'.$_POST['naam_cocktailsaus'].'</td><td> '. $_POST['aantal_cocktailsaus'].'</td><td> '. $_POST['totaal_cocktailsaus'].'</td></tr>
				<tr><td>'.$_POST['naam_barbecuesaus'].'</td><td> '. $_POST['aantal_barbecuesaus'].'</td><td> '. $_POST['totaal_barbecuesaus'].'</td></tr>
				<tr><td>'.$_POST['naam_satesaus'].'</td><td> '. $_POST['aantal_satesaus'].'</td><td> '. $_POST['totaal_satesaus'].'</td></tr>
				<tr><td>'.$_POST['naam_joppiesaus'].'</td><td> '. $_POST['aantal_joppiesaus'].'</td><td> '. $_POST['totaal_joppiesaus'].'</td></tr>
				<tr><td>'.$_POST['naam_mosterdsaus'].'</td><td> '. $_POST['aantal_mosterdsaus'].'</td><td> '. $_POST['totaal_mosterdsaus'].'</td></tr>
				<tr><td>'.$_POST['naam_rundvleessalade'].'</td><td> '. $_POST['aantal_rundvleessalade'].'</td><td> '. $_POST['totaal_rundvleessalade'].'</td></tr>
				<tr><td>'.$_POST['naam_kipkerriesalade'].'</td><td> '. $_POST['aantal_kipkerriesalade'].'</td><td> '. $_POST['totaal_kipkerriesalade'].'</td></tr>
				<tr><td>'.$_POST['naam_zalmsalade'].'</td><td> '. $_POST['aantal_zalmsalade'].'</td><td> '. $_POST['totaal_zalmsalade'].'</td></tr>
				<tr><td>'.$_POST['naam_huzarensalade'].'</td><td> '. $_POST['aantal_huzarensalade'].'</td><td> '. $_POST['totaal_huzarensalade'].'</td></tr>
				<tr><td>'.$_POST['naam_scharreleisalade'].'</td><td> '. $_POST['aantal_scharreleisalade'].'</td><td> '. $_POST['totaal_scharreleisalade'].'</td></tr>
				<tr><td>'.$_POST['naam_kruidenboter'].'</td><td> '. $_POST['aantal_kruidenboter'].'</td><td> '. $_POST['totaal_kruidenboter'].'</td></tr>
				<tr><td>'.$_POST['naam_stokbrood_wit'].'</td><td> '. $_POST['aantal_stokbrood_wit'].'</td><td> '. $_POST['totaal_stokbrood_wit'].'</td></tr>
				<tr><td>'.$_POST['naam_stokbrood_gesneden'].'</td><td> '. $_POST['aantal_stokbrood_gesneden'].'</td><td> '. $_POST['totaal_stokbrood_gesneden'].'</td></tr>
			</table>';
En ik ga je aanraden de velden in een array te steken.
Die array gebruik je dan bij het tonen van de velden én het controleren. Zo wordt je code veel compacter en overzichtelijker.
Je moet altijd proberen om zo min mogelijk dezelfde code te schrijven. Ik zou gaan werken met een array. Ik zal wel even een stukje voordoen voor je:

<?php
$options = array('barbeque_a', 'barbeque_b', 'barbeque_c', 'kinderpakket'); // hier zet je alle opties in
$message = '<table><tr><td>Product</td><td>Aantal</td><td>Prijs</td></tr>';
foreach ($options as $option) {
// we gaan nu alle opties doorlopen en controleren of deze optie "gepost" is
if (isset($_POST[$option])) {
// de optie is gepost, we gaan het bericht ($message) aanvullen!
message .= '<tr><td>' . $_POST['naam_' . $option] . '</td><td>' . $_POST['aantal_' . $option] . '</td><td>' . $_POST['totaal_' . $option] . '</td></tr>';
}
}
$message .= '</table>';
?>

(Ik heb het niet getest, dus misschien zit er een foutje in...)
Beste Kjeld,
Bovenstaand tref je heel zinvolle opmerkingen aan om reeksen efficient af te handelen, maar dat was helemaal geen antwoord op wat je eigenlijk vroeg.
Je vroeg je af waarom je de foutmelding "... unexpected T_IF ..." krijgt op de volgende regel.

<?php
'string'.if(isset($_POST['naam_barbeque_a'])){.'string'.}.'string';
?>

Het antwoord is eenvoudig: met een punt (.) kun je strings aan elkaar plakken. Maar "if()" is geen string en die kun je er dus niet op deze manier aanplakken.
Je moet dus iets doen als:

<?php
$message = 'string';
if(isset($_POST['naam_barbeque_a'])){
  $message = $message . 'string';
}
?>
Mensen, ik heb het antwoord hierboven al gegeven hoor? Misschien handig om eerst even de reactie van de TS af te wachten zodat we weten of het probleem is opgelost.
Ozzie PHP op 05/11/2012 10:21:34

Mensen, ik heb het antwoord hierboven al gegeven hoor? Misschien handig om eerst even de reactie van de TS af te wachten zodat we weten of het probleem is opgelost.

Volgens het TIMTOWTDI-principe is jouw antwoord niet het enige juiste. ;-) Zelf zou ik het als TS in ieder geval wel handig vinden om meerdere alternatieven te lezen waaruit ik vervolgens de keuze kan maken welke het best bij mijn situatie past. Daarnaast kunnen alternatieven ook nog inspiratie geven voor het oplossen van andere problemen.
Wat is het TIMTOWTDI-principe?

Daarnaast... mijn oplossing is kant en klaar, en in dit geval ook logischer want in jouw voorbeeld spreek je over een "deel2" terwijl er helemaal geen deel2 is.

Daarnaast... waarschijnlijk is de TS een beginneling en wordt het hem op deze manier alleen maar moeilijker gemaakt.

En je hebt gelijk dat er voor een probleem meerdere oplossingen zijn, maar laten we eerst even de reactie van de TS afwachten.
Ik moest het TIMTOWTDI ook even Googlen..... kostte mij 3 seconden om te weten wat het betekende.

Beginnelingen zijn niet per se dom of zo. En ze moeten het goed leren, weten dat er meerdere wegen naar het figuurlijke Rome leiden.
Wel ben ik met je eens dat Ozzie's code gewoon goed is.

Reageren