par
nico63800 » 07 déc. 2013, 09:08
Bonjour,
tu as deux moyens de vérifier un formulaire:
- avant envoi par le poste client , en javascript
- après envoi, par le serveur en php. Dans ce cas, si les informations sont incorrectes, tu fais une redirection vers le formulaire et réinsérant les données saises par l'utilisateur dans les champs du formulaire.
La seconde méthode est plus sécurisée car en ce qui concerne le première le javascript peut être désactivé sur le poste client.
Perso, je fais souvent les deux comme çà j'ai à la fois les avantages du javascript et la securité du php.
Voici l'implémentation concernant le javascript en ce qui concerne ton exemple:
Code : Tout sélectionner
<html>
<head>
<title>Test de vérification de formulaire</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<div align="center">
<form method="POST" action="formmail2.php" name="formulaire" onSubmit="return check();" >
<input type="hidden" name="subject" value="formmail" />
<table>
<tr>
<td>Votre Nom:</td>
<td><input type="text" name="realname" size="30" onKeyUp="javascript:couleur(this);" /></td>
</tr>
<tr>
<td>Votre Email:</td>
<td><input type="text" name="email" size="30" onKeyUp="javascript:couleur(this);" /></td>
</tr>
<tr>
<td>Sujet:</td>
<td><input type="text" name="title" size="30" /></td>
</tr>
<tr>
<td colspan=2>Commentaires:<br />
<textarea COLS="50" ROWS="6" name="comments" onKeyUp="javascript:couleur(this);"></textarea>
</td>
</tr>
</table>
<br/><input type="submit" value="Envoyer" /> - <input type="reset" value="Annuler" />
</form>
</div>
</body>
</html>
<script type="text/javascript">
function couleur(obj)
{
obj.style.backgroundColor = "#FFFFFF";
}
function check()
{
var msg = "";
//Vérification du mail s'il n'est pas vide on vérifie le . et @
if (document.formulaire.email.value != "")
{
indexAroba = document.formulaire.email.value.indexOf('@');
indexPoint = document.formulaire.email.value.indexOf('.');
if ((indexAroba < 0) || (indexPoint < 0))
{
document.formulaire.email.style.backgroundColor = "#F3C200";
msg += "Le mail est incorrect\n";
}
}
else
{
document.formulaire.email.style.backgroundColor = "#F3C200";
msg += "Veuillez saisir votre mail.\n";
}
//verification du nom
if (document.formulaire.realname.value == "")
{
msg += "Veuillez saisir votre nom\n";
document.formulaire.realname.style.backgroundColor = "#F3C200";
}
//idem champ commentaire
if (document.formulaire.comments.value == "")
{
msg += "Veuillez saisir un commentaire\n";
document.formulaire.comments.style.backgroundColor = "#F3C200";
}
if (msg == "") {
return(true);
}
else {
alert(msg);
return(false);
}
}
</script>
Bonjour,
tu as deux moyens de vérifier un formulaire:
- avant envoi par le poste client , en javascript
- après envoi, par le serveur en php. Dans ce cas, si les informations sont incorrectes, tu fais une redirection vers le formulaire et réinsérant les données saises par l'utilisateur dans les champs du formulaire.
La seconde méthode est plus sécurisée car en ce qui concerne le première le javascript peut être désactivé sur le poste client.
Perso, je fais souvent les deux comme çà j'ai à la fois les avantages du javascript et la securité du php.
Voici l'implémentation concernant le javascript en ce qui concerne ton exemple:
[code]
<html>
<head>
<title>Test de vérification de formulaire</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<div align="center">
<form method="POST" action="formmail2.php" name="formulaire" onSubmit="return check();" >
<input type="hidden" name="subject" value="formmail" />
<table>
<tr>
<td>Votre Nom:</td>
<td><input type="text" name="realname" size="30" onKeyUp="javascript:couleur(this);" /></td>
</tr>
<tr>
<td>Votre Email:</td>
<td><input type="text" name="email" size="30" onKeyUp="javascript:couleur(this);" /></td>
</tr>
<tr>
<td>Sujet:</td>
<td><input type="text" name="title" size="30" /></td>
</tr>
<tr>
<td colspan=2>Commentaires:<br />
<textarea COLS="50" ROWS="6" name="comments" onKeyUp="javascript:couleur(this);"></textarea>
</td>
</tr>
</table>
<br/><input type="submit" value="Envoyer" /> - <input type="reset" value="Annuler" />
</form>
</div>
</body>
</html>
<script type="text/javascript">
function couleur(obj)
{
obj.style.backgroundColor = "#FFFFFF";
}
function check()
{
var msg = "";
//Vérification du mail s'il n'est pas vide on vérifie le . et @
if (document.formulaire.email.value != "")
{
indexAroba = document.formulaire.email.value.indexOf('@');
indexPoint = document.formulaire.email.value.indexOf('.');
if ((indexAroba < 0) || (indexPoint < 0))
{
document.formulaire.email.style.backgroundColor = "#F3C200";
msg += "Le mail est incorrect\n";
}
}
else
{
document.formulaire.email.style.backgroundColor = "#F3C200";
msg += "Veuillez saisir votre mail.\n";
}
//verification du nom
if (document.formulaire.realname.value == "")
{
msg += "Veuillez saisir votre nom\n";
document.formulaire.realname.style.backgroundColor = "#F3C200";
}
//idem champ commentaire
if (document.formulaire.comments.value == "")
{
msg += "Veuillez saisir un commentaire\n";
document.formulaire.comments.style.backgroundColor = "#F3C200";
}
if (msg == "") {
return(true);
}
else {
alert(msg);
return(false);
}
}
</script>
[/code]