verification formulaire avant enregistrement Mysql

verification formulaire avant enregistrement Mysql - PHP - Programmation

Marsh Posté le 04-04-2006 à 15:14:49    

bonjour,
 
je precise bien que j'ai fait une recherche avant de poster  :)  
 
j'ai un formulaire qui marche nikel, avec enregistrement des réponses dans ma base!!!
sauf que je veux verifier que les champs sont bien rempli avant d'envoyer à la base... j'ai utilisé un script javascript classique du genre :
 
function verif() {  
if (document.formulaire.nom.value=="" ) alert("Merci de fournir votre nom !" );  
if (document.forms[0].elements[0].value=="" ) {  
document.forms[0].elements[1].focus();  
return false;}  
 et j'ajoute mon traditionnelle onsubmit=" return verif()" bla bla bla
 
mais quand je test, ça me mais une page blanche avec ecrit column 'nom' cannot be null.
sans la verif javascript, ça m'enregistre dans ma base et le champs nom reste vide donc!!!
 
du coup j'ai essayé autrement, un test en php:  if(empty($nom)) echo 'vous n'avez pas rempli le champs nom';
 
probleme : quand j'ouvre la page, il m'écrit d'office que j'ai pas rempli le champs 'nom', forcément puisqu'a l'ouverture de la page, le champs nom est vide :-(((.
j'ai donc placé le scripte if(empty($nom)) juste avant l'enregistrement dans la base de donnée, là ça marche mais il m'ouvre une page blanche avec ecrit "vous n'avez pas rempli le champs nom", mais mon formulaire dans tout ça???
 
Je veux juste tester les champs et si tout est pas rempli, il m'écrit ça sur la même page ou ya mon formulaire et l'utilisateur rempli les champs qu'il a oublié c tout.
 
HELP!!

Reply

Marsh Posté le 04-04-2006 à 15:14:49   

Reply

Marsh Posté le 04-04-2006 à 15:49:35    

Je crois qu'il y a une erreur dans ton javascript
if (document.formulaire.nom.value==""; )
 
Rien ne te gene ? :)


Message édité par Berceker United le 04-04-2006 à 15:49:54
Reply

Marsh Posté le 04-04-2006 à 16:00:09    

hummm, je pense au point virgule non???
donc je viens de faire un test sans donc ceci :  
if (document.formulaire.nom.value=="" )  
mais idem j'ai en retour la page blanche avec :
column 'nom' cannot be null   !!! ça m'enerve!!!

Reply

Marsh Posté le 04-04-2006 à 16:07:15    

aaaarggg je rêve mais oui ça marche sans le point virgul!!!
ooh la j'ai été un nul la je reconnais. MEEERRRCCIIIII
 
t'as une idée maintenant pour la verif coté serveur ?

Reply

Marsh Posté le 04-04-2006 à 16:08:56    

aaah non, ça marche pas, donc le javascript s'execute mais après le code php aussi mais il faut pas!!! comment lui dir que si le champs est vide, faut stopper l'execution du scripte php ??

Reply

Marsh Posté le 04-04-2006 à 16:12:54    

grenouille : en fait dans ma base, j'ai definis les champs en NOT NULL donc quand les champs sont pas rempli il m'affiche ça je pense sinon quand tout les champs sont rempli, tout fonctionne nikel et l'enregistrement dans la base se fait. mais au cas ou un utilisateur aurait désactivé le javascript, j'aimerais 1 : faire aussi une verif coté serveur  
2 : stopper l'execution du php si le javascript décèle un champs vide
 
pfff, j'ai toujours la possibilité de définir les champs de ma table en NULL par defaut mais je veux pas puisqu'il faut absolument qu'ils repondent.

Reply

Marsh Posté le 04-04-2006 à 16:17:14    

tu controles la longueur du champs
Exemple:

Code :
  1. if(isset($_POST['mon_champs'])){
  2.   if(str_len($_POST['mon_champs'])){
  3.     $arrError['mon_champs'] = true;
  4.   }else{
  5.     $arrError['mon_champs'] = false;
  6.   }
  7. }


Tu controle le tableau $arrError et ainsi tu connais les champs ayant une erreur ou non.
Autre chose. Php et javascript ne communique pas directement. Ton controle coté client (javascript) controle du coté client mais ton controle coté serveur ne sert seulement si le client desactive le javascript.  
Si tu veux donner l'impression que le controle c'est effectué du coté client mais que tu veux le faire du coté client utilise Ajax c'est la bombe de balle.
 

Spoiler :


Non c'est pas ça ! :o
http://blog.labnotes.org/wp-content/uploads/ajax.jpg


Message édité par Berceker United le 04-04-2006 à 16:20:58
Reply

Marsh Posté le 04-04-2006 à 16:19:32    

merci je teste ça de suite

Reply

Marsh Posté le 04-04-2006 à 16:21:06    

edit

Reply

Marsh Posté le 04-04-2006 à 16:24:55    

ajax c quoi??? je fais une recherche

Reply

Marsh Posté le 04-04-2006 à 16:24:55   

Reply

Marsh Posté le 04-04-2006 à 16:32:13    

blablagerezkljrez a écrit :

Berceker
Ca suffit je pense :

Code :
  1. if($_POST['champs'] == FALSE)
  2.     {
  3.     $ta_requete = ...
  4.     }
  5.     else
  6.     {
  7.     echo '<script>alert('Erreur')</script>';
  8.     }


 
 
Non?


Non parce que là il va y avoir plein d'alert à la suite et les alert sur le web (selon le public visé) n'est plus conseillé en terme d'image. Trop agressif.
Ce qui est modeu c'est de placer les indications à coté du champs en question en une seule fois.
Regle : Evité de faire cliquer trop souvent l'internaute. Si vous avez un gros kéke qui à commis toute les erreurs il va trop cliquer, ça va l'enerver il taille ailleur.

Reply

Marsh Posté le 04-04-2006 à 16:33:10    

jedebute75 a écrit :

ajax c quoi??? je fais une recherche


Myto  :o
http://siddh.developpez.com/articles/ajax/


Message édité par Berceker United le 04-04-2006 à 16:33:45
Reply

Marsh Posté le 04-04-2006 à 16:39:16    

ah ouais, ça a l'air trop bon ajax vais tester ça surtout que tout ce que je fais plante alors...
 
sinon oui j'ai bien un return false. voilà mon code :  
function valide(){  
 
if(document.form1.nom.value == "" ) {
   alert("Veuillez entrer votre nom!" );
   document.form1.nom.focus();
   return false;
  }
}  
 
mais me gonfle, il me met bien l'alerte 'veuillez entrer votre nom' et quand je fais ok, execute quand même le php et donc me renvoie l'eternel  colunm 'nom' cannot be null
 
arrrg, avant de faire le test coté serveur si o moins ça marchait côté client.  
sinon le test php pour verifier si la variable est vide, faut que je le place ou?

Reply

Marsh Posté le 04-04-2006 à 16:41:36    

Ha ha ha :lol: si tu place le return apres que t'ai fais le submit c'est un peut normal non ?  [:chewyy]  
 
Un conseil, fait un petit tour parce que tu as du avoir trop le nez dedans, va t'aérer la tête ;)

Code :
  1. //javascript
  2. if(document.getElementById('mon_champs').value.length==0){
  3.   alert('Veuillez remplir le champs xxxx');
  4.   document.getElementById('mon_champs').focus();
  5.   return false;
  6. }else document.getElmentById('mon_form').submit();


 
Edit :  Excuse moi j'ai confondu focus de submit  [:ciler]  je pense que je vais faire un tour
[:tang]


Message édité par Berceker United le 04-04-2006 à 16:54:13
Reply

Marsh Posté le 04-04-2006 à 16:51:45    

aaahhhh ben t'étais pas loin!!! je coince toujours tu vois!!! bah alors il est pas nikel mon javascript sniiiiif pkoi il execute mon php bouhhhhhh

Reply

Marsh Posté le 04-04-2006 à 16:54:50    

si tu test avec firefox et que tu regarde dans la consol javascript il va t'indiquer l'erreur.

Reply

Marsh Posté le 04-04-2006 à 17:06:10    

MERCI 1000 fois grenouille mais c dingue keskiclochait dans mon code??!!!

Reply

Marsh Posté le 04-04-2006 à 17:16:05    

ha ouais mais il faut dire que tu as mis un type submit sur ton bouton au lieu d'u type="button" :/

Reply

Marsh Posté le 04-04-2006 à 17:30:52    

pfffffffffffff mais oui mais oui!!!! c bête tout ce temps perdu hein!!!
merci encore pour l'aide.
je vais enfin pouvoir faire mes tests coté serveur youpiiiii

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed