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
$voornaam_persoon1, $roepnaam_persoon1, $tussenvoegsels_persoon1 $achternaam_persoon1 etc... komen allemaal uit de lucht vallen.
Ja, daar lijkt het ook op.
Maar ik gebruikte een voorbeeldscript, waarbij variabelen werden gevuld en later in een mail werden uitgevraagd. Daar ging het goed.
Ik heb (volgens mij) dezelfde werkwijze toegepast, maar toch blijkt dit niet te werken.

Vriendelijke groet,
Guido van Harten
Als die variabelen gewoon een waarde meekrijgen, dan is het opgelost.
In het formulier (zie boven) vul ik enkele gegevens (als test) in: hoofdpersoon achternaam en voornaam en helemaal onderaan een e-mailadres. Dan hebben die drie variabelen toch een waarde, nietwaar?
De PHP-code baseerde ik op dit script:
<?php

if($_POST["submit"]) {
    $recipient="[email protected]";
    $subject="Form to email message";
    $sender=$_POST["sender"];
    $senderEmail=$_POST["senderEmail"];
    $message=$_POST["message"];

    $mailBody="Name: $sender\nEmail: $senderEmail\n\n$message";

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

    $thankYou="<p>Thank you! Your message has been sent.</p>";
}

?><!DOCTYPE html>

<html>
<head>
    <meta charset="utf-8">
    <title>Contact form to email</title>
</head>

<body>

    <?=$thankYou ?>

    <form method="post" action="test.php">
        <label>Name:</label>
        <input name="sender">

        <label>Email address:</label>
        <input name="senderEmail">

        <label>Message:</label>
        <textarea rows="5" cols="20" name="message"></textarea>

        <input type="submit" name="submit">
    </form>

</body>

</html>
Dump $_POST eens na het verzenden van het formulier.

Stapsgewijs controleren wat er gebeurt is normaliter makkelijker dan helemaal aan het einde van de rit constateren dat er ergens onderweg iets mis is gegaan.
Thomas van den Heuvel op 06/11/2015 00:01:42

Dump $_POST eens na het verzenden van het formulier.


Hier faalt mijn kennis al ;) Ik dacht dat te doen door de file aan te passen:
....
        <input type="submit" name="submit">
    </form>
<?php
var_dump($_POST);
?>
</body>


Maar dat werkte dus niet. Hoe doe ik dat?

Stapsgewijs controleren wat er gebeurt is normaliter makkelijker dan helemaal aan het einde van de rit constateren dat er ergens onderweg iets mis is gegaan.


Dat deed ik al, maar er kwam helemaal geen mail binnen. Totdat ik ontdekte waar de fout zat.

Vriendelijke groet,
Guido van Harten

<?php
echo '<pre>';
print_r($_POST);
echo '</pre>';
?>
$_POST heeft alleen inhoud wanneer je je formulier hebt gesubmit.

Een betere manier om te kijken of een formulier is gePOST is:
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    // formulier gesubmit
    // hier dump je $_POST met var_dump() of print_r()
    // ...
}
?>

@Ward je kunt de uitkomst van print_r() ook retourneren als string (tweede parameter), je kunt dit verkorten tot:
<?php
echo '<pre>'.print_r($je_array, true).'</pre>';
?>
Omdat ik de bevestiging van de verzending in regel 14 van het script heb staan, heb ik daarna de regels 2-4 van Ward van der Put geplaatst. Dat geeft als resultaat de variabele MET waarden. Echter, in de mail komen deze waarden niet mee... De letterlijke tekst begint zo:
Hoofdpersoon:
Naam: ( ) 
geboren: te 
....


Wat doe ik hier fout?
Ik denk dat er een aantal zaken door elkaar lopen.

First off: vergeet voor nu even het verzenden van mail. Dit zorgt alleen maar voor verwarring.

In plaats daarvan: druk je $mailBody eens af op het scherm, zonder verzenden van mail of wat dan ook.

Wat krijg je te zien?

Weet je zeker dat er geen formulier-action verkeerd staat ofzo?

Hoe luidt je volledige actuele code nu, want fragmenten of scripts waar je je code op baseert kunnen we niets uit afleiden...

Reageren