Probleem met contactformulier

Status
Niet open voor verdere reacties.

ennairam

Gebruiker
Lid geworden
7 jan 2011
Berichten
38
Hallo allemaal,

Ik heb al een tijd terug op dit forum codes voor een PHP script ontvangen, betreft een contactformulier. http://www.helpmij.nl/forum/showthread.php/594267-Contactpagina

Nu heb ik deze echter weer opnieuw ingevoegd (bezig met een nieuwe website) maar vervolgens krijg een heel raar resultaat te zien. Het formulier is er wel, maar er staat ook een deel van het script op de website.



Wellicht dat ik wat fout doe... maar wat?
Weet niet of het nodig is, maar hier de source code zoals 'ie er nu uit ziet:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!--
Design by Free CSS Templates
http://www.freecsstemplates.org
Released for free under a Creative Commons Attribution 2.5 License

Name : Landscapes
Description: A two-column, fixed-width design with dark color scheme.
Version : 1.0
Released : 20111001

-->
<html xmlns="http://www.w3.org/1999/xhtml"><!-- InstanceBegin template="D:\Marianne\Fotografie\Website\Website\Templates\index.dwt" codeOutsideHTMLIsLocked="false" -->
<head>
<meta name="keywords" content="" />
<meta name="description" content="" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<!-- InstanceBeginEditable name="doctitle" -->
<title>Marianne van der Heiden</title>
<!-- InstanceEndEditable -->
<link href="file:///D|/Marianne/Fotografie/Website/landscapes/style.css" rel="stylesheet" type="text/css" media="screen" />
<script type="text/javascript" src="file:///D|/Marianne/Fotografie/Website/landscapes/jquery-1.6.2.min.js"></script>
<script type="text/javascript" src="file:///D|/Marianne/Fotografie/Website/landscapes/jquery.poptrox-0.1.js"></script>
<!-- InstanceBeginEditable name="head" -->
<!-- InstanceEndEditable -->
</head>
<body>
<div id="header" class="container">
<div id="logo">
<h1><a href="#">Marianne van der Heiden</a></h1>
</div>
</div>
<div id="menu">
<ul>
<li><a href="Index.html">Home</a></li>
<li><a href="Referenties.html">Referenties</a></li>
<li><a href="Galerij.html">Galerij</a></li>
<li><a href="Tarieven.html">Tarieven</a></li>
<li><a href="Contact.php">Contact</a></li>
</ul>
</div>
<!-- end #header -->
<div id="splash"><img src="file:///D|/Marianne/Fotografie/Website/landscapes/images/img02.jpg" width="800" height="250" alt="" /></div>
<div id="page"><!-- InstanceBeginEditable name="EditRegion3" -->
<div id="box1">
<p class="menu">
<?php
session_start();

/*******************************
* CONTACT FORMULIER *
* contactformulier.php *
* *
* Author: Miranda Verburg *
* Datum: 10 september 2010 *
* *
* Pas het e-mail adres aan *
* bij $mail_ontv en upload *
* het naar je webserver.. *
********************************/

// E-mailadres van de ontvanger
$mail_ontv = 'info@budgetcoachvanderheiden.nl'; // <<<----- voer jouw e-mailadres hier in!

// Speciale checks voor naam en e-mailadres
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
// naam controle
if (!ereg('^[ a-zA-Z-]+$', $_POST['naam']))
$naam_fout = 1;
// e-mail controle
if (function_exists('filter_var') && !filter_var($_POST['mail'], FILTER_VALIDATE_EMAIL))
$email_fout = 1;
// Antiflood bescherming, zorgt ervoor dat dezelfde persoon niet binnen 20sec nog een mail kan verzenden...
if (!empty($_SESSION['antiflood']))
{
$seconde = 20; // tijd dat de persoon geen mail kan sturen (in sec)
$tijd = time() - $_SESSION['antiflood'];
if($tijd < $seconde)
$antiflood = 1;
}
}

