PHP Formulier
Hallo iedereen,
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:
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]
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.
Hey bedankt voor je reactie Wesley, helaas heb ik het nog steeds niet aan de praat gekregen. Wel heb ik een beter script gevonden(naar mijn gevoel).
Ook deze krijg ik niet aan de praat, ik zou blij wezen als een van jullie er even wil naar kijken.
Hier de HTML:
En hier de PHP script:
Als ik dan op verzenden druk krijg ik dit te zien in mijn browser:
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]
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
Waar voer je deze php uit ? Het lijkt erop alsof de php code niet uitgevoerd wordt maar gewoon getoond in je browser. Heb je dit ge-upload en voer je dit uit bij je hosting provider ?
Gewijzigd op 15/07/2010 10:19:16 door John D
Ik heb mijn eigen stukje domein gekocht bij een datacenter die gebruikt maakt van DirectAdmin. De PHP code heb ik opgeslagen op een aparte pagina genaamd contactp.php
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
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
Houd de rersultaten van de voorwaarden van de if-lus tussen brackets ( { en } )
Spreek tevens de trimfunctie aan met trim(); en niet met Trim();
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.




