Beste kenners,

Ik heb een html pagina gemaakt met een dropdownmenu. Daarin kunnen de mensen op de juiste foto kiezen. In totaal zullen er vijf van die dropdownmenu's zijn.
Nu wil ik dit formulier met de juiste keuzes in mijn mailbox krijgen. Een gewoon contactformulier lukt wel, die krijg ik al keurig in mijn mailbox maar de keuze uit het dropdownmenu krijg ik niet te zien. Zodra ik het formulier invult geeft hij een fout aan zodra het script bij de keuzemenu komt.

Het html document wat ingevuld moet worden heeft de volgde code:

<form id="Stemformulier" name="Fotowedstrijd" method="post" action="http://www.bubbles4fun.nl/contact/fotowedstrijdscrip.php">
                              <tr>
                  
                    <label>Nederland Macro:                    </label>
                  </span></td>
                  <td width="73%"><select name="Nederland Macro" id="Nederland Macro">
                    <option value="Maak je keuze" selected="selected">Maak je keuze</option>
                    <option value="Foto 1 Ned Macro">Foto1 - Nederland Macro </option>
                    <option value="Foto 2 Ned Macro">Foto 2 - Nederland Macro</option>
                    <option value="Foto 3 Ned Macro">Foto 3 - Nederland Macro</option>
                    <option value="Foto 4 Ned Macro">Foto 4 - Nederland Macro</option>
                    <option value="Foto 5 Ned Macro">Foto 5 - Nederland Macro</option>
                    <option value="Foto 6 Ned Macro">Foto 6 - Nederland Macro</option>
                    <option value="Foto 7 Ned Macro">Foto 7 - Nederland Macro</option>
                    <option value="Foto 8 Ned Macro">Foto 8 - Nederland Macro</option>
                  </select></td> 


Zo wil ik dus een vijftal keuzemenu's maken.
Het php script is als volgt

<?php
// VALUES FROM THE FORM
$naam = $_POST['Naam'];
$Emailadres = $_POST['Emailadres'];
$Nederland Macro = $_POST['selected'];
$Nederland Overige = $_POST['selected'];
$Buitenland Macro = $_POST['selected'];
$Buitenland Overige = $_POST['selected'];
$Boven water = $_POST['selected'];
$bericht = $_POST['bericht'];
// ERROR & SECURITY CHECKS
if ( ( !$email ) ||
( strlen($_POST['email']) > 100 ) ||
( !preg_match("#^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$#", $email) )
)
{
print "Er is geen geldig emailadres ingevuld";
exit;
}
if ( ( !$name ) ||
( strlen($name) > 100 ) ||
( preg_match("/[:=@\<\>]/", $name) )
)
{
print "Er is geen naam ingevuld";
exit;
}

if ( preg_match("#cc:#i", $message, $matches) )
{
print "Error: Found Invalid Header Field";
exit;
}
if (eregi("\r",$email) || eregi("\n",$email)){
print "Er is geen emailadres ingevuld";
exit;
}
if (FALSE) {
print "Error: You cannot send to an email address on the same domain.";
exit;
}



// CREATE THE EMAIL
$headers = "Content-Type: text/plain; charset=iso-8859-1\n";
$headers .= "From: $name <$email>\n";
$recipient = "[email protected]";
$subject = "Stemformulier fotowedstrijd";

$inhoud_mail = "===================================================\n";
$inhoud_mail .= "Stemformulier fotowedstrijd\n";
$inhoud_mail .= "===================================================\n\n";

$inhoud_mail .= "Naam: " . $_POST['Naam'] . "\n";
$inhoud_mail .= "Email adres: " . $_POST['Emailadres'] . "\n";
$inhoud_mail .= "Nederland Macro: " . $_POST['selected'] . "\n";
$inhoud_mail .= "Nederland Overige: " . $_POST['selected'] . "\n";
$inhoud_mail .= "Buitenland Macro: " . $_POST['selected'] . "\n";
$inhoud_mail .= "Buitenland Overige: " . $_POST['selected'] . "\n";
$inhoud_mail .= "Boven Water: " . $_POST['selected'] . "\n";
$inhoud_mail .= "bericht:\n";

$inhoud_mail .= $_POST['bericht'] . "\n\n";

$inhoud_mail .= "===================================================\n\n";

// SEND THE EMAIL TO YOU
mail($recipient, $subject, $inhoud_mail, $headers);

// REDIRECT TO THE THANKS PAGE
header("location: thanks.php");
?>


Wat doe ik fout?

Alvast bedankt voor het lezen.

Anja
Hallo Anja,

Zou je graag al je code tussen [code] en [/code] willen plaatsen, en dit willen beperken tot relevante code? I.p.v. een lap code van 150 regels.

Ook geef je al aan dat je een foutmelding krijgt, maar je vertelt niet welke foutmelding dit is. Hier zijn we ook erg benieuwd naar.
Tevens is eregi() antiek, dus daar moet je preg_match() voor gebruiken.
Je mailheaders zijn niet correct.
http://phpwiki.santhe.nl/index.php/De_juiste_mailheaders

[size=xsmall]Toevoeging op 08/10/2011 16:12:46:[/size]

Dit kan natuurlijk niet: $Nederland Macro = ....;
Gebruik in alle namen een underscore en geen spatie. Dus ook in je formuliernamen.

[size=xsmall]Toevoeging op 08/10/2011 16:15:18:[/size]

$_POST['selected'] zal niet bestaan omdat er in het formulier nergens een name="selected" staat.
Beste mensen,

Mijn excuses voor de lap tekst en ander fouten. Ben echt een beginner die mij probeer dit eigen te maken. (met de nodige boeken)

De foutmelding die ik krijg is de volgende:

Parse error: syntax error, unexpected T_STRING in /usr/home/deb15163n2/domains/bubbles4fun.nl/public_html/contact/fotowedstrijdscript.php on line 5

Tevens heb ik de spaties vervangen door underscore. De mailheaders ga ik aanpassen.

Wat moet ik invullen bij $POST ['selected']
Die error op regel 5 komt door de spatie in $Nederland Macro.
Oh.


    $Nederland Macro   = $_POST['selected'];
    $Nederland Overige = $_POST['selected'];
    $Buitenland Macro    = $_POST['selected'];
    $Buitenland Overige    = $_POST['selected'];
    $Boven water    = $_POST['selected'];

Kan korter:

$nederlandMacro = $nederlandOverige = $buitenlandMacro = $buitenlandOverig = $bovenWater = $_POST['selected'];
Nou, met jullie hulp en studie uit een boek heb ik het formulier werkend gekregen zoals ik wil. Bedankt voor het commentaar en de verbeteringen. Ik heb al gemerkt dat ik nog heel wat moet leren.....

gr,
Anja

Reageren