// Kijk of alle velden zijn ingevuld - naam mag alleen uit letters bestaan en het e-mailadres moet juist zijn
if (($_SERVER['REQUEST_METHOD'] == 'POST' && (!empty($antiflood) || empty($_POST['naam']) || !empty($naam_fout) || empty($_POST['mail']) || !empty($email_fout) || empty($_POST['bericht']) || empty($_POST['onderwerp']))) || $_SERVER['REQUEST_METHOD'] == 'GET')
{
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
if (!empty($naam_fout))
echo '<p>Uw naam mag alleen letters bevatten.</p>';
elseif (!empty($email_fout))
echo '<p>Uw e-mailadres is niet juist.</p>';
elseif (!empty($antiflood))
echo '<p>U mag slechts &eacute;&eacute;n bericht per ' . $seconde . ' seconde versturen.</p>';
else
echo '<p>U bent uw naam, e-mailadres, onderwerp of bericht vergeten in te vullen.</p>';
}

// HTML e-mail formlier
echo '<form method="post" action="' . $_SERVER['REQUEST_URI'] . '" />
<p>

<label for="naam">Naam:</label><br />
<input type="text" id="naam" name="naam" value="' . htmlspecialchars($_POST['naam']) . '" /><br />

<label for="tel">Telefoon nummer:</label><br />
<input type="text" id="tel" name="tel" value="' . htmlspecialchars($_POST['tel']) . '" /><br />

<label for="mail">E-mailadres:</label><br />
<input type="text" id="mail" name="mail" value="' . htmlspecialchars($_POST['mail']) . '" /><br />

<label for="onderwerp">Onderwerp:</label><br />
<input type="text" id="onderwerp" name="onderwerp" value="' . htmlspecialchars($_POST['onderwerp']) . '" /><br />

<label for="bericht">Bericht:</label><br />
<textarea id="bericht" name="bericht" rows="8" style="width: 400px;">' . htmlspecialchars($_POST['bericht']) . '</textarea><br />

<input type="submit" name="submit" value=" Versturen " />
</p>
</form>';
}
// versturen naar
else
{
// Formulier, deze inhoud (wordt ingevuld door de strings (beginnend met een $)) komt in jou mailbox
$datum = date('d/m/Y H:i:s');

$inhoud_mail = "===================================================\n";
$inhoud_mail .= "Ingevulde contact formulier " . $_SERVER['HTTP_HOST'] . "\n";
$inhoud_mail .= "===================================================\n\n";

$inhoud_mail .= "Naam: " . htmlspecialchars($_POST['naam']) . "\n";
$inhoud_mail .= "Telefoon nummer: " .htmlspecialchars($_POST['tel']) . "\n";
$inhoud_mail .= "E-mail adres: " . htmlspecialchars($_POST['mail']) . "\n";
$inhoud_mail .= "Bericht:\n";
$inhoud_mail .= htmlspecialchars($_POST['bericht']) . "\n\n";

$inhoud_mail .= "Verstuurd op " . $datum . " via het IP adres " . $_SERVER['REMOTE_ADDR'] . "\n\n";

$inhoud_mail .= "===================================================\n\n";

// --------------------
// spambot protectie
// ------

$headers = 'From: ' . htmlspecialchars($_POST['naam']) . ' <' . $_POST['mail'] . '>';

$headers = stripslashes($headers);
$headers = str_replace('\n', '', $headers); // Verwijder \n
$headers = str_replace('\r', '', $headers); // Verwijder \r
$headers = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $headers)); // Slashes van quotes

$_POST['onderwerp'] = str_replace('\n', '', $_POST['onderwerp']); // Verwijder \n
$_POST['onderwerp'] = str_replace('\r', '', $_POST['onderwerp']); // Verwijder \r
$_POST['onderwerp'] = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $_POST['onderwerp'])); // Slashes van quotes

