contactform werkt niet meer?
ik ben niet zo heel erg ervaren met php, maar heb een contactformuliertje op mijn site gezet. Nu werkte deze goed, maar sinds vanacht is de server verhuisd en wordt er gebruikt gemaakt van php5 (tenminste, dat wordt mij verteld) en aangezien dat formulier gemaakt is in php4 (ook dat werd mij verteld...) schijnt het daarom niet te werken.
De mails worden wel verzonden, maar in het mailtje, zie ik de html opmaakcodes, terwijl de mail eerst wel goed werd weergegeven?!?
Iemand enig idee wat ik hier aan kan doen?
<link href="style.css" type="text/css" rel=StyleSheet>
</head>
<p class="titel">Contact</p>
<form id="form1" name="form1" method="post" action="" class="formulier">
Naam:<br />
<input type="text" name="naam" />
<br />
E-Mail adres:<br />
<input type="text" name="email" />
<br />
Onderwerp:<br />
<input type="text" name="onderwerp" />
<br />
Bericht:<br />
<textarea name="bericht" cols="45" rows="8"></textarea>
<br />
<label>
<input name="submit" type="submit" id="submit" value="Verzenden" />
</label>
<label>
<input type="reset" name="reset" value="Wissen" />
</label>
</form>
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
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
<?php
if(isset($_POST['submit'])){
if(strlen($_POST['naam']) <2 || is_numeric($_POST['naam'])){
$error = "Uw naam is niet of niet correct ingevuld.<br>";
} if(ereg ('(^[0-9a-zA-Z_\.-]{1,}@([0-9a-zA-Z_\-]{1,}\.)+[0-9a-zA-Z_\-]{2,}$)', $_POST['email']) == false){
$error .= "Uw e-mail adres is niet of niet correct ingevuld.<br>";
}if(strlen($_POST['onderwerp']) < 2){
$error .= "Het onderwerp is nog niet ingevuld.<br>";
}if(strlen($_POST['bericht']) < 3){
$error .= "U heeft nog geen bericht geplaatst.<br>";
}
if(isset($error)){
echo "U dient alle velden in te vullen:<br>";
echo "".$error."";
}else{
$naam_ontvanger = "xxx";
$email_ontvanger = "[email protected]";
$naam_verzender = $_POST['naam'];
$email_verzender = $_POST['email'];
$onderwerp = "".$_POST['onderwerp']."";
$headers = "From: ".$naam_verzender." <".$email_verzender.">\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "Return-Path: Mail-Error <[email protected]>\r\n";
$headers .= "Reply-To: ".$naam_verzender." <".$email_verzender.">\r\n";
$headers .= "Bcc: ".$email_verzender."\r\n";
$mail = "<center>-------------- <b><i>Dit bericht is verstuurd via www.xxx.nl</b></i> --------------</center><br><br>".$_POST['bericht']."
";
$bericht = nl2br($mail);
mail($email_ontvanger, $onderwerp, $bericht, $headers);
echo "Uw bericht is verzonden. <br><br>U ontvangt binnen enkele ogenblikken een e-mail ter bevestiging, indien u deze niet ontvangen heeft, stuur dan een e-mail naar [email protected]<br><br><br>";
}
}
?>
if(isset($_POST['submit'])){
if(strlen($_POST['naam']) <2 || is_numeric($_POST['naam'])){
$error = "Uw naam is niet of niet correct ingevuld.<br>";
} if(ereg ('(^[0-9a-zA-Z_\.-]{1,}@([0-9a-zA-Z_\-]{1,}\.)+[0-9a-zA-Z_\-]{2,}$)', $_POST['email']) == false){
$error .= "Uw e-mail adres is niet of niet correct ingevuld.<br>";
}if(strlen($_POST['onderwerp']) < 2){
$error .= "Het onderwerp is nog niet ingevuld.<br>";
}if(strlen($_POST['bericht']) < 3){
$error .= "U heeft nog geen bericht geplaatst.<br>";
}
if(isset($error)){
echo "U dient alle velden in te vullen:<br>";
echo "".$error."";
}else{
$naam_ontvanger = "xxx";
$email_ontvanger = "[email protected]";
$naam_verzender = $_POST['naam'];
$email_verzender = $_POST['email'];
$onderwerp = "".$_POST['onderwerp']."";
$headers = "From: ".$naam_verzender." <".$email_verzender.">\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "Return-Path: Mail-Error <[email protected]>\r\n";
$headers .= "Reply-To: ".$naam_verzender." <".$email_verzender.">\r\n";
$headers .= "Bcc: ".$email_verzender."\r\n";
$mail = "<center>-------------- <b><i>Dit bericht is verstuurd via www.xxx.nl</b></i> --------------</center><br><br>".$_POST['bericht']."
";
$bericht = nl2br($mail);
mail($email_ontvanger, $onderwerp, $bericht, $headers);
echo "Uw bericht is verzonden. <br><br>U ontvangt binnen enkele ogenblikken een e-mail ter bevestiging, indien u deze niet ontvangen heeft, stuur dan een e-mail naar [email protected]<br><br><br>";
}
}
?>
<br />
</body>
</html>
Content-type: text/html; charset=iso-8859-1
Bekijk je de mail in de zelfde e-mail client als toen hij er wel goed uitzag?
Kan namelijk zijn dat je e-mail client geen html ondersteunt of dat je het aan moet zetten
Ik krijg de onderstaande tekst te zien als ik een mail ontvang...:
Content-type: text/html; charset=iso-8859-1
Reply-To: Bas <[email protected]>
<center>-------------- <b><i>Dit bericht is verstuurd via www.xxx.nl</b></i> --------------</center><br><br>Hallo, werkt dit nog allemaal wel? volgens mij niet...<br />
<br />
De mail wordt dus niet herkend als tekst met opmaak (dat staat ook bovenin het scherm als ik het bericht open (bericht (zonder opmaak))
Gewijzigd op 01/01/1970 01:00:00 door bas
Nu snap ik er werkelijk niets meer van...
Iemand nog een idee?
Dus misschien kan je het zo proberen:
Micha, dit is niet vereist. Je hoeft niet per se te beginnen met html etc etc. Het moet dan aan de mail client liggen...
Dus het gaat daar al fout, en niet pas bij het opmaken van het bericht.
Maar waarom werkt ie dan wel bij m'n webmail en outlook 97, en bij de anderen niet?
Ook werkte het nog allemaal voordat de server verhuisde...
Kan het zijn dat ik daar iets anders moet instellen?