Mailfunctie werkt niet met mod_rewrite
Ik heb sinds een week op een website de .htaccess zo aangepast dat je geen www.iets.nl/?pagina=home meer ziet maar www.iets.nl/home.
Dit werkt allemaal subliem maar nu kom ik erachter dat mijn contactformulier niet meer werkt. Als ik hem wil versturen geeft hij een wit scherm. Het rare is dat wanneer ik de oude url-notatie (vb: www.iets.nl/?pagina=home) gebruik, hij het wel goed doet. Iemand een oplossing?
Alvast bedankt
Quote:
Met enkel deze informatie zonder een stukje code wordt het heel lastig om je te helpen...Als ik hem wil versturen geeft hij een wit scherm.
Wellicht dat het ligt aan urls die je in je contactformulier gebruikt. Het zou kunnen dat die door de mod rewrite niet juist geinterpreteerd worden? Maar nogmaals, zonder iets van code wordt het erg lastig je te helpen.
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
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
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST'){
if(!empty($_POST["achternaam"]) && !empty($_POST["voornaam"]) && !empty($_POST["email"]) && !empty($_POST["onderwerp"]) && !empty($_POST["bericht"])){
$mail_naar = '[email protected]';
$achternaam = $_POST["achternaam"];
$voornaam = $_POST["voornaam"];
$email = $_POST["email"];
$onderwerp = $_POST["onderwerp"];
$bericht = $_POST["bericht"];
$bericht = nl2br($bericht);
$bericht = wordwrap($bericht, 70, '', 1);
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'To: Praktijk Cerpentier <[email protected]>' . "\r\n";
$headers .= 'From: ' .$voornaam. ' ' .$achternaam. ' <'.$email.'>' . "\r\n";
$email_check = email_validator($email);
if($email_check == 'ja'){
mail($mail_naar, $onderwerp, $bericht, $headers);
?>
<div class="bar">
<h1 style="color:#00CC33">Bericht is verzonden</h1>
<p>Het bericht is verstuurd. Bedankt voor uw reactie, u krijgt zo snel mogelijk antwoord.</p>
</div>
<?php
}else{
?>
<div class="bar">
<h1 style="color:#FF0000">Er is een fout ontstaan bij het verzenden</h1>
<p>Emailadres is niet geldig.</p>
</div>
<?php
}
}else{
?>
<div class="bar">
<h1 style="color:#FF0000">Er is een fout ontstaan bij het verzenden</h1>
<p>Niet alle verplichte velden zijn volledig ingevuld.</p>
</div>
<?php
}
}else{
?>
if($_SERVER['REQUEST_METHOD'] == 'POST'){
if(!empty($_POST["achternaam"]) && !empty($_POST["voornaam"]) && !empty($_POST["email"]) && !empty($_POST["onderwerp"]) && !empty($_POST["bericht"])){
$mail_naar = '[email protected]';
$achternaam = $_POST["achternaam"];
$voornaam = $_POST["voornaam"];
$email = $_POST["email"];
$onderwerp = $_POST["onderwerp"];
$bericht = $_POST["bericht"];
$bericht = nl2br($bericht);
$bericht = wordwrap($bericht, 70, '', 1);
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'To: Praktijk Cerpentier <[email protected]>' . "\r\n";
$headers .= 'From: ' .$voornaam. ' ' .$achternaam. ' <'.$email.'>' . "\r\n";
$email_check = email_validator($email);
if($email_check == 'ja'){
mail($mail_naar, $onderwerp, $bericht, $headers);
?>
<div class="bar">
<h1 style="color:#00CC33">Bericht is verzonden</h1>
<p>Het bericht is verstuurd. Bedankt voor uw reactie, u krijgt zo snel mogelijk antwoord.</p>
</div>
<?php
}else{
?>
<div class="bar">
<h1 style="color:#FF0000">Er is een fout ontstaan bij het verzenden</h1>
<p>Emailadres is niet geldig.</p>
</div>
<?php
}
}else{
?>
<div class="bar">
<h1 style="color:#FF0000">Er is een fout ontstaan bij het verzenden</h1>
<p>Niet alle verplichte velden zijn volledig ingevuld.</p>
</div>
<?php
}
}else{
?>
Het contactformulier bevat geen verdere urls.
Gewijzigd op 01/01/1970 01:00:00 door Niels
Verder denk ik niet dat hier het probleem zit, zeker niet als je verwacht dat het door de mod rewrite komt. Laat de code van je formulier eens zien, ik ben namelijk benieuwd welke url je als 'action' je opgegeven hebt in je form tag...
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 action="#" method="post">
<div class="line">
<span>Naam:</span>
<input type="text" class="tekst" name="achternaam" value="<?php echo($_POST["achternaam"]); ?>" />
</div>
<div class="line">
<span>Voorna(a)m(en):</span>
<input type="text" class="tekst" name="voornaam" value="<?php echo($_POST["voornaam"]); ?>" />
</div>
<div class="line">
<span>E-mail adres:</span>
<input type="text" class="tekst" name="email" value="<?php echo($_POST["email"]); ?>" />
</div>
<div class="line">
<span>Onderwerp bericht:</span>
<input type="text" class="tekst" name="onderwerp" value="<?php echo($_POST["onderwerp"]); ?>" />
</div>
<div class="line">
<span>Bericht:</span>
<textarea name="bericht" cols="" rows=""><?php echo($_POST["bericht"]); ?></textarea>
</div>
<div class="line">
<span>Bevestigen:</span>
<input type="submit" class="knop" name="versturen" value="Bericht versturen" />
</div>
</form>
<div class="line">
<span>Naam:</span>
<input type="text" class="tekst" name="achternaam" value="<?php echo($_POST["achternaam"]); ?>" />
</div>
<div class="line">
<span>Voorna(a)m(en):</span>
<input type="text" class="tekst" name="voornaam" value="<?php echo($_POST["voornaam"]); ?>" />
</div>
<div class="line">
<span>E-mail adres:</span>
<input type="text" class="tekst" name="email" value="<?php echo($_POST["email"]); ?>" />
</div>
<div class="line">
<span>Onderwerp bericht:</span>
<input type="text" class="tekst" name="onderwerp" value="<?php echo($_POST["onderwerp"]); ?>" />
</div>
<div class="line">
<span>Bericht:</span>
<textarea name="bericht" cols="" rows=""><?php echo($_POST["bericht"]); ?></textarea>
</div>
<div class="line">
<span>Bevestigen:</span>
<input type="submit" class="knop" name="versturen" value="Bericht versturen" />
</div>
</form>
Kortom, geef hier gewoon eens de url op die het zou moeten zijn.
Had ik al geprobeerd, werkt niet. Dan geeft hij de foutmelding dat niet alle verplichte velden zijn ingevuld.
Niels schreef op 26.03.2008 11:43:
Nou dan weet je dus in ieder geval zeker dat je verwerkingsscript geladen wordt, dan kun je nu gaan uitzoeken waarom die melding telkens gegeven wordt...Had ik al geprobeerd, werkt niet. Dan geeft hij de foutmelding dat niet alle verplichte velden zijn ingevuld.
ps. @Erwin: niets invullen is niet verstandig. Niet alle browsers kunnen daar goed mee overweg en bovendien is het bij mijn weten niet valid.
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
Het ligt eraan wat je bij je .htaccess hebt ingevuld. Kun je die code even geven?
@Niels: heb je mijn suggestie nou al eens geprobeerd en de action aagepast naar de juiste waarde ipv die #?
@blanche: Zoals je hebt kunnen lezen heb ik dat geprobeerd maar werkt dat niet.
Gewijzigd op 01/01/1970 01:00:00 door Niels
Waar slaat dit in godsnaam op?
Zie het andere topic over Remco
Is er miss al iemand die een oplossing heeft voor mijn probleem?!
bovenaan je pagina.
Edit: Toelichting: als de mod rewrite niet goed kan worden uitgevoerd, zal je een 404 error pagina krijgen. Nu krijg je blijkbaar andere errors (waarschijnlijk betreffende het script).
Gewijzigd op 01/01/1970 01:00:00 door Jesper Diovo
Code (php)
1
<b>Notice</b>: Undefined index: bericht in <b>/home/c4081pur/domains/praktijkcerpentier.nl/public_html/contact.php</b> on line <b>103</b><br />
Het vreemde is dat hij het altijd gewoon gedaan heeft en het ook nog gewoon doet als je hem op de oude manier aanroept.
Gewijzigd op 01/01/1970 01:00:00 door Niels
Heeft iemand een idee, ik word er een beetje radeloos van...