Mailfunctie werkt niet met mod_rewrite

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Niels

Niels

26/03/2008 11:17:00
Quote Anchor link
Hallo,

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
 
PHP hulp

PHP hulp

26/04/2024 00:46:02
 
Joren de Wit

Joren de Wit

26/03/2008 11:28:00
Quote Anchor link
Quote:
Als ik hem wil versturen geeft hij een wit scherm.
Met enkel deze informatie zonder een stukje code wordt het heel lastig om je te helpen...

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.
 
Niels

Niels

26/03/2008 11:30:00
Quote Anchor link
Sorry, dat wordt inderdaad een beetje lastig. Dit is het coding gedeelte:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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{
?>


Het contactformulier bevat geen verdere urls.
Gewijzigd op 01/01/1970 01:00:00 door Niels
 
- SanThe -

- SanThe -

26/03/2008 11:33:00
Quote Anchor link
Pas je script even aan en gebruik en tags om je code heen. Gebruik je Afbeelding knop om dit te doen.

SanThe.
 
Joren de Wit

Joren de Wit

26/03/2008 11:34:00
Quote Anchor link
Zet je code even tussen tags, dan wordt het wat leesbaarder.

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...
 
Niels

Niels

26/03/2008 11:36:00
Quote Anchor link
Ik gebruik als action een trucje om hem gewoon naar dezelfde pagina te laten terug gaan. zie het script:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<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>
 
Joren de Wit

Joren de Wit

26/03/2008 11:40:00
Quote Anchor link
En dat zou dus wel eens het probleem kunnen zijn. Ik weet niet hoe de regex in je rewriterules eruit ziet, maar grote kans dat ze die # op het einde niet matchen en dat dus niet de juiste url geladen wordt...

Kortom, geef hier gewoon eens de url op die het zou moeten zijn.
 
Erwin Nieuwenhuis

Erwin Nieuwenhuis

26/03/2008 11:41:00
Quote Anchor link
is niks invullen ook xhtml valid??

dus

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<form action="">
 
Niels

Niels

26/03/2008 11:43:00
Quote Anchor link
Had ik al geprobeerd, werkt niet. Dan geeft hij de foutmelding dat niet alle verplichte velden zijn ingevuld.
 
Joren de Wit

Joren de Wit

26/03/2008 11:49:00
Quote Anchor link
Niels schreef op 26.03.2008 11:43:
Had ik al geprobeerd, werkt niet. Dan geeft hij de foutmelding dat niet alle verplichte velden zijn ingevuld.
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...

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
 
Henk

Henk

26/03/2008 13:35:00
Quote Anchor link
Het ligt eraan wat je bij je .htaccess hebt ingevuld. Kun je die code even geven?
 
Niels

Niels

26/03/2008 14:32:00
Quote Anchor link
De .htaccess file ziet er als volgt uit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
Options +FollowSymLinks

RewriteEngine On
RewriteBase /
RewriteRule ^([A-Za-z0-9-]+)$ ?pagina=$1
 
Crispijn -

Crispijn -

26/03/2008 14:46:00
Quote Anchor link
Hoe erg is het om je action in je form gewoon aan te passen naar

http://www.jousite.nl/contact

Volgens mij los je het probleem dan direct op
 
Joren de Wit

Joren de Wit

26/03/2008 14:48:00
Quote Anchor link
@Crispijn: liever gewoon binnen het bestandsysteem blijven en dus een relatief pad gebruiken. Bijvoorbeeld /contact/...

@Niels: heb je mijn suggestie nou al eens geprobeerd en de action aagepast naar de juiste waarde ipv die #?
 
Niels

Niels

26/03/2008 14:51:00
Quote Anchor link
Dat is niet erg, het werkt alleen niet. Ik vind het aannemelijk dat het door die mod_rewrite komt, omdat hij het wel doet als je de pagina dus aanroept via [..].nl/?pagina=contact maar niet als je gebruikt maakt van [..].nl/contact.

@blanche: Zoals je hebt kunnen lezen heb ik dat geprobeerd maar werkt dat niet.
Gewijzigd op 01/01/1970 01:00:00 door Niels
 
Niels

Niels

26/03/2008 15:16:00
Quote Anchor link
Waar slaat dit in godsnaam op?
 
Crispijn -

Crispijn -

26/03/2008 15:18:00
Quote Anchor link
Zie het andere topic over Remco
 
Niels

Niels

26/03/2008 15:55:00
Quote Anchor link
Gaat iemand die zooi hier nog opruimen?

Is er miss al iemand die een oplossing heeft voor mijn probleem?!
 
Jesper Diovo

Jesper Diovo

26/03/2008 16:13:00
Quote Anchor link
Als je een witte pagina krijgt: zet
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
error_reporting(E_ALL);
ini_set("display_errors",1);
?>

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
 
Niels

Niels

26/03/2008 16:27:00
Quote Anchor link
Hij geeft nu in het veld bericht:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
 
Niels

Niels

26/03/2008 17:23:00
Quote Anchor link
Heeft iemand een idee, ik word er een beetje radeloos van...
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.