Webprofis is een Forum waarin je vragen kunt stellen die webgerelateerd zijn. Heb je vragen over of problemen met je Webpagina, HTML, CSS, Javascript, PHP of andere client of serverside scriptingtalen? Stel ze dan gerust op dit forum. Op dit forum zijn een aantal vrijwilligers actief die u graag met uw vragen willen helpen en u waar mogelijk een passend antwoord aanbieden. Hebt u zelf veel ervaring en kennis met betrekking tot het bovenstaande? U bent van harte welkom om uw kennis met anderen te delen!

We hopen dat eenieder op dit Forum een leerzame ervaring mag opdoen.

Team Webprofis

controle mailscript werkt niet goed

hoi allemaal,
ik heb een scriptje gevonden voor een mailformulier. Dit lijkt niet geheel te werken. De controlefunctie (is alles ingevuld?) werkt niet.

Als ik niks invul dan krijg ik wel alle ???foutmeldingen??? te zien. Echter, als alleen de naam, of telefoonnummer, etc niet is ingevuld dan wordt het toch verzonden.
Wie wil er mee kijken naar wat er fout gaat? Dank alvast!

<?php
$naar = '#####'; // Waar moet het naartoe?
$onderwerp = 'Contactformulier (je site)'; // Het onderwerp van het bericht

// Header instellen, zodat nl2br() werkt
$headers = "MIME-version: 1.0\r\n";
$headers .= "content-type: text/html;charset=utf-8\r\n";

if(isset($_POST['versturen'])) // Als het formulier verzonden is door op de verzend knop te klikken
{
$voornaam = trim($_POST['voornaam']); // Alle overbodige spaties uit het voornaam veld verwijderen
$achternaam = trim($_POST['achternaam']); // Alle overbodige spaties uit het achternaam veld verwijderen
$email = trim($_POST['email']); // Alle overbodige spaties uit het email veld verwijderen
$telefoon = trim($_POST['telefoon']); //
$bericht = trim($_POST['bericht']); // Alle overbodige spaties uit het bericht veld verwijderen
$fout = false; // Om te kijken straks of er wat fout is

if(empty($voornaam)) // Als het voornaam veld niet is ingevuld
{
print '<p>Graag weten wij met wie we van doen hebben. Dus lezen wij graag je voornaam!</p>';
$fout = true; // Zorgen dat het script zometeen weet dat er wat fout is
}
if(empty($achternaam)) // Als het achternaam veld niet is ingevuld
{
print '<p>Graag weten we hoe je heet. Dus vul s.v.p. je achternaam in!</p>';
$fout = true;
}
if(empty($email)) // Als het email veld niet is ingevuld
{
print '<p>We hebben je mailadres nodig om contact met je op te nemen. Wees gerust, we gebruiken dit adres slechts om contact met je op te nemen!</p>';
$fout = true;
}

if(empty($telefoon)) // Als het email veld niet is ingevuld
{
print '<p>We hebben je telefoonnummer nodig om contact met je op te nemen. Wees gerust, we gebruiken dit adres slechts om contact met je op te nemen!</p>';
$fout = true;
}


if(!filter_var($email, FILTER_VALIDATE_EMAIL)) // Als het email adres niet correct is
{
print '<p>Helaas, het email adres is niet correct. Vul een correct mailadres in</p>';
$fout = true;
}
if(empty($bericht)) // Als het bericht veld niet is ingevuld
{
print '<p>Zonder bericht weten wij niet waarvoor je contact wilt opnemen. Dus laat een kort berichtje achter, dan nemen wij contact op met jou!</p>';
$fout = true;
}

if($fout == false) // Als er niks fout is (alles is dus netjes ingevuld)

$headers .= 'From: ' . $voornaam . ' ' . $achternaam . '<' . $email . '>'; // Een afzender instellen zodat je kan reageren.

if(mail($naar, $onderwerp, nl2br($bericht).' '.nl2br($telefoon), $headers))



{
print '';
}
else
{
print '<p>Helaas, er is wat fout gegaan tijdens het verzenden van het formulier.</p>';
}
}

?>






<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">;

<HTML>
<HEAD>
<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type" >

<title>Welkom </title>


<link rel="stylesheet" href="stylesheet.css" type="text/css" >
<link rel="stylesheet" href="css/prettyPhoto.css" type="text/css" media="screen" charset="utf-8" >
<link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Chivo:400italic,900italic"; type="text/css" >

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js" type="text/javascript"></script>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/jquery-ui.min.js" type="text/javascript"></script>
<script src="js/jquery.prettyPhoto.js" type="text/javascript" charset="utf-8"></script>

