Onlangs had ik problemen met het maken van een invulformulier, zie dit topic.

Het grootste probleem hiervan is opgelost, ik krijg nu een mail binnen waarin de structuur van het formulier wordt genoemd, maar de variabelen worden er niet in opgenomen.

Het invulformulier staat op http://vanharten.net/stamboomonderzoek/gegevens.php (ja, nieuwe naam t.o.v. vorige posting). Het voorafgaande php-gedeelte:
<?php

if($_POST["submit"]) {
    $recipient="[email protected]";
    $subject="Informatie stamboom";
    $sender=$_POST["naam_vrager"];
    $senderEmail=$_POST["email_vrager"];


    $mailBody="Hoofdpersoon:\nNaam: $voornaam_persoon1 ( $roepnaam_persoon1 ) $tussenvoegsels_persoon1 $achternaam_persoon1 \n geboren: $geboortedatum_persoon1 te $geboorteplaats_persoon1 \n \n Relatie ($verbintenis_persoon1_persoon2 op $relatiedatum_1_2 te $relatie_plaats_1_2) met:\n\nNaam: $voornaam_persoon2 ($roepnaam_persoon2) $tussenvoegsels_persoon2 $achternaam_persoon2\ngeboren: $geboortedatum_persoon2 te $geboorteplaats_persoon2\n\nKinderen:\nAchternaam: $tussenvoegsels_kinderen $achternaam_kinderen\n$voornaam_kind_1 ($roepnaam_kind_1), geboren $geboortedatum_kind_1 te $geboorteplaats_kind_1\n$voornaam_kind_2 ($roepnaam_kind_2), geboren $geboortedatum_kind_2 te $geboorteplaats_kind_2\n$voornaam_kind_3 ($roepnaam_kind_3), geboren $geboortedatum_kind_3 te $geboorteplaats_kind_3\n$voornaam_kind_4 ($roepnaam_kind_4), geboren $geboortedatum_kind_4 te $geboorteplaats_kind_4\n$voornaam_kind_5 ($roepnaam_kind_5), geboren $geboortedatum_kind_5 te $geboorteplaats_kind_5\n$voornaam_kind_6 ($roepnaam_kind_6), geboren $geboortedatum_kind_6 te $geboorteplaats_kind_6\n\nVader:\nNaam: $voornaam_vader ($roepnaam_vader) $tussenvoegsels_vader $achternaam_vader\ngeboren: $geboortedatum_vader te $geboorteplaats_vader\n\nRelatie ($verbintenis_ouders op $relatiedatum_ouders te $relatie_plaats_ouders met:\n\nMoeder:\nNaam:\nNaam: $voornaam_moeder ($roepnaam_moeder) $tussenvoegsels_moeder $achternaam_moeder\ngeboren: $geboortedatum_moeder te $geboorteplaats_moeder\n\nGrootvader vaderskant:\nNaam: $voornamen_grootvader_vaderskant ($roepnaam_grootvader_vaderskant) $tussenvoegsels_grootvader_vaderskant $achternaam_grootvader_vaderskant\ngeboren: $geboortedatum_grootvader_vaderskant te $geboorteplaats_grootvader_vaderskant\n\nRelatie ($verbintenis_grootouders_vaderskant op $relatiedatum_grootouders_vaderskant te $relatie_plaats_grootouders_vaderskant) met:\n\nNaam: $voornamen_grootmoeder_vaderskant ($roepnaam_grootmoeder_vaderskant) $tussenvoegsels_grootmoeder_vaderskant $achternaam_grootmoeder_vaderskant\ngeboren: $geboortedatum_grootmoeder_vaderskant te $geboorteplaats_grootmoeder_vaderskant\n\nGrootvader moederskant:\nNaam: $voornamen_grootvader_moederskant ($roepnaam_grootvader_moederskant) $tussenvoegsels_grootvader_moederskant $achternaam_grootvader_moederskant\ngeboren: $geboortedatum_grootvader_moederskant te $geboorteplaats_grootvader_moederskant\n\nRelatie ($verbintenis_grootouders_moederskant op $relatiedatum_grootouders_moederskant te $relatie_plaats_grootouders_moederskant) met:\n\nNaam: $voornamen_grootmoeder_moederskant ($roepnaam_grootmoeder_moederskant) $tussenvoegsels_grootmoeder_moederskant $achternaam_grootmoeder_moederskant\ngeboren: $geboortedatum_grootmoeder_moederskant te $geboorteplaats_grootmoeder_moederskant\n\nBroers en zussen:\n$voornaam_broer_zus_1 ($roepnaam_broer_zus_1), geboren op $geboortedatum_broer_zus_1 te $geboorteplaats_broer_zus_1; $mv_broer_zus_1\n$voornaam_broer_zus_2 ($roepnaam_broer_zus_2), geboren op $geboortedatum_broer_zus_2 te $geboorteplaats_broer_zus_2; $mv_broer_zus_2\n$voornaam_broer_zus_3 ($roepnaam_broer_zus_3), geboren op $geboortedatum_broer_zus_3 te $geboorteplaats_broer_zus_3; $mv_broer_zus_3\n$voornaam_broer_zus_4 ($roepnaam_broer_zus_4), geboren op $geboortedatum_broer_zus_4 te $geboorteplaats_broer_zus_4; $mv_broer_zus_4\n$voornaam_broer_zus_5 ($roepnaam_broer_zus_5), geboren op $geboortedatum_broer_zus_5 te $geboorteplaats_broer_zus_5; $mv_broer_zus_5\n$voornaam_broer_zus_6 ($roepnaam_broer_zus_6), geboren op $geboortedatum_broer_zus_6 te $geboorteplaats_broer_zus_6; $mv_broer_zus_6\n\nOverige informatie:\n$overige_info\nUw naam: $sender\nUw adres: $adres_vrager, $pc_plaats_vrager \n Telefoon: $telefoon_vrager\n\nInformatie uitwisselen: $share\n";

    mail($recipient, $subject, $mailBody, "Van: $sender <$senderEmail>");

    $thankYou="<p><h1>Dankuwel. Uw bericht is verzonden. Ik ga voor u zoeken.</h1></p>";
}

?>


Wie kan mij vertellen wat er fout is in bovenstaande code?

Vriendelijke groet,
Guido van Harten
Thomas van den Heuvel op 06/11/2015 13:59:11

dus in plaats van $voornaam_persoon1 moet dit $_POST['voornaam_persoon1'] zijn et cetera.


Hoe combineer ik dit met andere tekst en variabelen?
Een deel uit mijn opgebouwde string:
Uw adres: $adres_afzender, $_POST["pc_plaats_afzender"]; \nE-mail:

Als test heb ik alleen nog maar gewerkt met pc_plaats_afzender. Moet er nu wel of niet een puntkomma achter? Beide lijken niet te werken.
Het gewenste resultaat moet dus zijn:
Kerkstraat 18, 1000 AA Amsterdam

Vriendelijke groet,
Guido van Harten
Er moet alleen een ; achter, als de PHP-regel ten einde is.

Je kan variabelen en strings onderscheiden met een .

Voorbeeld:

<?php
echo "Uw adres: ".$adres_afzender", ".$_POST["pc_plaats_afzender"]."\nE-mail: ".$_POST["pc_plaats_afzender"];
?>
Guido:

Er zijn in PHP een aantal manieren om met strings om te gaan maar wat mij betreft is het het beste om de variabelen BUITEN de strings te laten en de strings en variabelen met de . (punt) aan elkaar te plakken.
Ik zou standaard strings tussen enkele quotes zetten maar SQL queries tussen double quotes.

<?php

// gewone string
$text = 'Hallo dit is een tekst';

// SQL
$query = "SELECT * FROM table WHERE name='Guido'";

//Dan de . operator:
$naam = 'Guido';
$tekst = 'Hartelijk welkom ' . $naam . '.';

//Op deze manier kun je ook array elementen aan je tekst toevoegen. ($_POST is ook een array)
$tekst = 'Hartelijk welkom ' . $_POST['naam'] . '.';

?>

Let er wel op dat $_POST variabelen alleen beschikbaar zijn (bestaan) als er daadwerkelijk een formulier verzonden is of beter gezegd wanneer de REQUEST in de POST methode verstuurd is.

Dan nog even een voorbeeld van de .= operator:

<?php

$tekst = 'Hartelijk welkom ';
$naam = 'Guido';
$tekst .= $naam;
$tekst .= '.';

?>

Reageren