Hallo,

Ik heb een heel simpel script van deze website gebruikt voor mijn contactformulier. Helaas krijg ik deze niet werkend.

De foutmelding die ik krijg is:
Method Not Allowed
The requested method POST is not allowed for the URL /contact.php.
--------------------------------------------------------------------------------
Apache/1.3.27 Server at www.eetcafedebanjaard.nl Port 80

Ik heb chmod van contact.php op 777 staan.

Het gaat dus om de contactpagina van www.eetcafedebanjaard.nl.


<?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 {
            function is_email($emailadres)
{
    // Eerst een snelle controle uitvoeren: 
    // een e-mailadres moet uit minimaal 1 tekens bestaan:
    if (strlen($emailadres) < 1) {
        return FALSE;
    }
    // Daarna een controle met een reguliere expressie uitvoeren:
    if (ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})$", $emailadres)) {
        return TRUE;
    } else {
        return FALSE;
    }
}
            if (!is_email($emailadres)) {
                $melding  .= "<strong>" . htmlentities($emailadres) . "</strong> is geen geldig e-mailadres. ";
                $vervuild  = TRUE;
            }
        }
        
        if (strlen($tekst) < 5) {
            $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 via website");
            // 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    = "Je bericht is succesvol verzonden.<br />";
                $melding   .= "Bedankt, we proberen hier binnen 48uur op te reageren. ";
            } else {
                $verzonden  = FALSE;
                $melding    = "Helaas, je bericht is niet verzonden.<br />";
                $melding   .= "Probeer het nog een keer. ";
            }
        }
    }
}

// Standaardtekst voor instructies instellen als er geen foutmeldingen zijn:
if ($melding == "") {
    $melding  = " ";
    $melding .= " ";
}
?>



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1" />
<title>Eetcafe de Banjaard</title>
 
<link rel="stylesheet" href="style.css" type="text/css" media="screen" />
 
</head>
 
<body>
 
	<div id="body_wrapper">
	<div id="rechts1">
 
 
		<!-- Start of Body Container -->
 
		<div id="body_container">
		<div id="body_container_b">
		<div id="body_container_c">
 
 
			<!-- Start of Page Header -->
 
			<div id="page_header">
 
				<!-- Website Title -->
 
				<h1><span class="hidethis">
				Eetcafe de Banjaard
				</span></h1>
 
			</div>
 
			<!-- End of Page Header -->
 
 
			<!-- Start of Page Content -->
 
			<div id="page_content">

			
<?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);
?>
<form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="post">
  <table border="0" cellpadding="0" cellspacing="2">
    <tr>
      <td><label for="n">Naam:</label><br/>
	  <input accesskey="n" id="n" name="n" size="30" type="text" value="<?php echo $naam; ?>"></td>
    </tr>
    <tr>
      <td><label for="e">E-mailadres:</label><br />
	  <input accesskey="e" id="e" name="e" type="text" size="30" value="<?php echo $emailadres; ?>"></td>
    </tr>
	<tr>
      <td>
        <br />
      </td>
    </tr>
    <tr>
      <td><label for="t">Bericht:</label><br />
	  <textarea accesskey="t" cols="50" id="t" name="t" rows="10"><?php echo $tekst; ?></textarea></td>
    </tr>
    <tr>
      <td align="right"><input class="knop" name="submit" type="submit" value="Wissen"> <input class="knop" name="submit" type="submit" value="Verzenden"></td>
    </tr>
  </table>
</form>

<p><?php echo $melding; ?></p>

<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />

			</div>
 
			<!-- End of Page Content -->
 
		</div>
		</div>
		</div>
 
		<!-- End of Body Container -->
 
 
 
		<!-- Start of Navigation Menu -->
 
		<div id="navmenu">
		<div id="navmenu_b">
		<div id="navmenu_c">
 
			<h3><span class="hidethis">Site Menu:</span></h3>


			<ul>
			<li class="list_first"><a href="index.html">Home</a></li>
			<li><a href="nieuws.html">Nieuws</a></li>
			<li><a href="open.html">Openingstijden</a></li>
			<li><a href="crew.html">Crew</a></li>
			<li><a href="menu.html">Menu</a></li>
			<li><a href="foto.html">Foto's</a></li>
			<li><a href="waar.html">Waar vindt u ons?</a></li>
			<li><a href="contact.php">Contact </a></li>
			<li><a href="gast.html">Gastenboek</a></li>
			</ul>
 
 
		</div>
		</div>
		</div>
 
		<!-- End of Navigation Menu -->


 		<div class="clearthis">&nbsp;</div>
 
 
		<!-- Start of Page Footer -->
 
		<div id="page_footer">

		

		Webdesign by <a href="http://www.schilperoort-consultancy.nl/">Schilperoort Consultancy</a>  <BR><BR>

		
		<a href="https://twitter.com/#!/search/banjaardje" TARGET="_blank"><img src="images/twitter.png" BORDER=0></a>
		<a href="http://www.facebook.com/#!/pages/Eetcaf%C3%A9-De-Banjaard/169239826430556" TARGET="_blank"><img src="images/facebook.png" BORDER=0></a>
		
		
</div>
 
		<!-- End of Page Footer -->
 
 
	</div>
 
</body>
</html>

<?php
}
?>
Hoi Jurgen,

Je maakt tevens gebruik van een aantal oude functies, onder andere ereg om het e-mail adres te controleren. Je kunt dit beter doen met [php]filter_var[/php], als je host dit tenminste ondersteunt. Ik mag het hopen van wel, als dit niet werkt heb je een wel heel oude hosting...

P.S. De Banjaard is geen onbekende voor mij ;)

Reageren