Coupler la validation d'un formulaire client/serveur

WRInaute discret
Bonjour ou plutôt bonsoir

Comme beaucoup d'entres vous, j'utilise des formulaires sur mon site.

J'aimerais faire en sorte de pouvoir valider mes champs de formulaires avant l'envoi par un javascript (coté client) en plus d'un controle coté serveur (php)

Mes formulaires sont déjà gérés par une page "envoi.php", qui vérifie que certains champs soient remplis, mais sans conditions (format email ou téléphone) ce qui fait léger.

J'aimerais renforcer ce contrôle coté serveur, et utiliser du javascript en parallèle (sous forme de popup = 'alert')

La javascript je connait pas trop et j'ai trouvé plein de codes à essayer, mais aucun ne marche (plutot ne fonctionne ;-) )

Je ne dois pas employer la bonne méthode. Est ce un problème d'associer deux validations ?


D'avance, merci à vous
 
WRInaute occasionnel
ouaich_01 a dit:
Mes formulaires sont déjà gérés par une page "envoi.php", qui vérifie que certains champs soient remplis, mais sans conditions (format email ou téléphone) ce qui fait léger.
J'aimerais renforcer ce contrôle coté serveur, et utiliser du javascript en parallèle (sous forme de popup = 'alert')
La javascript je connait pas trop et j'ai trouvé plein de codes à essayer, mais aucun ne marche (plutot ne fonctionne ;-) )
Je ne dois pas employer la bonne méthode. Est ce un problème d'associer deux validations ?
D'avance, merci à vous
Salut,
Non c'est pas un problème, il est de coutume de verifier la sécu côté serveur et l'ergo côté client ...
Mais tu peux aussi verifier format email ou téléphone côté serveur, d'ailleurs c'est plus robuste.
Un exemple de ce qui ne fonctionne pas :?:
 
WRInaute discret
Salut sonikbuzz

couche tard aussi ? :lol:

merci à toi, voici mes 3 bouts de codes (php, javascript, balise form)

php :
<?
if (isset($_SESSION["message"]) && ($_SESSION["message"] != ""))
{
echo('<span class="Style3">Attention !</span> <br /><strong>' . $_SESSION[message] . '</strong>');
unset($_SESSION[message]);
}
else
{
if (isset($_SESSION["repmail"]) && ($_SESSION["repmail"] != ""))
{
echo("<strong>" . $_SESSION[repmail] . "</strong>");
unset($_SESSION[repmail]);
}
}
?>

Mon javascript :
<script type="text/javascript">

function validation()
{

if(document.form_contact.Nom.value == "")
{
alert ('veuillez entrer votre Nom');

return false;
}

else if(document.form_contact.PreNom.value == "")
{
alert ('veuillez entrer votre PreNom');

return false;
}

var email = document.form_contact.email.value;
else if (email.search(/^[_a-z0-9-]+(.[_a-z0-9-]+)*[^._-]@[a-z0-9-]+(.[a-z0-9]{2,4})*$/) == -1)
{
alert ('entrez une adresse Email valide');

return false;
}

else if(document.form_contact.votre_message.value == "")
{
alert ('veuillez entrer votre message');

return false;
}

else return true
{

document.form_contact.method = "POST";
document.form_contact.action = "envoi-contact.php";
document.form_contact.submit();

}
}
</script>

ma balise form :

<form id="form_contact" method="post" onsubmit="return validation(this)" action="envoi-contact.php" >

Y a t-il un emplacement pour chacun d'eux ?

Merci et...... bonne nuit !

(moi j'y vais, j'ai le cerveau qui fume à cette heure ci je pense que je vais en rever du javascript :p )
 
WRInaute accro
Code:
if (isset($_SESSION["message"]) && ($_SESSION["message"] != ""))
pourquoi ne pas faire plus court comme ca :
Code:
 if (!empty ($_SESSION["message"]))
:?:
 
WRInaute discret
Mumuri a dit:
a priori non ,

mais je dirais plutot un onsubmit="javascript:validation(this);"

Pourtant dans tous les exemples que j'ai lu, il parle bien de onsubmit= "return validation (this)"

Mais je vais essayer onsubmit="javascript:validation(this) !

Code:
if (isset($_SESSION["message"]) && ($_SESSION["message"] != ""))

pourquoi ne pas faire plus court comme ca :
Code:
if (!empty ($_SESSION["message"]))

Désolé mais le langage php je ne le connait pas plus que le javascript. c'est mon ami programmeur qui est à l'origine de ce code.

Quel avantage j'ai de faire plus court avec ton exemple ?

Merci à vous pour vos exemples
 
WRInaute accro
coder + court = coder - = +rapide = possibilité de dev d'autre trucs (par ex: tu peux coder deux classes au lieu d'une quand tu code plus vite, enfin ca me semble logique mm si pas vrai a 100%)
Dans ce cas précis tu met (isset(mavariable) et mavariable !='') en francais : est ce que ma variable est remplie, et n'est-elle pas vide => le mieux est donc de directement demandé !empty(mavariable) : est-ce que mavariable n'est pas vide (donc remplie).
Capiche? :D
 
WRInaute discret
Je viens d'essayer onsubmit="javascript:validation(this);" mais ca ne marche pas non plus... :(

En fait rien ne se passe, lors d'un envoi par le bouton envoyer du formulaire vide, c'est php joue son rôle mais pas le javascript.

Comment faire ?
Mon code javascript est-il correct ?

Sinon, pour faire revenir le visiteur sur la ligne du champ vide qui a généré l'erreur, et garder les champs 'correct" pour lui éviter de tout retaper, c'est javascript ou php qui intervient ?
 
WRInaute discret
Dans ce cas précis tu met (isset(mavariable) et mavariable !='') en francais : est ce que ma variable est remplie, et n'est-elle pas vide => le mieux est donc de directement demandé !empty(mavariable) : est-ce que mavariable n'est pas vide (donc remplie).

Capiche? Very Happy

Capiche ? Euhhhhh :lol:

Je peux modifier ca sans avoir à modifié ma page "envoi.php" ?
 
WRInaute accro
Sinon, pour faire revenir le visiteur sur la ligne du champ vide qui a généré l'erreur, et garder les champs 'correct" pour lui éviter de tout retaper, c'est javascript ou php qui intervient ?

ben tout dépend où interviens l'erreur..
moi en général c'est avec php que je raffiche le formulaire et les champs déja remplis ne présentant pas d'erreur.
pour les modifs php ca ne changera rien a ton problème donc pas necessaire, c'est juste 'mieux codé' c'est tout.[/code]
 
WRInaute discret
ok

coder + court = coder - = +rapide = possibilité de dev d'autre trucs

ne pas oublier le commentaire car

coder + court = TMA plus longue = argent perdu.
Pensez aux prochains développeurs qui repasseront derriere vos lignes de code.
 
WRInaute discret
J'ai pas compris grand chose en tous cas.

D'une, mon script javascript ne fonctionne pas.

De deux, mon controle php est trop simple.

:cry:
 
Discussions similaires
Haut