Contactformulier werkt niet in IE en Firefox, wel in Chrome

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Sandra Geenachternaam

Sandra Geenachternaam

20/10/2012 18:43:08
Quote Anchor link
Onderstaand contactformulier functioneert naar wens in Google Chrome, maar werkt niet in Internet Explorer en Firefox. Een bericht wordt dan niet verzonden en als gevolg daarvan verschijnt er ook geen verzendbevestiging in beeld.

Inmiddels al heel wat gegoogled voor tips om het probleem te verhelpen, maar helaas zonder resultaat. Ik hoop dat iemand de gouden tip heeft om ervoor te zorgen dat het formulier in alle browsers naar behoren werkt. Mijn dank zal groot zijn!

--------------------------------------------

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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
<?php
$your_email
='[email protected]';// <<=== update to your email address

session_start();
$errors = '';
$name = '';
$visitor_email = '';
$user_message = '';

if(isset($_POST['submit']))
{

    
    $name = $_POST['name'];
    $visitor_email = $_POST['email'];
    $user_message = $_POST['message'];
    ///------------Do Validations-------------
    if(empty($name)||empty($visitor_email))
    {

        $errors .= "\n Naam en e-mail zijn verplichte invoervelden. ";    
    }

    if(IsInjected($visitor_email))
    {

        $errors .= "\n U heeft een onjuist e-mailadres ingevoerd!";
    }

    if(empty($_SESSION['6_letters_code'] ) ||
      strcasecmp($_SESSION['6_letters_code'], $_POST['6_letters_code']) != 0)
    {

    //Note: the captcha code is compared case insensitively.
    //if you want case sensitive match, update the check above to
    // strcmp()

        $errors .= "\n U heeft een verkeerde code ingevoerd!";
    }

    
    if(empty($errors))
    {

        //send the email
        $to = $your_email;
        $subject="Contactverzoek via website";
        $from = $your_email;
        $ip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '';
        
        $body = "Onderstaand persoon heeft het contactformulier op de website van KBO Heusden ingevuld:\n".
        "Naam: $name\n".
        "E-mailadres: $visitor_email \n".
        "Bericht: \n ".
        "$user_message\n".
        "IP: $ip\n";    
        
        $headers = "From: $from \r\n";
        $headers .= "Reply-To: $visitor_email \r\n";
        
        mail($to, $subject, $body,$headers);
        
        header('Location: verzendbevestiging.html');
    }
}


// Function to validate against any email injection attempts
function IsInjected($str)
{

  $injections = array('(\n+)',
              '(\r+)',
              '(\t+)',
              '(%0A+)',
              '(%0D+)',
              '(%08+)',
              '(%09+)'
              );
  $inject = join('|', $injections);
  $inject = "/$inject/i";
  if(preg_match($inject,$str))
    {

    return true;
  }

  else
    {
    return false;
  }
}

?>

<!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=utf-8" />
<meta name="description" content="KBO Heusden is een organisatie die als doel heeft de sociale verbondenheid en onderlinge solidariteit van de Heusdense senioren te stimuleren.">
<meta name="keywords" content="kbo, senioren, ouderen, heusden, hoeksteen, activiteiten, asten, fietsen, bibliotheek, kaarten, rikken, kienen, jeu de boules, biljaren, driebanden, koersbal, ontmoeting, ontspanning, samenleving, ouderenadviseur, belastingaangiftehulp, zorgverzekering, ledenservice, wmo, gymen, linedance, bridge, toneelclub, amiticia, zangkoor, handvaardigheid, lezen, grafdelven, onderhoud schooltuin, onderhoud kerkhof, libre, bandstoten, pentathlon, kerstviering, sinterklaasfeest, zomeravondconcert, dagtocht, uitstapje">
<title>KBO Heusden</title>
<link href="css/style.css" rel="stylesheet" type="text/css" />
<!-- define some style elements-->
<style>
.err {
font-family : Arial;
font-size : 12px;
color: red;
line-height: 100%;
}
</style>
<!-- a helper script for vaidating the form-->
<script language="JavaScript" src="scripts/gen_validatorv31.js" type="text/javascript"></script>
<script type="text/javascript">

var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-29126953-1']);
_gaq.push(['_trackPageview']);

