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
}
?>
Het stond idd uit bij de provider. Dat is nu verholpen. Nu werkt het goed, het formulier wordt netjes verzonden. Maar als hij verzonden is word je doorgestuurd naar deze pagina:


<!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">


Kan ik hem doorsturen naar een bepaalde pagina. succes.html bijvoorbeeld?

header('Location: succes.html');
Sorry, dit is een van de eerste keren dat ik met php in aanraking kom.
Waar moet ik dat ergens zetten, of maakt dat niet uit?
Op de plek waar staat dat de mail verzonden is.
[offtopic]
ps. ik zou ook aan je host vragen waarneer ze nou eindelijk eens van plan zijn hun servers te onderhouden en up-to-date te houden ?!

Want zo te zien draait er nog steeds Apache/1.3.27 Server op (uitgekomen in 2001/2002) terwijl we in 2002/2003 Apache 2.0.x kregen (hij loopt dus wat jaartjes achter!!)
We zitten nu op 2.4.x (2.4.2 is de nieuwste maar voor de zekerheid versie 2.2.22 mochten ze niet zeker zijn)

Sorry moest het even kwijt.. (niet tegen jou bedoelt hoor Jurgen)
Want ik ben persoonlijk van mening dat als je hosting aanbied aan klanten dat je dan in elk geval je server goed moet onderhouden en ze zeker up-to-date moet houden (zeker in deze tijd)
[/offtopic]
Thnx, het formulier werkt helemaal naar behoren!

Over die servers: je hebt zeker gelijk maar ik maak alleen de website. Webhosting regelen ze zelf!
Ik kom met een header-sniff uit op: Apache/2.2.9 (Debian)
mmmmm daar had ik nog niet naar gekeken....

Hoe kan het dan eigenlijk dat het er wellicht een foutief versie nummer in het error report staat ?

Mocht het zo zijn dat hij gewoon up-to-date is neem ik vanzelfsprekend alles terug maar ik ging eigenlijk vanuit dat het error report de je terug krijgt van server correct was....
Maak voor de grap eens een bestand aan met <?php phpinfo(); ?> en bekijk dit eens in je browser.

Weet je precies wat ze draaien.

Reageren