PHP Formulier
Ik zou me even kort voorstellen ik ben Dyon en ik ben al een tijd bezig met webdesign.
Ik heb het CSS en HTML al aardig onder de knie maar nu wil ik een formulier maken met PHP, op internet zijn er genoeg scripts te vinden dus die heb ik ook gevonden.
Zie hier mijn gevonden script:
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
if (isset($_POST['address']) && isset($_POST['subject']) && isset($_POST['body'])) {
if ($_POST['address'] == "" || $_POST['body'] == "") {
print_error();
print_form();
} else {
mail("[email protected]", $_POST['subject'], $_POST['body'] . "\n" . $_POST['address']);
print_sent();
}
} else {
print_form();
}
function print_form() {
?>
<table width=100% height=100%>
<form action="http://www.jedomein.nl/plaats/ditbestand.php" method="POST">
<table>
<tr>
<td>Uw e-mail Address:</td>
<td><input type="text" name="address"></td></tr>
<tr>
<td>Uw naam</td>
<td><input type="text" name="subject"></td></tr>
<tr><td colspan=2><textarea cols=80 rows=12 name="body" class="text">Typ hier uw commentaar</textarea></td></tr>
<tr><td> </td><td><input type="submit" value="Zend de email"></td></tr>
</form>
</table>
<?
}
function print_error() {
?>
<table width=100%>
<tr><td>Je hebt iets overgeslagen!</td></tr>
</table>
<?
}
function print_sent() {
?>
<table width=100%>
<tr><td>Bericht verzonden!</td></tr>
</table>
<?
}
?>
if (isset($_POST['address']) && isset($_POST['subject']) && isset($_POST['body'])) {
if ($_POST['address'] == "" || $_POST['body'] == "") {
print_error();
print_form();
} else {
mail("[email protected]", $_POST['subject'], $_POST['body'] . "\n" . $_POST['address']);
print_sent();
}
} else {
print_form();
}
function print_form() {
?>
<table width=100% height=100%>
<form action="http://www.jedomein.nl/plaats/ditbestand.php" method="POST">
<table>
<tr>
<td>Uw e-mail Address:</td>
<td><input type="text" name="address"></td></tr>
<tr>
<td>Uw naam</td>
<td><input type="text" name="subject"></td></tr>
<tr><td colspan=2><textarea cols=80 rows=12 name="body" class="text">Typ hier uw commentaar</textarea></td></tr>
<tr><td> </td><td><input type="submit" value="Zend de email"></td></tr>
</form>
</table>
<?
}
function print_error() {
?>
<table width=100%>
<tr><td>Je hebt iets overgeslagen!</td></tr>
</table>
<?
}
function print_sent() {
?>
<table width=100%>
<tr><td>Bericht verzonden!</td></tr>
</table>
<?
}
?>
Als ik formulier invul en laat verzenden naar mijn eigen email adress dan kom ik op deze pagina "http://www.jedomein.nl/plaats/ditbestand.php" en dat is ook logisch want dat staat in het script, maar ik ontvang helemaal geen email dus ik denk dat het met de form action gedeelte te maken heeft.
Wie zou mij kunnen uitleggen hoe ik dit script aan het werken krijg?
Ik blijf actief op dit forum en hoop hier nog veel te leren.
Met vriendelijke groeten,
Dyon
Gebruik in het vervolg voor stukken code, code tags. Dit leest voor iedereen een stuk fijner![/modedit]
Gewijzigd op 15/07/2010 10:59:48 door Bas IJzelendoorn
als dat hetzelfde script is, haal dan de action weg in je form en kijk in spam. Ook, probeer een beter, veiliger script te vinden. of gebruik phpmailer oid.
Ook deze krijg ik niet aan de praat, ik zou blij wezen als een van jullie er even wil naar kijken.
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
31
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
<form method="post" action="contactp.php">
Naam:*<br />
<label>
<input name="naam" type="text" id="naam" />
</label>
<br />
Achternaam:<br />
<label>
<input name="achternaam" type="text" id="achternaam" />
</label>
<br />
E-Mail adres:*<br />
<label>
<input name="EmailFrom" type="text" id="EmailFrom" />
</label>
<br />
Onderwerp:*<br />
<label>
<input name="onderwerp" type="text" id="onderwerp" />
</label>
<br />
Bericht:*<br />
<label>
<textarea name="bericht" cols="55" rows="6" id="bericht"></textarea>
</label>
<br />
<label>
<input type="submit" name="Submit" value="Verzenden" />
</label>
<br />
</form>
Naam:*<br />
<label>
<input name="naam" type="text" id="naam" />
</label>
<br />
Achternaam:<br />
<label>
<input name="achternaam" type="text" id="achternaam" />
</label>
<br />
E-Mail adres:*<br />
<label>
<input name="EmailFrom" type="text" id="EmailFrom" />
</label>
<br />
Onderwerp:*<br />
<label>
<input name="onderwerp" type="text" id="onderwerp" />
</label>
<br />
Bericht:*<br />
<label>
<textarea name="bericht" cols="55" rows="6" id="bericht"></textarea>
</label>
<br />
<label>
<input type="submit" name="Submit" value="Verzenden" />
</label>
<br />
</form>
En hier de PHP script:
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
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
<?php
//gemaakt door Alexander de Jong, LexSoftware
//www.lexsoftware.nl
//voorbeeld www.lexsoftware.nl/contact.htm
// Verander de gegevens $EmailTo en $Subject
$EmailFrom = Trim(stripslashes($_POST['EmailFrom']));
$EmailTo = "[email protected]";
$Subject = "contact van website";
$naam = Trim(stripslashes($_POST['naam']));
$achternaam = Trim(stripslashes($_POST['achternaam']));
$onderwerp = Trim(stripslashes($_POST['onderwerp']));
$email = Trim(stripslashes($_POST['email']));
$bericht = Trim(stripslashes($_POST['bericht']));
// !!!NIET AAN KLOOTEN!!! Valideert de gegevens
$validationOK=true;
if (Trim($EmailFrom)=="") $validationOK=false; // als dit niet werkt ("@"".") even verwijderen.
if (Trim($naam)=="") $validationOK=false;
if (Trim($onderwerp)=="") $validationOK=false;
if (Trim($bericht)=="") $validationOK=false;
if (!$validationOK) {
print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">";
exit;
}
// Dit is de mail die naar jou verzonden wordt
$Body = "";
$Body .= "naam: ";
$Body .= $naam; // zo moet jou veld naam heten
$Body .= "\n";
$Body .= "achternaam: ";
$Body .= $achternaam; // zo moet jou veld naam heten
$Body .= "\n";
$Body .= "onderwerp: ";
$Body .= $onderwerp; //zo moet jou veld naam heten
$Body .= "\n";
$Body .= "email: ";
$Body .= $EmailFrom; //zo moet jou veld naam heten
$Body .= "\n";
$Body .= "bericht: ";
$Body .= $bericht; //zo moet jou text box heten
$Body .= "\n";
// verzend de email naar jou
$success = mail($EmailTo, $Subject, $Body, "From: <$EmailFrom>");
// verzend meteen door naar 1 van de pagina's
if ($success){
print "<meta http-equiv=\"refresh\" content=\"0;URL=ok.htm\">"; // dit is de pagina voor het goedkeuren
}
else{
print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">"; // dit is de error pagina
}
?>
//gemaakt door Alexander de Jong, LexSoftware
//www.lexsoftware.nl
//voorbeeld www.lexsoftware.nl/contact.htm
// Verander de gegevens $EmailTo en $Subject
$EmailFrom = Trim(stripslashes($_POST['EmailFrom']));
$EmailTo = "[email protected]";
$Subject = "contact van website";
$naam = Trim(stripslashes($_POST['naam']));
$achternaam = Trim(stripslashes($_POST['achternaam']));
$onderwerp = Trim(stripslashes($_POST['onderwerp']));
$email = Trim(stripslashes($_POST['email']));
$bericht = Trim(stripslashes($_POST['bericht']));
// !!!NIET AAN KLOOTEN!!! Valideert de gegevens
$validationOK=true;
if (Trim($EmailFrom)=="") $validationOK=false; // als dit niet werkt ("@"".") even verwijderen.
if (Trim($naam)=="") $validationOK=false;
if (Trim($onderwerp)=="") $validationOK=false;
if (Trim($bericht)=="") $validationOK=false;
if (!$validationOK) {
print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">";
exit;
}
// Dit is de mail die naar jou verzonden wordt
$Body = "";
$Body .= "naam: ";
$Body .= $naam; // zo moet jou veld naam heten
$Body .= "\n";
$Body .= "achternaam: ";
$Body .= $achternaam; // zo moet jou veld naam heten
$Body .= "\n";
$Body .= "onderwerp: ";
$Body .= $onderwerp; //zo moet jou veld naam heten
$Body .= "\n";
$Body .= "email: ";
$Body .= $EmailFrom; //zo moet jou veld naam heten
$Body .= "\n";
$Body .= "bericht: ";
$Body .= $bericht; //zo moet jou text box heten
$Body .= "\n";
// verzend de email naar jou
$success = mail($EmailTo, $Subject, $Body, "From: <$EmailFrom>");
// verzend meteen door naar 1 van de pagina's
if ($success){
print "<meta http-equiv=\"refresh\" content=\"0;URL=ok.htm\">"; // dit is de pagina voor het goedkeuren
}
else{
print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">"; // dit is de error pagina
}
?>
Als ik dan op verzenden druk krijg ik dit te zien in mijn browser:
Code (php)
1
"; exit; } // Dit is de mail die naar jou verzonden wordt $Body = ""; $Body .= "naam: "; $Body .= $naam; // zo moet jou veld naam heten $Body .= "\n"; $Body .= "achternaam: "; $Body .= $achternaam; // zo moet jou veld naam heten $Body .= "\n"; $Body .= "onderwerp: "; $Body .= $onderwerp; //zo moet jou veld naam heten $Body .= "\n"; $Body .= "email: "; $Body .= $EmailFrom; //zo moet jou veld naam heten $Body .= "\n"; $Body .= "bericht: "; $Body .= $bericht; //zo moet jou text box heten $Body .= "\n"; // verzend de email naar jou $success = mail($EmailTo, $Subject, $Body, "From: <$EmailFrom>"); // verzend meteen door naar 1 van de pagina's if ($success){ print ""; // dit is de pagina voor het goedkeuren } else{ print ""; // dit is de error pagina } ?>
Zit er een fout in het script of ligt het aan mij?
De ID's zijn allemaal hetzelfde gebleven, body,achternaam,onderwerp etc.
Ik heb het boek van Peter Kassenaar bestelt Basiscursus PHP 5, en ik hoop dat ik hier wat meer kennis mee op doe.
Dyon
Gebruik in het vervolg voor stukken code, code tags. Dit leest voor iedereen een stuk fijner![/modedit]
Gewijzigd op 15/07/2010 11:06:17 door Bas IJzelendoorn
Gewijzigd op 15/07/2010 10:19:16 door John D
Dus als ik op verzenden klik wordt ik naar deze pagina toe gelinkt.
Ik hoop dat jullie hier wat meer aan hebben zo niet laat het even weten.
Dyon
Spreek tevens de trimfunctie aan met trim(); en niet met Trim();
Gewijzigd op 15/07/2010 12:27:20 door Wout van der Burg
Ik herken dit probleem, probeer het eens opnieuw te schrijven in een nieuw document. Volgens mij ligt het aan je document type.