IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

[AJAX] Comportement très bizarre besoin d'aide


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 746
    Par défaut [AJAX] Comportement très bizarre besoin d'aide
    Bonjour à tous,

    Depuis ce matin je bute sur un problème de dingue : mon script ne fonctionne que si je fais une alerte à un certain endroit, si j'enlève cette alerte il ne fonctionne plus !

    J'ai dans mon formulaire un mot de passe à saisir, avec confirmation, dans 2 input text qui ont pour id passFinances et passFinances2, si ils ne sont pas vides et qu'ils sont égaux, je veux vérifier dans la base mysql, qu'ils correspondent bien au mot de passe de l'utilisateur "visacellule".

    Voici la partie php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    // controle d'authentification
    if (isset($_POST['user']) && isset($_POST['password'])){
    	 $host="127.0.0.1";
    	 $base="intranet";
    	 $utilisateur="root";
    	 $mdp="";
     
     	$connection=mysql_connect($host, $utilisateur, $mdp) or die ("Connexion au serveur impossible.");
     
    	$sql="SELECT * from intranet.utilisateurs
    	WHERE login='".trim($_POST['user'])."'
    	AND pass=PASSWORD(\"".trim($_POST['password'])."\") ";
     
    	$result=mysql_query($sql);
     
    	include_once("admin/classes/logger.php");
    	$logMgr=new Logger();
     
    	if (mysql_num_rows($result)>0){	
     
    		$logMgr->log("VISA","Login de ".$_POST['user']." (".$REMOTE_ADDR.")");
     
    		$tuple=mysql_fetch_array($result);			
     
    		mysql_query("	UPDATE intranet.utilisateurs set lastvisit=NOW() 
    						WHERE login='".trim($_POST['user'])."'");
     
    		echo "ok";
    	}else{
    		$logMgr->log("VISA","Echec login de ".$_POST['user']." (pass : [".$_POST['password']."])"." (".$REMOTE_ADDR.")");	
    		echo "echec";	
    	}
    }else 
    	echo "echec";
    Voici la partie js :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    <script type="text/javascript" src="js/XHRConnection.js"></script>	
    <script type="text/javascript">   
     
    function $(element) {
        return document.getElementById(element);
    }
     
    var noLogin="vide";
     
    var afficheStatut = function(obj) {
    	noLogin="vide";
    	if (obj.responseText!="ok"){
    		noLogin='<li>Mot de passe incorrect</li>';
    	}	
    }
     
    function verifBordFinances(mode){
    	var erreurs="";
    	if (mode=="valider"){
     
    		if ($('passFinances').value!=$('passFinances2').value || $('passFinances2').value=="" || $('passFinances').value==""){
    			erreurs+='<li>Re-saisie du mot de passe incorrecte</li>';		
    		}else{			
    			var XHR = new XHRConnection();
     
    			XHR.appendData("user", "visafinances");
    			XHR.appendData("password", document.getElementById('passFinances2').value);				
    			XHR.sendAndLoad("/ajaxAuthVisa.php", "POST", afficheStatut);			
    		}
    	}
     
    	//alert("on test si nologin vaut vide :"+noLogin);
    	if (noLogin!="vide"){		
    		erreurs+='<li>Mot de passe incorrect</li>';
    	}
    	if (erreurs.length>0){
    		$('zoneErreursBas').innerHTML="<ul>"+erreurs+"</ul>";
    		$('zoneErreursBas').style.display='';
    		erreurs="";
    		return false;
    	}else
    		$('bordereau_finances').submit();	
    }
    </script>
    Voilà tout fonctionne si je laisse l'alert, et si je l'enleve, le formulaire est soumis

    Je deviens fou !!

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 746
    Par défaut
    J'ai trouvé le problème : le script n'attendait pas le retour ajax pour continuer, ce qui fait qu'il validait le formulaire avant même de savoir si le mot de passe était ok !

    Cela viens du fait que l'appel du script php via ajax+la connexion sql prenaient plus de temps que le reste du script.

    Pour m'en rendre compte j'ai du compléter mes alert avec comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var obDat = new Date();
    alert('apres ajax nologin vaut '+noLogin+' à '+obDat.getUTCSeconds()+" "+obDat.getUTCMilliseconds());
    Afin de savoir à combien de millisecondes étaient executées chacunes de alertes, ca peut servir en mode débug

    Du coup j'ai fait un open à false, en mode synchrone quoi.

    ++

Discussions similaires

  1. Couleurs de Cellule bizarre! Besoin d'aide!
    Par freeman06 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/03/2015, 19h04
  2. Comportements très bizarres
    Par DotNET74 dans le forum Windows Phone
    Réponses: 4
    Dernier message: 23/06/2011, 12h09
  3. Setup bizarre, besoin d'aide svp
    Par nyme92 dans le forum Administration système
    Réponses: 1
    Dernier message: 23/03/2008, 12h26
  4. [trés serieux] Dissertation assez bizarre ! besoin d'aide !
    Par Joe-La-Boule dans le forum La taverne du Club : Humour et divers
    Réponses: 17
    Dernier message: 11/01/2007, 18h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo