Problemen met variabelen
Ik wil nu dat wanneer iemand mijn formulier invult en opstuurt, dat ie ook daadwerkelijk in mijn emailbox terechtkomt ( ik weet dat ie dan op de server moet staan )... Hiervoor heb ik 2 index.php in de map contact. Ik gebruik de volgende code:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?php
//E-mail die wordt verzonden
$recipient="MIJNEMAILADRES!@!@!@!@";
$subject="Een aanvraag van het internet";
$header="From: " . $email . "\r\n";
$mail_body ="Het aanvraagformulier is op " . date("d-m-y") . " om "
. date("H:I") . "uur verzonden.\n";
$mail_body.="Het bevat de volgende inhoud: \n\n";
$mail_body.="Naam: " . $naam . "\n";
$mail_body.="Email: " . $email . "\n\n";
$mail_body.="Vraag:\n";
$mail_body.=$vraag . "\n\n ---- Einde van de automatische e-mail ----";
mail($recipient,$subject,$mail_body,$header);
?>
<?php
//Formulier verzonden - Melding
if(isset($_POST['Verzenden'])){
echo "Bedankt voor uw vraag.";}else{
?>
<?php
//Alle invoer die niet is toegestaan
$naam=strip_tags($_POST['naam']);
$email=strip_tags($_POST['email']);
$vraag=strip_tags($_POST['vraag']);
?>
<form name="Contact" action="<?php echo $_SERVER['PHP_SELF'] ?>" method="POST"
<p><strong>Typ hier uw gegevens:</strong></p>
<p>
<label for="Naam">Naam</label>
:
<input type="text" name="naam" id="Naam">
</p>
<p>
<label for="email">E-mail :</label>
<input type="text" name="email" id="email">
</p>
<p>
<label for="Vraag">Uw vraag :</label>
<textarea name="Vraag" id="vraag" cols="45" rows="5"></textarea>
</p>
<p>
<input type="Submit" name="Verzenden" id="Verzenden" value="Snel opsturen!">
</p>
</form>
<?php
}
?>
//E-mail die wordt verzonden
$recipient="MIJNEMAILADRES!@!@!@!@";
$subject="Een aanvraag van het internet";
$header="From: " . $email . "\r\n";
$mail_body ="Het aanvraagformulier is op " . date("d-m-y") . " om "
. date("H:I") . "uur verzonden.\n";
$mail_body.="Het bevat de volgende inhoud: \n\n";
$mail_body.="Naam: " . $naam . "\n";
$mail_body.="Email: " . $email . "\n\n";
$mail_body.="Vraag:\n";
$mail_body.=$vraag . "\n\n ---- Einde van de automatische e-mail ----";
mail($recipient,$subject,$mail_body,$header);
?>
<?php
//Formulier verzonden - Melding
if(isset($_POST['Verzenden'])){
echo "Bedankt voor uw vraag.";}else{
?>
<?php
//Alle invoer die niet is toegestaan
$naam=strip_tags($_POST['naam']);
$email=strip_tags($_POST['email']);
$vraag=strip_tags($_POST['vraag']);
?>
<form name="Contact" action="<?php echo $_SERVER['PHP_SELF'] ?>" method="POST"
<p><strong>Typ hier uw gegevens:</strong></p>
<p>
<label for="Naam">Naam</label>
:
<input type="text" name="naam" id="Naam">
</p>
<p>
<label for="email">E-mail :</label>
<input type="text" name="email" id="email">
</p>
<p>
<label for="Vraag">Uw vraag :</label>
<textarea name="Vraag" id="vraag" cols="45" rows="5"></textarea>
</p>
<p>
<input type="Submit" name="Verzenden" id="Verzenden" value="Snel opsturen!">
</p>
</form>
<?php
}
?>
Nu geeft ie dus aan dat mijn variabelen $name, $email en $vraag niet juist zijn. Iemand een ideetje?
Graag in het vervolg bij code, [code] [/code] tags gebruiken.[/modedit]
Gewijzigd op 19/12/2010 11:30:48 door Joren de Wit
code] en [/code] tags hier op het forum om code te plaatsen.
Kijk eens naar je code. Waar gebruik je de variabelen, en waar zijn ze gedefinieerd?
Verder heb je mail injections. Om te controleren of een post is gedaan, doe je met if($_SERVER['REQUEST_METHOD'] == 'POST').
Ook is het beter om swiftmailer te gebruiken, werkt beter dan php's eigen mail functie.
Gebruik [Kijk eens naar je code. Waar gebruik je de variabelen, en waar zijn ze gedefinieerd?
Verder heb je mail injections. Om te controleren of een post is gedaan, doe je met if($_SERVER['REQUEST_METHOD'] == 'POST').
Ook is het beter om swiftmailer te gebruiken, werkt beter dan php's eigen mail functie.
http://swiftmailer.org/docs/sending-quickref
In je form hoe je geen action in te vullen als het op de zelfde pagina is.
verzorg ook dat de variabelen worden gecontroleerd!
dus is naam wel ingevuld?
is de email wel een geldig email adres?
succes