(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();

</script>
</head>
<body>
<div id="main-wrapper-div" class="clearfix">
<!--top and main menu -->
<div id="banner-wrapper-div">
<div id="banner-logo-div"><a href="http://www.kboheusden.nl"><img src="images/blank.gif" border="0" title="Ga naar de beginpagina" alt="Home" height="121" width="294" /></a> </div>
<div id="banner-searchform-div">
<form method="get" action="http://www.kboheusden.nl/fdcgi/search/search.pl" id="searchform">
<input name="Terms" id="fdse_TermsEx" type="text"/>
<input type="submit" value="Zoeken" />
</form>
</div>
<div id="banner-main-menu-div">
<ul class="links">
<li><a href="index.php" title="Home">Home</a></li>
<li><a href="overons.html" title="Over ons">Over ons</a></li>
<li><a href="ledenservice.html" title="Ledenservice">Ledenservice</a></li>
<li><a href="activiteiten.html" title="Activiteiten">Activiteiten</a></li>
<li><a href="uitslagen.html" title="Uitslagen">Uitslagen</a></li>
<li><a href="nieuws.php" title="Nieuws">Nieuws</a></li>
<li><a href="foto's.html" title="Foto's">Foto's</a></li>
<li class="active-trail first active"><a href="contact.html" title="Contact" class="active">Contact</a></li>
</ul>
</div>
</div>
<div id="banner"> <img src="images/imagebanner11.jpg" alt="afbeeldingen KBO Heusden" width="850" height="245" title="KBO Heusden is een actieve vrijwilligersorganisatie voor senioren van 50 jaar en ouder en telt inmiddels ongeveer 400 leden" /></div>
<div id="colleft" style="width:575px; float:left">
<div class="breadcrumbs"><strong>U bevindt zich hier:</strong> <a href="index.php">Home</a> » Contact</div>
<div class="article">
<h1>Neem contact met ons op </h1>
<p>Hebt u vragen of opmerkingen? Vul dan onderstaand contactformulier zo volledig mogelijk in en wij nemen zo spoedig mogelijk contact met u op.</p>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
if(!empty($errors)){
echo "<p class='err'>".nl2br($errors)."</p>";
}

?>

<div id='contact_form_errorloc' class='err'></div>
<form method="POST" name="contact_form"
action="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo htmlentities($_SERVER['PHP_SELF']); ?>
">
<div style="text-align:left; padding-top:20px;">
<label for='name'>Naam: </label>
</div>
<div style="text-align:left;">
<input type="text" name="name" size="30" value='
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo htmlentities($name) ?>
'>
</div>
<div style="text-align:left; padding-top:20px;">
<label for='email'>E-mailadres: </label>
</div>
<div style="text-align:left;">
<input type="text" name="email" size="30" value='
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo htmlentities($visitor_email) ?>
'>
</div>
<div style="text-align:left; padding-top:20px;">
<label for='message'>Bericht:</label>
</div>
<div style="text-align:left;">
<textarea name="message" rows=4 cols=40>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo htmlentities($user_message) ?>
</textarea>
</div>
<div style="text-align:left; padding-top:20px;"><img src="captcha_code_file.php?rand=
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo rand(); ?>
" id='captchaimg' ></div>
<div style="text-align:left; padding-top:20px;">
<label for='message'>Voer bovenstaande code in:</label>
</div>
<div style="text-align:left;">
<input id="6_letters_code" size="15" name="6_letters_code" type="text">
<br />
<small>Klik <a href='javascript: refreshCaptcha();'>hier</a> om de code te vernieuwen.</small></div>
<div style="text-align:left; padding-top:30px;">
<input type="image" src="images/send.png" name="submit" class="verzendbutton" value="verzenden" border="0"/>
</div>
</form>
</div>
<div class="article_bottom">&nbsp;</div>
</div>

<!--right column -->
<div class="colright" style="width:250px; float:left; margin-left:10px;">
<div class="top_side">Contact</div>
<div class="content_side"><br />
<p> <strong>Contactgegevens</strong><br />
D'n Hoeksteen<br />
Pastoor Arnoldstraat 2a <br />
5725 AN Heusden (gem. Asten)<br />
Telefoonnummer: 0493-693125 <br />
of 0493-691887 (Leo Leenders)<br />
E-mail: [email protected]<br />
Website: www.kboheusden.nl<;br />
Bankrekening: 1036.30.589<br />
<br />
<strong> Adreswijzigingen</strong><br />
U kunt deze doorgeven aan Martin Claassen of via het contactformulier. Wij zorgen er voor dat uw adresgegevens tevens doorgegeven worden aan de bezorger van ONS. <br />
<br />
<strong> Opzeggen lidmaatschap </strong><br />
Voor de opzegging van uw lidmaatschap kunt u contact opnemen met Martin Claassen of het contactformulier hiernaast invullen.</p>
</div>
<div class="bottom_side">&nbsp;</div>
</div>

<!--footer -->
<div id="footer-wrapper-div">
<div class="footerblock-left">
<h4>KBO HEUSDEN </h4>
<span class="footer"> <a href="bestuur.html">Bestuur</a> <br />
<a href="lidmaatschap.html">(Opzeggen) lidmaatschap</a> <br />
<a href="feiten.html">Feiten en cijfers</a></span> </div>
<div class="footerblock-center">
<h4>LEDENSERVICE</h4>
<span class="footer"> <a href="ouderenadviseurs.html">Ouderenadviseurs</a><br />
</a><a href="belastingaangiftehulp.html">Belastingaangifte</a> <a href="zorgverzekering.html">Zorgverzekering</a><br />
</span> </div>
<div class="footerblock-center2">
<h4>ACTIVITEITEN </h4>
<span class="footer"><a href="sportenbeweging.html">Sport- en bewegingsactiviteiten</a><br />
<a href="spelactiviteiten.html">Spelactiviteiten</a> <br />
<a href="zangentoneel.html">Zang- en toneelactiviteiten</a><br />
<a href="overigeactiviteiten.html">Overige activiteiten</a></span> </div>
<div class="footerblock-right">
<h4> WEBSITE </h4>
<span class="footer"><a href="sitemap.html">Sitemap<br />
</a><a href="disclaimer.html">Disclaimer</a><br />
<a href="contact.html">Contact</a></span> </div>
</div>
</div>
<script language="JavaScript">
// Code for validating the form
// Visit http://www.javascript-coder.com/html-form/javascript-form-validation.phtml
// for details
var frmvalidator = new Validator("contact_form");
//remove the following two lines if you like error message box popups
frmvalidator.EnableOnPageErrorDisplaySingleBox();
frmvalidator.EnableMsgsTogether();

frmvalidator.addValidation("name","req","Vult u alstublieft uw naam in");
frmvalidator.addValidation("email","req","Vult u alstublieft uw e-mailadres in");
frmvalidator.addValidation("email","email","Vult u alstublieft een geldig e-mailadres in");
</script>
<script language='JavaScript' type='text/javascript'>
function refreshCaptcha()
{
var img = document.images['captchaimg'];
img.src = img.src.substring(0,img.src.lastIndexOf("?"))+"?rand="+Math.random()*1000;
}
</script>
</body>
</html>
 
PHP hulp

PHP hulp

23/12/2024 00:10:10
 
Frank Nietbelangrijk

Frank Nietbelangrijk

20/10/2012 19:07:52
Quote Anchor link
woeiiii veel code.

Wat ik in ieder geval al even gezien heb is dat het formulier in de GET methode verstuurd wordt en dat je in PHP POST variabelen uit leest. Je kunt beter
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
<form method="POST">
?>

gebuiken.

Verder is het misschien verstandiger om regel 10 te veranderen in
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST')
?>


en dan nog maar eens proberen.
Groet, Frank


Toevoeging op 20/10/2012 19:14:05:

hmmm je hebt twee formulieren op je pagina. één GET en één POST.

action="
Code (php)
1
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo htmlentities($_SERVER['PHP_SELF']); ?>

">

verander dat in:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $_SERVER['PHP_SELF']; ?>

">
 
Sandra Geenachternaam

Sandra Geenachternaam

20/10/2012 20:10:15
Quote Anchor link
@Frank: Bedankt! Dat probleem is opgelost...MAAR (ja, die wil je vast niet horen) nu staan de standaard foutmeldingen als 'Naam en e-mail zijn verplichte invoervelden' en 'U heeft een verkeerde code ingevoerd' boven het formulier weergegeven. Deze zouden pas moeten verschijnen wanneer iemand het formulier niet juist invult. Wat gaat er nu mis?

Update: ik heb de aanpassing op regel 10 weer ongedaan gemaakt, waardoor de foutmeldingen niet meer standaard weergegeven worden. Ik weet niet of dit een slimme oplossing is, maar nu werkt alles naar behoren.

Update 2: iets te enthousiast en dus voorbarig geweest: bij bovenstaande 'oplossing' werkt het formulier wel in IE, maar niet in Firefox.
Gewijzigd op 20/10/2012 20:18:46 door Sandra Geenachternaam
 
Frank Nietbelangrijk

Frank Nietbelangrijk

20/10/2012 20:56:06
Quote Anchor link
Lol nog niet opgelost dus.

kun je misschien een download beschikbaar stellen zodat ik het geheel even in dreamweaver kan zien?
 
Sandra Geenachternaam

Sandra Geenachternaam

20/10/2012 21:38:54
Quote Anchor link
Zie PM!
Gewijzigd op 20/10/2012 21:42:13 door Sandra Geenachternaam
 
Frank Nietbelangrijk

Frank Nietbelangrijk

20/10/2012 22:40:47
Quote Anchor link
ik ga kijken

Toevoeging op 21/10/2012 00:45:28:

Oke de submit button was een <input type='image'>. onder IE werd de pagina wel herladen maar de post-variabelen kwamen niet aan. met een <inpput type='submit'> was het opgelost. Ik wist wel dat IE niet de beste browser was maar dit had ik niet verwacht. Heeft iemand al eerder hiermee te maken gehad?

gr Frank

Toevoeging op 21/10/2012 11:54:04:

bump
 
Sandra Geenachternaam

Sandra Geenachternaam

22/10/2012 18:23:09
Quote Anchor link
Yes! Het formulier werkt weer naar behoren in alle browsers! (Hopelijk juich ik nu weer niet te vroeg)
Mijn dank zou groot zijn, dus heb je nog wat plek over in je voortuin, dan laat ik een vrachtwagen langs komen! ;-) Super bedankt!
 
Frank Nietbelangrijk

Frank Nietbelangrijk

22/10/2012 19:27:19
Quote Anchor link
een vrachtwagen in mijn tuin? Nee bedankt :D
 
Sandra Geenachternaam

Sandra Geenachternaam

22/10/2012 19:33:21
Quote Anchor link
Dan los ik wel bij de buren!

Toevoeging op 22/10/2012 19:33:40:

Oh, dit gaat behoorlijk off topic ;-)
 



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.