if (mail($mail_ontv, $_POST['onderwerp'], $inhoud_mail, $headers))
{
// zorg ervoor dat dezelfde persoon niet kan spammen
$_SESSION['antiflood'] = time();

echo '<h1>Het contactformulier is verzonden</h1>

<p>Bedankt voor het invullen van het contactformulier. We zullen zo spoedig mogelijk contact met u opnemen.</p>';
}
else
{
echo '<h1>Het contactformulier is niet verzonden</h1>

<p><b>Onze excuses.</b> Het contactformulier kon niet verzonden worden.</p>';
}
}
?>
</p>
</div>
<!-- InstanceEndEditable --><!-- InstanceBeginEditable name="EditRegion4" -->
<div id="poptrox">
<!-- start -->
<ul id="gallery">
<li><a href="file:///D|/Marianne/Fotografie/Website/landscapes/images/img03_big.jpg"><img src="file:///D|/Marianne/Fotografie/Website/landscapes/images/img03.jpg" width="240" height="92" alt="" title="Fusce ultrices fringilla metus" /></a></li>
<li><a href="file:///D|/Marianne/Fotografie/Website/landscapes/images/img04_big.jpg"><img src="file:///D|/Marianne/Fotografie/Website/landscapes/images/img04.jpg" width="240" height="92" alt="" title="Praesent scelerisque scelerisque erat" /></a></li>
<li><a href="file:///D|/Marianne/Fotografie/Website/landscapes/images/img05_big.jpg"><img src="file:///D|/Marianne/Fotografie/Website/landscapes/images/img05.jpg" width="240" height="92" alt="" title="Integer sit amet pede vel arcu aliquet pretium" /></a></li>
<li><a href="file:///D|/Marianne/Fotografie/Website/landscapes/images/img06_big.jpg"><img src="file:///D|/Marianne/Fotografie/Website/landscapes/images/img06.jpg" width="240" height="92" alt="" title="Phasellus nec erat sit amet nibh pellentesque congue" /></a></li>
<li><a href="file:///D|/Marianne/Fotografie/Website/landscapes/images/img07_big.jpg"><img src="file:///D|/Marianne/Fotografie/Website/landscapes/images/img07.jpg" width="240" height="92" alt="" title="Pellentesque quis elit non lectus gravida blandit" /></a></li>
<li><a href="file:///D|/Marianne/Fotografie/Website/landscapes/images/img08_big.jpg"><img src="file:///D|/Marianne/Fotografie/Website/landscapes/images/img08.jpg" width="240" height="92" alt="" title="Cras vitae metus aliquam risus pellentesque pharetra" /></a></li>
</ul>
<br class="clear" />
<script type="text/javascript">
$('#gallery').poptrox();
</script>
<!-- end -->
</div>
<!-- InstanceEndEditable --></div>
<div id="footer">
<p><strong>Copyright (c) 2011 mariannevanderheiden.NL. Alle rechten voorbehouden.</strong></p>
</div>
<!-- end #footer -->
</body>
<!-- InstanceEnd --></html>

BVD!
Marianne
 
Laatst bewerkt:
if (!empty($naam_fout)) moet nog een { achter, en nog afgesloten worden met }

geldt trouwens ook voor de ifjes daarna en de else
 
Laatst bewerkt:
Nog ongeacht of de source code juist of onjuist is, wil ik je op het volgende wijzen:
Je kunt het php bestand niet lokaal als "file://" openen (zichtbaar in de url bovenaan de screenshot), want dan wordt de PHP niet uitgevoerd en dus letterlijk doorgegeven aan de browser.

Je zult de php vanaf de webserver moeten openen zodat het php deel door de server wordt uitgevoerd en het resultaat in de browser wordt getoond.
Succes.
 
Oo oke. Ik heb nog geen webserver (dacht, eerst effe die website in elkaar flansen).

Dus als ik 'm straks echt online heb staan, zou 'ie het moeten doen?
 
if (!empty($naam_fout)) moet nog een { achter, en nog afgesloten worden met }

geldt trouwens ook voor de ifjes daarna en de else


Dit is niet waar, verkorte versie zoals deze is mogelijk indien er maar 1 regel code achteraan komt.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan