Formulier checken.
Ik wil graag een formulier checken (of alles is ingevuld) alleen weet ik daar geen snelle manier voor.
Ik weet ook niet of er een snelle manier voor is om de formulier te checken of alles is ingevuld (dus geen lege velden zijn gepost).
Ik doe het altijd zo, maar vind ik te lang dradig:
Code (php)
Heeft iemand een idee?
of is er een andere manier.?
Gewijzigd op 01/01/1970 01:00:00 door Dutch Caffeine
Voorbeeld formulier met een aantal veel voorkomende velden:
Code (php)
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
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
<!-- Javascript controlle of alle verplicht aangegeven velden ingevuld zijn -->
<script type="text/JavaScript">
<!--
function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_validateForm() { //v4.0
var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
if (val) { nm=val.name; if ((val=val.value)!="") {
if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
} else if (test!='R') { num = parseFloat(val);
if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
min=test.substring(8,p); max=test.substring(p+1);
if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
} } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
} if (errors) alert('The following error(s) occurred:\n'+errors);
document.MM_returnValue = (errors == '');
}
//-->
</script>
<!-- Voorbeeld formuliertje met in de form tag een onsubmit waar de verplichte velden in staan vermeld -->
<form action="script.php" method="post" name="testform" onsubmit="MM_validateForm('naam','','R','mail','','RisEmail','nummer','','RisNum','wachtwoord','','R');return document.MM_returnValue">
<table align="center" border="0">
<tr>
<td>
*naam:
</td>
<td>
<input type="text" name="naam" />
</td>
</tr>
<tr>
<td>
*wachtwoord:
</td>
<td>
<input type="password" name="wachtwoord" />
</td>
</tr>
<tr>
<td>
*mail:
</td>
<td>
<input type="text" name="mail" />
</td>
</tr>
<tr>
<td>
*nummers:
</td>
<td>
<input type="text" name="nummer" />
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" name="verstuur" value="Login" />
</td>
</tr>
</table>
</form>
<script type="text/JavaScript">
<!--
function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_validateForm() { //v4.0
var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
if (val) { nm=val.name; if ((val=val.value)!="") {
if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
} else if (test!='R') { num = parseFloat(val);
if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
min=test.substring(8,p); max=test.substring(p+1);
if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
} } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
} if (errors) alert('The following error(s) occurred:\n'+errors);
document.MM_returnValue = (errors == '');
}
//-->
</script>
<!-- Voorbeeld formuliertje met in de form tag een onsubmit waar de verplichte velden in staan vermeld -->
<form action="script.php" method="post" name="testform" onsubmit="MM_validateForm('naam','','R','mail','','RisEmail','nummer','','RisNum','wachtwoord','','R');return document.MM_returnValue">
<table align="center" border="0">
<tr>
<td>
*naam:
</td>
<td>
<input type="text" name="naam" />
</td>
</tr>
<tr>
<td>
*wachtwoord:
</td>
<td>
<input type="password" name="wachtwoord" />
</td>
</tr>
<tr>
<td>
*mail:
</td>
<td>
<input type="text" name="mail" />
</td>
</tr>
<tr>
<td>
*nummers:
</td>
<td>
<input type="text" name="nummer" />
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" name="verstuur" value="Login" />
</td>
</tr>
</table>
</form>
Groetjes & succes
Gewijzigd op 01/01/1970 01:00:00 door Marco PHPJunky
ja er is wel een manier, maar dat is met javascript maar dan kan je de broncode overnemen en dat stukje weghalen, ik zie net dat marco die javascript heeft laten zien
tim schreef op 26.07.2007 17:33:
Zoals gezegd, het kan inderdaad ook gewoon in PHP. Het grote nadeel van javascript is namelijk dat je het uit kunt schakelen en de hele controle van je formulier wegvalt.ja er is wel een manier, maar dat is met javascript maar dan kan je de broncode overnemen en dat stukje weghalen, ik zie net dat marco die javascript heeft laten zien
Blanche schreef op 26.07.2007 17:43:
tim schreef op 26.07.2007 17:33:
Zoals gezegd, het kan inderdaad ook gewoon in PHP. Het grote nadeel van javascript is namelijk dat je het uit kunt schakelen en de hele controle van je formulier wegvalt.ja er is wel een manier, maar dat is met javascript maar dan kan je de broncode overnemen en dat stukje weghalen, ik zie net dat marco die javascript heeft laten zien
maar als het aanstaan is javascript wel "strenger" en strikter dan php zelf is
Waarom is dat? Het enige is dat je met javascript het ietstje eerder kan vertellen, bij php kan je het pas na een submit controleren. Strictheid in beide talen hangt puur van de programmeur af.
Quote:
Ik ben benieuwd naar de argumenten! Voor zover ik weet, is een controle zo goed als dat de programmeur deze heeft gemaakt. Het maakt daarbij geen ene moer uit of dat nu in JS, PHP, .NET, Java of wat dan ook is gedaan.maar als het aanstaan is javascript wel "strenger" en strikter dan php zelf is
Komt nog eens bij dat je JS niet kunt vertrouwen en het dus maar een extraatje is. Niets meer, niets minder.
eigenlijk hebben jullie bijde gelijk over het feit dat een beiviling en controlle net zo goed is als de programmeur hem maakt.
Maar zoals Arend ook al zei javascript is iets sneller ( niet dat je dat heel snel merkt )
en javascript heeft opzich minder regels code nodig dan dat php soms nodig.
het is ook waar dat als je javascript uit zet je er dan niks meer aan hebt omdat het op de client - side word uitgevoerd.
het is misschien mijn fout om te denken dat javascript strikter is maar dat is induvieel afhankelijk van de voorkeuren van de programmeur maar dat neemt niet weg dat feitelijk jullie gewoon gelijk hebben.
sorry maar ik zat denk ik niet hellemaal op te letten.
Voor de gebruiker zou ik echter javascript gebruiken, dat is veel eenvoudiger/directer voor hem/haar. Op javascript valt echter niet te vertrouwen want het is client-side.
Blanche schreef op 26.07.2007 17:19:
Je zou de $_POST array met een foreach loop uit kunnen lezen en elke variabele te controleren.
Daar heb ik hier een voorbeeldje van staan.
Daar heb ik hier een voorbeeldje van staan.
Je server geeft een 500 error.