Contact formulier
Ik heb een contact formulier script gekregen van iemand maar als ik het test en op verzenden klik krijg ik de foutmelding:
Warning: main(is_email.inc.php): failed to open stream: No such file or directory in /home/virtual/site89/fst/var/www/html/contact.php on line 87
Fatal error: main(): Failed opening required 'is_email.inc.php' (include_path='.:/php/includes:/usr/share/php') in /home/virtual/site89/fst/var/www/html/contact.php on line 87
Dit is het ganse 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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<?php
// Variabelen:
$naam = ""; // Naam van de afzender
$emailadres = ""; // E-mailadres van de afzender
$tekst = ""; // Tekst van het e-mailbericht
$vervuild = false; // True als het formulier geen fouten bevat
$verzonden = false; // True als het e-mailbericht is verzonden
$melding = ""; // String voor (fout)meldingen
// Formulier alleen verwerken als er op een knop met de naam 'submit' is geklikt ...
if (isset($_POST['submit'])) {
// ... en deze knop de waarde 'Verzenden' heeft:
if ($_POST['submit'] == "Verzenden") {
$naam = $_POST['n'];
$emailadres = $_POST['e'];
$tekst = $_POST['t'];
// HTML-tags en PHP-code verwijderen:
$naam = strip_tags($naam);
$emailadres = strip_tags($emailadres);
$tekst = strip_tags($tekst);
// Spaties en andere witruimte verwijderen uit de naam en het e-mailadres,
// maar niet uit de tekst van het bericht:
$naam = trim($naam);
$emailadres = trim($emailadres);
if (strlen($naam) < 1) {
$melding .= "Voer uw <strong>naam</strong> in. ";
$vervuild = true;
}
if (strlen($emailadres) < 1) {
$melding .= "Voer uw <strong>e-mailadres</strong> in. ";
$vervuild = true;
} else {
require_once('is_email.inc.php');
if (!is_email($emailadres)) {
$melding .= "<strong>" . htmlentities($emailadres) . "</strong> is geen geldig e-mailadres. ";
$vervuild = true;
}
}
if (strlen($tekst) < 10) {
$melding .= "Voer een <strong>tekst</strong> in. ";
$vervuild = true;
}
// E-mailbericht verzenden als de gegevens niet vervuild zijn:
if (!$vervuild) {
// Constante voor het e-mailadres van de ontvanger:
define("AAN", "[email protected]");
// Constante voor het onderwerp:
define("ONDERWERP", "Contactformulier");
// Headers met de naam en het e-mailadres van de gebruiker:
$headers = "From: \"$naam\" <$emailadres>\r\n";
$headers .= "Reply-To: \"$naam\" <$emailadres>\r\n";
// Naam en e-mailadres toevoegen aan de tekst:
$tekst .= "\r\n\r\n$naam";
$tekst .= "\r\n<$emailadres>";
if (mail(AAN, ONDERWERP, $tekst, $headers)) {
$verzonden = true;
$melding = "Hartelijk dank voor uw reactie. ";
$melding .= "U ontvangt binnen twee werkdagen antwoord. ";
} else {
$verzonden = false;
$melding = "Uw bericht kon niet worden verzonden. ";
$melding .= "Wijzig het e-mailadres of probeer het later nog een keer. ";
}
}
}
}
// Standaardtekst voor instructies instellen als er geen foutmeldingen zijn:
if ($melding == "") {
$melding = "Voer eerst uw naam en uw e-mailadres in. ";
$melding .= "Typ daarna uw e-mailbericht in het grote vak en klik op Verzenden.";
}
?>
// Variabelen:
$naam = ""; // Naam van de afzender
$emailadres = ""; // E-mailadres van de afzender
$tekst = ""; // Tekst van het e-mailbericht
$vervuild = false; // True als het formulier geen fouten bevat
$verzonden = false; // True als het e-mailbericht is verzonden
$melding = ""; // String voor (fout)meldingen
// Formulier alleen verwerken als er op een knop met de naam 'submit' is geklikt ...
if (isset($_POST['submit'])) {
// ... en deze knop de waarde 'Verzenden' heeft:
if ($_POST['submit'] == "Verzenden") {
$naam = $_POST['n'];
$emailadres = $_POST['e'];
$tekst = $_POST['t'];
// HTML-tags en PHP-code verwijderen:
$naam = strip_tags($naam);
$emailadres = strip_tags($emailadres);
$tekst = strip_tags($tekst);
// Spaties en andere witruimte verwijderen uit de naam en het e-mailadres,
// maar niet uit de tekst van het bericht:
$naam = trim($naam);
$emailadres = trim($emailadres);
if (strlen($naam) < 1) {
$melding .= "Voer uw <strong>naam</strong> in. ";
$vervuild = true;
}
if (strlen($emailadres) < 1) {
$melding .= "Voer uw <strong>e-mailadres</strong> in. ";
$vervuild = true;
} else {
require_once('is_email.inc.php');
if (!is_email($emailadres)) {
$melding .= "<strong>" . htmlentities($emailadres) . "</strong> is geen geldig e-mailadres. ";
$vervuild = true;
}
}
if (strlen($tekst) < 10) {
$melding .= "Voer een <strong>tekst</strong> in. ";
$vervuild = true;
}
// E-mailbericht verzenden als de gegevens niet vervuild zijn:
if (!$vervuild) {
// Constante voor het e-mailadres van de ontvanger:
define("AAN", "[email protected]");
// Constante voor het onderwerp:
define("ONDERWERP", "Contactformulier");
// Headers met de naam en het e-mailadres van de gebruiker:
$headers = "From: \"$naam\" <$emailadres>\r\n";
$headers .= "Reply-To: \"$naam\" <$emailadres>\r\n";
// Naam en e-mailadres toevoegen aan de tekst:
$tekst .= "\r\n\r\n$naam";
$tekst .= "\r\n<$emailadres>";
if (mail(AAN, ONDERWERP, $tekst, $headers)) {
$verzonden = true;
$melding = "Hartelijk dank voor uw reactie. ";
$melding .= "U ontvangt binnen twee werkdagen antwoord. ";
} else {
$verzonden = false;
$melding = "Uw bericht kon niet worden verzonden. ";
$melding .= "Wijzig het e-mailadres of probeer het later nog een keer. ";
}
}
}
}
// Standaardtekst voor instructies instellen als er geen foutmeldingen zijn:
if ($melding == "") {
$melding = "Voer eerst uw naam en uw e-mailadres in. ";
$melding .= "Typ daarna uw e-mailbericht in het grote vak en klik op Verzenden.";
}
?>
<p></p>
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
// Formulier weergeven als de gegevens vervuild zijn
// of het e-mailbericht niet verzonden is:
if ($vervuild or !$verzonden) {
$naam = htmlentities($naam);
$emailadres = htmlentities($emailadres);
$tekst = htmlentities($tekst);
}
?>
// Formulier weergeven als de gegevens vervuild zijn
// of het e-mailbericht niet verzonden is:
if ($vervuild or !$verzonden) {
$naam = htmlentities($naam);
$emailadres = htmlentities($emailadres);
$tekst = htmlentities($tekst);
}
?>
<form action="" method="post">
<table border="0" cellpadding="0" cellspacing="2">
<tr>
<td width="20%"><label for="n"><span style="text-decoration: underline">N</span>aam:</label></td>
<td width="80%"><input accesskey="n" id="n" name="n" size="56" type="text" value=""></td>
</tr>
<tr>
<td nowrap><label for="e"><span style="text-decoration: underline">E</span>-mailadres:</label></td>
<td><input accesskey="e" id="e" name="e" type="text" size="56" value=""></td>
</tr>
<tr>
<td colspan="2">
<label for="t"><span style="text-decoration: underline">T</span>ekst van uw e-mailbericht:</label>
</td>
</tr>
<tr>
<td colspan="2"><textarea accesskey="t" cols="60" id="t" name="t" rows="12"></textarea></td>
</tr>
<tr>
<td> </td>
<td align="right">
<input class="knop" name="submit" type="submit" value="Verzenden">
<input class="knop" name="submit" type="submit" value="Wissen">
</td>
</tr>
</table>
</form>
require_once('is_email.inc.php');
Is lijn 87.
Alvast bedankt!
Groeten,
Bernd.
'File not found' betekent 'bestand niet gevonden'. En omdat hij require ipv include gebruikt, krijg je nog een error dat een bestand dat van heel veel belang niet kon worden geopend en dat hij daarom maar stopt.
Oplossing: is_email.inc.php in de goede directorie zetten.
Ok bedankt Jelmer!