Naam is 1???
Ik ben nu een tijdje met php bezig, maar ik heb hier een fout waar ik niet helemaal uitkom.
hij zegt als ik het formulier helemaal heb ingevult, dat naam "1" is en emailadres ook "1" is... maar het "bericht" word wel goed weergegeven.
hier de html:
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
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
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Basic PHP Page</title>
</head>
<div align="center">
<form action="handle_form.php" method="post">
<fieldset>
<legend align="center">
vul je gegevens hieronder in:
</legend>
<table>
<tr><td>Naam:</td><td><input type="text" name="naam" maxlength="40" size="25"/><br /></td>
<tr><td>Emailadres:</td><td><input type="text" name="emailadres" maxlength:"100" /><br /></td>
<tr><td>Telefoonnummer (optioneel):</td><td><input type="text" name="telefoonnummer" maxlength="30" /><br /></td>
<tr><td>Bericht:</td> <td><textarea name="bericht" rows="5"></textarea><br /></td><br />
</table>
</fieldset>
<input type="submit" name="submit" value="verzenden"/><br />
</form>
</div>
<body>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Basic PHP Page</title>
</head>
<div align="center">
<form action="handle_form.php" method="post">
<fieldset>
<legend align="center">
vul je gegevens hieronder in:
</legend>
<table>
<tr><td>Naam:</td><td><input type="text" name="naam" maxlength="40" size="25"/><br /></td>
<tr><td>Emailadres:</td><td><input type="text" name="emailadres" maxlength:"100" /><br /></td>
<tr><td>Telefoonnummer (optioneel):</td><td><input type="text" name="telefoonnummer" maxlength="30" /><br /></td>
<tr><td>Bericht:</td> <td><textarea name="bericht" rows="5"></textarea><br /></td><br />
</table>
</fieldset>
<input type="submit" name="submit" value="verzenden"/><br />
</form>
</div>
<body>
</body>
</html>
en de php:
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>verzonden!</title>
</head>
<?php
$naam = $_REQUEST['naam'];
$emailadres = $_REQUEST['emailadres'];
$telefoonnummer = $_REQUEST['telefoonnummer'];
$bericht = $_REQUEST['bericht'];
if (!empty($_REQUEST['naam'])){$naam = $_REQUEST['naam'];
}
else { echo "<b>Je bent vergeten een naam in te vullen!</b><br />";
}
if (!empty($_REQUEST['emailadres'])) {$emailadres = $_REQUEST['emailadres'];
}
else { echo "<b>Je bent vergeten een emailadres in te vullen!<br />";
}
if(!empty($_REQUEST['bericht'])) {$bericht = $_REQUEST['bericht'];
}
else { echo "<b>Je bent vergeten een bericht toe te voegen!<br /></b>";
}
if ($naam = $_REQUEST['naam'] && $emailadres = $_REQUEST['emailadres'] && $bericht = $_REQUEST['bericht']){
echo "Bedankt, <b>$naam</b>, voor het volgende bericht:<br /><br />
------------------------------------------------------------------<br />
<i>$bericht</i> <br /><br />
------------------------------------------------------------------<br />
Wij streven ernaar om uw mail binnen 48 uur te beandwoorden.<br /><br />
Maar wij kunnen niet garanderen dat dit ten alle tijden gebeurt, dank voor uw begrip.<br /><br />
Wij zullen de mail beandwoorden op:
<b>$emailadres</b><br />
<br />
Groeten Teen Screen" ;
}
else {
echo "je hebt niet alle velden ingevuld!";
}
?>
<body>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>verzonden!</title>
</head>
<?php
$naam = $_REQUEST['naam'];
$emailadres = $_REQUEST['emailadres'];
$telefoonnummer = $_REQUEST['telefoonnummer'];
$bericht = $_REQUEST['bericht'];
if (!empty($_REQUEST['naam'])){$naam = $_REQUEST['naam'];
}
else { echo "<b>Je bent vergeten een naam in te vullen!</b><br />";
}
if (!empty($_REQUEST['emailadres'])) {$emailadres = $_REQUEST['emailadres'];
}
else { echo "<b>Je bent vergeten een emailadres in te vullen!<br />";
}
if(!empty($_REQUEST['bericht'])) {$bericht = $_REQUEST['bericht'];
}
else { echo "<b>Je bent vergeten een bericht toe te voegen!<br /></b>";
}
if ($naam = $_REQUEST['naam'] && $emailadres = $_REQUEST['emailadres'] && $bericht = $_REQUEST['bericht']){
echo "Bedankt, <b>$naam</b>, voor het volgende bericht:<br /><br />
------------------------------------------------------------------<br />
<i>$bericht</i> <br /><br />
------------------------------------------------------------------<br />
Wij streven ernaar om uw mail binnen 48 uur te beandwoorden.<br /><br />
Maar wij kunnen niet garanderen dat dit ten alle tijden gebeurt, dank voor uw begrip.<br /><br />
Wij zullen de mail beandwoorden op:
<b>$emailadres</b><br />
<br />
Groeten Teen Screen" ;
}
else {
echo "je hebt niet alle velden ingevuld!";
}
?>
<body>
</body>
</html>
de fout is erin gekomen toen ik de volgende code toevoegde:
Code (php)
1
if ($naam = $_REQUEST['naam'] && $emailadres = $_REQUEST['emailadres'] && $bericht = $_REQUEST['bericht']){
en alles wat eronder staat m.b.t de if/else. de text die de if moet weergeven stond er wel al.
let er even niet op dat hij hem niet verzend. dit weet ik. maar dit komt er pas in als dit allemaal werkt.
Groeten Bart Roelofs
Gebruik $_POST[''] ipv $_REQUEST[''] !
Groeten Bart Roelofs
Toevoeging op 21/05/2011 11:09:39:
zojuist alles vervangen door $_POST, maar dit maakt geen verschil. nog steeds is naam 1 en emailadres ook 1... bericht klopt nog steeds.
Bart Roelofs
Nee, klopt de fout zit ergens anders. zie zo gauw even niet waar, maar je kan beter post gebruiken ipv request.
- regel 8 - 11 is onnodig variabelen kopiëren. Laat dit gewoon weg en gebruik $_POST['varnaam'] in je code i.p.v $varnaam
- variabelen moeten buiten quotes. Dus niet "Hallo $naam" maar 'Hallo '.$naam
- Als je iets wilt vergelijken moet je == gebruiken. Voorbeeld:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
// Hier gebruiken we = omdat we iets toewijzen aan een var
$naam = 'Wouter';
// Hier gebruiken we == omdat we kijken of $naam gelijk is aan Wouter
if($naam == 'Wouter')
# Deze geeft true, 'Wouter' is gelijk aan 'Wouter'
$nummer = 1;
// Hier gebruiken we == om te kijken of $nummer gelijk is aan 1
if($nummer == 1)
# Deze geeft true, 1 is gelijk aan 1
// Hier gebruiken we === om te kijken of $nummer precies gelijk is.
// Dus ook qua type dus niet een string met een int
if($nummer === '1')
# Deze geeft false, aangezien 1 (int) niet hetzelfde is als '1' (string
// Hier kijken we weer of het gelijk is, maar niet precies gelijk.
if($nummer == '1')
# Deze geeft true, 1 is gelijk aan '1' alleen het zijn andere types.
?>
// Hier gebruiken we = omdat we iets toewijzen aan een var
$naam = 'Wouter';
// Hier gebruiken we == omdat we kijken of $naam gelijk is aan Wouter
if($naam == 'Wouter')
# Deze geeft true, 'Wouter' is gelijk aan 'Wouter'
$nummer = 1;
// Hier gebruiken we == om te kijken of $nummer gelijk is aan 1
if($nummer == 1)
# Deze geeft true, 1 is gelijk aan 1
// Hier gebruiken we === om te kijken of $nummer precies gelijk is.
// Dus ook qua type dus niet een string met een int
if($nummer === '1')
# Deze geeft false, aangezien 1 (int) niet hetzelfde is als '1' (string
// Hier kijken we weer of het gelijk is, maar niet precies gelijk.
if($nummer == '1')
# Deze geeft true, 1 is gelijk aan '1' alleen het zijn andere types.
?>
bedankt
Bart Roelofs
gebruik deze code voor je php... dan werkt die;)
Wel even het bericht van wouter doorlezen en mijn commentaar zodat je het een beetje snapt;)
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<?php
// kijken of het veld naam niet leeg is.
if (empty($_POST['naam']))
{
// als die leeg is een foutmelding weergeven.
echo "<b>Je bent vergeten een naam in te vullen!</b><br />";
}
// kijken of het veld emailadres niet leeg is.
elseif (empty($_POST['emailadres']))
{
// als die leeg is een foutmelding weergeven.
echo "<b>Je bent vergeten een emailadres in te vullen!<br />";
}
// kijken of het veld bericht niet leeg is.
elseif(empty($_POST['bericht']))
{
// anders foutmelding weergeven.
echo "<b>Je bent vergeten een bericht toe te voegen!<br /></b>";
}
// als er geen foutmeldingen zijn hiermee doorgaan.
else
{
// kijken of het veld telefoonnummer is ingevuld.
if (!empty($_POST['telefoonnummer']))
{
//als het veld is ingevuld een variabele vullen.
$telefoonnummer = $_POST['telefoonnummer'];
}
// de rest van de variabeles vullen.
$naam = $_POST['naam'];
$emailadres = $_POST['emailadres'];
$bericht = $_POST['bericht'];
// hier het bericht laten zien
echo 'Bedankt, <b>'.$naam.'</b>, voor het volgende bericht:<br /><br />
------------------------------------------------------------------<br />
<i>'.$bericht.'</i> <br /><br />
------------------------------------------------------------------<br />
Wij streven ernaar om uw mail binnen 48 uur te beandwoorden.<br /><br />
Maar wij kunnen niet garanderen dat dit ten alle tijden gebeurt, dank voor uw begrip.<br /><br />
Wij zullen de mail beandwoorden op:
<b>'.$emailadres.'</b><br />
<br />
Groeten Teen Screen';
}
?>
// kijken of het veld naam niet leeg is.
if (empty($_POST['naam']))
{
// als die leeg is een foutmelding weergeven.
echo "<b>Je bent vergeten een naam in te vullen!</b><br />";
}
// kijken of het veld emailadres niet leeg is.
elseif (empty($_POST['emailadres']))
{
// als die leeg is een foutmelding weergeven.
echo "<b>Je bent vergeten een emailadres in te vullen!<br />";
}
// kijken of het veld bericht niet leeg is.
elseif(empty($_POST['bericht']))
{
// anders foutmelding weergeven.
echo "<b>Je bent vergeten een bericht toe te voegen!<br /></b>";
}
// als er geen foutmeldingen zijn hiermee doorgaan.
else
{
// kijken of het veld telefoonnummer is ingevuld.
if (!empty($_POST['telefoonnummer']))
{
//als het veld is ingevuld een variabele vullen.
$telefoonnummer = $_POST['telefoonnummer'];
}
// de rest van de variabeles vullen.
$naam = $_POST['naam'];
$emailadres = $_POST['emailadres'];
$bericht = $_POST['bericht'];
// hier het bericht laten zien
echo 'Bedankt, <b>'.$naam.'</b>, voor het volgende bericht:<br /><br />
------------------------------------------------------------------<br />
<i>'.$bericht.'</i> <br /><br />
------------------------------------------------------------------<br />
Wij streven ernaar om uw mail binnen 48 uur te beandwoorden.<br /><br />
Maar wij kunnen niet garanderen dat dit ten alle tijden gebeurt, dank voor uw begrip.<br /><br />
Wij zullen de mail beandwoorden op:
<b>'.$emailadres.'</b><br />
<br />
Groeten Teen Screen';
}
?>
die werkt inderdaad ook.
Bart Roelofs
Ja en ziet er iets beter uit.. Alleen zou ik nog niet voor deze opmaak gaan of voor deze manier van scripten maar ieder zijn manier.
bedoel je hoe ik de tabs verdeel?