<script type="text/javascript" charset="utf-8">
$(document).ready(function(){
$("a[rel^='prettyPhoto']").prettyPhoto();
});
</script>

</HEAD>





<BODY>

<div id="wrapper">
<div id="header">
<div id="logo"><img src="plaatjes/test1.gif" alt="logo" />
</div>
<div id="headertekst"><font size="5" color="#00A0AE">hoge kwaliteit, scherpe prijs!</font>
</div>
<div id="menu"><font size="3" color="#00A0AE"><a href="index.php">Home </a>|<a href="tarieven.php"> Tarieven </a>|<a href="oversure.php"> Sure </a>|<a href="slagingspercentages.php"> Slagingspercentages </a>|<a href="contact.php"> Contact</a> | <a href="geslaagden.php"> De geslaagden </a></font>
</div>

<div id="wall"><h2>Hoge kwaliteit<br>
Hoog slagingspercentage<br>
scherpe prijzen. <br>
</h2>
<script type="text/javascript">
function slideSwitch() {
var $active = $('#slideshow div.active');

if ( $active.length == 0 ) $active = $('#slideshow div:last');

var $next = $active.next().length ? $active.next()
: $('#slideshow div:first');

$active.addClass('last-active');

$next.css({opacity: 0.0})
.addClass('active')
.animate({opacity: 1.0}, 1000, function() {
$active.removeClass('active last-active');
});
}

$(function() {
setInterval( "slideSwitch()", 3000 );
});
</script>
<div id="slideshow"><? include("slideshowcontent.php");?>
<div id="contact">
<h2>Telefoon: 53</h2>
<h2>E-mail: </h2>
</div>
</div>
</div>
<div id="content"><h1>Formulier succesvol verzonden</h1>
<p>Bedankt voor het verzenden van je gegevens. <br>
Wij zullen spoedig contact met je opnemen.<br>
Heb je over twee dagen nog niets gehoord van ons? Dan is er waarschijnlijk iets mis gegaan met het verzenden of heb je per ongeluk verkeerde informatie ingetypt.<br>
Dat kan gebeuren. Verstuur je gegevens <a href="contact.php">hier</a> opnieuw ??f bel ons even op het telefoonnummer dat links in de blauwe kolom staat.</p>

<div id="button2todrive"><a href="2todrive.php" title="2toDrive, lessen van 16,5 jaar!"><h4>2toDrive</H4><H5>Lessen vanaf 16,5 jaar!</H5></a></div>
<div id="buttontarieven"><a href="tarieven.php" title="De scherpste tarieven in de regio"><h4>Tarieven</h4><h5>Ontdek de scherpste tarieven in de regio!</h5></a></div>

</div>
</div>

</div>


</BODY>
</HTML>

Reacties

  • PMPosts: 732
    Regel 52


    if($fout == false)
    mis ik {


    if($fout == false) {

    Tevens die trim kun je overal weghalen, waarom zou je de spatie verwijderen uit een bericht ?
    Kijk eens op deze site naar Tuts & Scripts, hier staan ook diverse contact formulieren.
    If it's not fun, you're not doing it right!
  • bewerkt vr 6 mrt 2015
    PMPosts: 879
    idd zoals Rene al aangeeft hierboven; het laatste stukje code moet in een loop staan; vanaf regel 52 ziet je code er als volgt uit:

    if($fout == false) { // Als er niks fout is (alles is dus netjes ingevuld) toegevoegd: bracket open voor de check

    $headers .= 'From: ' . $voornaam . ' ' . $achternaam . '<' . $email . '>'; // Een afzender instellen zodat je kan reageren.

    if(mail($naar, $onderwerp, nl2br($bericht).' '.nl2br($telefoon), $headers))



    {
    print '';
    }
    else
    {
    print '<p>Helaas, er is wat fout gegaan tijdens het verzenden van het formulier.</p>';
    }
    } // toegevoegd: bracket sluiten voor de check
    }

    ?>
  • JohJoh
    PMPosts: 2
    @beiden: bedankt! Het werkt nu inderdaad wel. Erg fijn.
    Ik heb me zojuist ook aangemeld voor een online cursus html5 en css. Een leuke intro om er net iets meer van te weten te komen allemaal.

    Anyway, het werkt so far. Ik ga verder aan de gang met de tutorials die rene aangeeft. Thanks!
Login of Registreer om te reageren.