niet werkende verplichte invulvelden in mailformulier

Status
Niet open voor verdere reacties.

merlijn16

Gebruiker
Lid geworden
2 mrt 2010
Berichten
132
Ik heb een cgi emailformulier gemaakt met verplichte invulvelden. Echter ik kan het formulier gewoon verzenden zonder de verplichte velden in te vullen.
Weet iemand een oplossing?

dit is de code
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Vragenformulier</title>
<meta name="AUTHORS" content="...." /><meta name="COPYRIGHT" content="...." />
<meta name="description" content="..." />
<meta name="keywords" content="..." />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link href="hhtp_style.css" rel="stylesheet" type="text/css" />


<script type="text/javascript">
var naw="";
var form="";
function controle(form)
{
var naw="";

if(form.bedrijfsnaam.value=="")naw=naw+"Bedrijfsnaam, ";
if(form.straat.value=="")naw=naw+"Straat, ";
if(form.huisnummer.value=="")naw=naw+"Huisnummer, ";
if(form.postcode.value=="")naw=naw+"Postcode, ";
if(form.plaats.value=="")naw=naw+"Plaats, ";
if(form.land.value=="")naw=naw+"Land, ";
if(form.tel.value=="")naw=naw+"Telefoon, ";
if(form.contactpersoon.value=="")naw=naw+"Naam contactpersoon, ";

if(naw!="")
	{
	naw=naw.substring(0,naw.length-2);
	naw="De volgende velden zijn nog niet ingevuld:\n" + naw;
	alert(naw); 
	return false;
	}
else{
	return true;
	}
}
</script>

</head>

<body>



<div id="central">
	<div id="header">
		<br />
		<a href="inloggen.html">Inloggen</a>
	</div>
    <ul id="navlist">
      <li><a id="n1" href="test.html">button 1</a></li>
      <li><a id="n2" href="test.html">button 2</a></li>
      <li><a id="n3" href="test.html">button 3</a></li>
      <li><a id="n4" href="test.html">button 4</a></li>
      <li><a id="n5" href="test.html">button 5</a></li>
      <li><a id="n6" href="test.html">button 6</a></li>
      <li><a id="n7" href="test.html">button 7</a></li>
      <li><a id="n8" href="test.html">button 8</a></li>      
    </ul>
    	<div id="content">
		<div id="leftside">
		
      
                        
                        <br /><br /><br /><br />
                        <br /><br /><br /><br />                           
        </div>
		
                <div id="rightside">

<!-- .-->

<br />
<h1>Vragenformulier</h1>



<form onsubmit="return controle(this)" method="post" action="http://www.websitenaam.nl/cgi-bin/cgiemail/vragenformulier.txt">  
	
    

<fieldset><legend><font size="-1" face="Arial" color="#000000">Vul onderstaand formulier in en wij nemen contact met u op.</font></legend>




<!-- Onder deze regel start de tekst van het formulier-->
<br />

<table>
<tr><td colspan="2" align="left"><em>&nbsp;&nbsp;&nbsp;<font size="-1">velden met een <strong>&nbsp;*&nbsp;</strong> zijn verplicht.</font></em></td></tr>



<tr>
	<td>&nbsp;&nbsp;&nbsp;<font face="Arial" color="#000000">* Naam bedrijf:</font></td>
	<td><input type="text" name="bedrijfsnaam" size="63" maxlength="73" /></td>
</tr>

<tr>
	<td>&nbsp;&nbsp;&nbsp;<font face="Arial" color="#000000">* Straat:</font></td>
	<td><input type="text" name="straat" size="34" maxlength="200" />&nbsp;&nbsp;&nbsp;* Huisnummer: <input type="text" name="huisnummer" size="7" maxlength="7" /></td>
</tr>

<tr>
	<td>&nbsp;&nbsp;&nbsp;<font face="Arial" color="#000000">* Postcode:</font></td>
	<td><input type="text" name="postcode" size="7" maxlength="7" /></td>
</tr>
<tr>
	<td>&nbsp;&nbsp;&nbsp;<font face="Arial" color="#000000">* Plaats:</font></td>
	<td><input type="text" name="Plaats" size="63" maxlength="200" /></td>
</tr>

<tr>
	<td>&nbsp;&nbsp;&nbsp;<font face="Arial" color="#000000">* Land:</font></td> 
	<td><font face="Arial" color="#000000"><input type="radio" name="land" value="Nederland" />Nederland &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="radio" name="land" value="België" />België</font></td>
</tr>

<tr>
	<td>&nbsp;&nbsp;&nbsp;<font face="Arial" color="#000000">* E-mail:</font></td>
	<td><input type="text" name="email" size="63" maxlength="200" /></td>
</tr>
<tr>
	<td>&nbsp;&nbsp;&nbsp;<font face="Arial" color="#000000">* Telefoon:</font></td>
	<td><input type="text" name="tel" size="15" maxlength="20" /></td>
</tr>
<tr>
	<td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font face="Arial" color="#000000"> Mobiel:</font></td>
	<td><input type="text" name="mobiel" size="15" maxlength="20" /></td>
</tr>


<tr>
	<td>&nbsp;&nbsp;&nbsp;<font face="Arial" color="#000000">* Contactpersoon:</font></td>
	<td><input type="text" name="contactpersoon" size="63" maxlength="73" /></td>
</tr>

<tr>
<td>&nbsp;</td>
<td></td>
</tr>


<tr>
<td colspan="2">&nbsp;&nbsp;&nbsp;<font face="Arial" color="#000000"><strong>Ruimte voor extra mededeling.</strong></font></td>
</tr>
<tr>
<td colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;<textarea cols="71" rows="2" maxlength="400" name="extra_mededeling"></textarea><br />&nbsp;</td>
</tr>

</table>

<div align="center"><input type="submit" value="verzenden" />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="reset" value="alles wissen" width="20" height="14" />
                             
<br /><br />
</div>

</fieldset>
</form>

			
<!-- -->

</div>		
<br />
	                        
		<div id="footer">
                <br />&nbsp;&nbsp;&nbsp;<a href="engels/index.html"><img src="images/vlag_eng.jpg" width="27" alt="English" border="0" /></a>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font face="Arial,Verdana" color="#FFFFFF" size="-2"><a href="blanco.html"><em><strong>Disclaimer</strong></em></a>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                <a href="blanco.html"><em><strong>Copyright ...</strong></em></a></font></div>
	</div>	
		
	<div id="imagepreloader"><img src="images/buttonover.gif" alt="mouseover" /></div>
</div>
</body>
</html>
 
Laatst bewerkt:
Ik krijg het niet werkend.

Wel met ander script:
Code:
<script language="JavaScript" type="text/javascript">
<!--
function checkform ( form )
{
  // see http://www.thesitewizard.com/archive/validation.shtml
  // for an explanation of this script and how to use it on your
  // own website

  // ** START **
  if (form.email.value == "") {
    alert( "Please enter your email address." );
    form.email.focus();
    return false ;
  }
  if (form.bedrijfsnaam.value == "") {
    alert( "Bedrijfsnaam?" );
    form.email.focus();
    return false ;
  }
  // ** END **
  return true ;
}
//-->
</script>

Code:
<form name="form" onsubmit="return checkform(this);" method="post" action="http://www.thermografie-centrum.nl/cgi-bin/cgiemail/vragenformulier.txt">

Dan wordt niet verzonden, tenzij het veld is ingevuld.

Code komt hier vandaan:
http://www.thesitewizard.com/archive/validation.shtml


:cool:
 
bedankt voor je hulp.
Het vreemde is dat het formulier wel correct werkend heb in een website gebouwd met frames.

Nu ben ik de site aan het maken in xhtml met css. En werken de verplichtte velden niet meer.
 
zou het misschien veroorzaakt kunnen worden door enkele fouten? Het is nml niet foutvrij als ik formulier laat controleren door http://validator.w3.org

krijg 3 meldingen waarvan ik niet weet hoe op te lossen.

there is no attribute "maxlength"
…textarea cols="71" rows="2" maxlength="400" name="extra_mededeling"></textarea…
(laatste tekstvakje)

there is no attribute "width"
…align="center"><input type="submit" value="verzenden" width="25" height="14" />

there is no attribute "height"
…align="center"><input type="submit" value="verzenden" width="25" height="14" />
(zijn de afmetingen van de verzend button, onderaan het formulier)
 
Fouten hebben geen invloed.

Code:
<input type="reset" value="alles wissen" width="20" height="14" />

wijzig in:
Code:
<input type="reset" value="alles wissen" style="width: 20px; height:14px;" />

:cool:
 
:thumb: thanks het formulier heb ik nu foutloos in de validator.
 
Laatst bewerkt:
Dat de invulvelden geen verplichte invulvelden zijn, zou dan mogelijk moeten liggen in het feit dat deze site XHTML is en de site met frames waar het formulier wel verplichte invulvelden heeft HTML is.

Ik moet vast wat aanpassen..... maar wat?
Iemand een idee?
 
Je script is niet goed, melding zie bijlage.

:cool:
 

Bijlagen

  • error-form.jpg
    error-form.jpg
    19,6 KB · Weergaven: 49
thanks, ben hierdoor stuk verder gekomen.
Heb nu al een aantal verplichte invulvelden, die werken zoals het hoort. Ik knutsel nog even door.
 
eindelijk gelukt.
hier de code voor de liefhebber

plaats dit in de head
HTML:
<script type="text/javascript">
var naw="";
var form="";
function controle(form)
{
var naw="";

if(form.naam.value=="")naw=naw+"Naam, ";
if(form.woonplaats.value=="")naw=naw+"Woonplaats, ";
if(form.email.value=="")naw=naw+"E-mail, ";
if(form.tel.value=="")naw=naw+"Telefoon, ";

if(naw!="")
	{
	naw=naw.substring(0,naw.length-2);
	naw="De volgende velden zijn nog niet ingevuld:\n" + naw;
	alert(naw); 
	return false;
	}
else{
	return true;
	}
}
</script>

Dit in de body:

HTML:
<form onsubmit="return controle(this)" method="post" action="http://www.uw websitenaam.nl/cgi-bin/cgiemail/contactform.txt">  
    

<fieldset><legend><font size="-1" face="Arial" color="#000000">Vul onderstaand formulier in.</font></legend>

<br />

<table>
<tr><td colspan="2" align="left"><em>&nbsp;&nbsp;&nbsp;<font size="-1">velden met een <strong>&nbsp;*&nbsp;</strong> zijn verplicht.</font></em></td></tr>


<tr>
	<td>&nbsp;&nbsp;&nbsp;<font face="Arial" color="#000000">* Naam:</font></td>
	<td><input type="text" name="naam" size="50" maxlength="40" /></td>
</tr>
<tr>
	<td>&nbsp;&nbsp;&nbsp;<font face="Arial" color="#000000">* Woonplaats:</font></td>
	<td><input type="text" name="woonplaats" size="50" maxlength="40" /></td>
</tr>
<tr>
	<td>&nbsp;&nbsp;&nbsp;<font face="Arial" color="#000000">* E-mail:</font></td>
	<td><input type="text" name="email" size="50" maxlength="40" /></td>
</tr>
<tr>
	<td>&nbsp;&nbsp;&nbsp;<font face="Arial" color="#000000">* Telefoon:</font></td>
	<td><input type="text" name="tel" size="50" maxlength="40" /></td>
</tr>

<tr>
<td>&nbsp;</td>
<td></td>
</tr>

<tr>
<td colspan="2">&nbsp;&nbsp;&nbsp;<font face="Arial" color="#000000"><strong>Stel hier uw vraag.</strong></font></td>
</tr>
<tr>
<td colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;<textarea cols="71" rows="5" style="maxlength:400px" name="vraag"></textarea><br />&nbsp;</td>
</tr>

</table>

<div align="center"><input type="submit" value="verzenden" style="width:80px; height:25px;" />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="reset" value="alles wissen" style="width:85px; height:25px;" />
<input type="hidden" name="success" value="http://www.uw websitenaam.nl/bedankt.html" />                              
<br /><br />
</div>

</fieldset>
</form>

het werkt met cgi
dus hier de code van het .txt tekstbestand wat de naam "contactform.txt" heeft
Code:
From: [email]
To: emailadres-invullen@websitenaam.nl 
Subject: Contact via website


Naam:   	             [naam]
Woonplaats:           [woonplaats]
E-mail:	             [email]
Telefoon:	             [tel]


Vraag: [vraag]
Alleen bij "To" vult u uw eigen emailadres in.
En dan moet er nog een pagina met de naam "bedankt.html" gemaakt worden waar naar verwezen wordt na verzenden.
 
Laatst bewerkt:
Dus het is voor de bakker :thumb:
smiley_bike.gif


:cool:
 
kopie van bericht naar afzender

Al weer enige tijd geleden had ik dit cgi emailformulier gemaakt. Nu zou ik graag een code erin willen zetten dat de afzender ook een kopie in zijn eigen mailbox krijgt. Weet iemand hoe dit moet?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan