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 :

Redirection page sous AJAX


Sujet :

JavaScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 25
    Par défaut Redirection page sous AJAX
    Bonjour à tous, bon voila je suis entrain de développer un intranet et j'utilise ajax .L'authentification se fait en utilisant des cookies tout marche bien jusqu'à maintenant . le problème surgi au momant ou je veux faire une redirection après une authentification correcte rien ne se passe , j'ai utilisé window.location.replace("menu.html") et window.href="index_error.html" rien ne se passe .

    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
    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
    74
    75
    76
    77
    function getXhr(){
    var xhr = null; 
    if(window.XMLHttpRequest) // Firefox et autres
       xhr = new XMLHttpRequest(); 
    else if(window.ActiveXObject){ // Internet Explorer 
       try {
           xhr = new ActiveXObject("Msxml2.XMLHTTP");
           } catch (e) {
           xhr = new ActiveXObject("Microsoft.XMLHTTP");
           } 
     
    }
    else { // XMLHttpRequest non supporté par le navigateur 
    alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
    xhr = false; 
     
    } 
    return xhr
     
    }
    //************************************fonction de connexion*********************************
    function connexion(){
    	var xhr = getXhr()
     
    var p = document.getElementById("pwd").value;
    var l = document.getElementById("login").value;
    xhr.open("GET", "querypass.php?p="+p+"&l="+l + "&nocache=" + Math.random(), false);
     
    xhr.onreadystatechange = function(){
    	if(xhr.readyState==4 && xhr.status==200 ){
    		var xml = xhr.responseXML
    		var ress = xml.getElementsByTagName('ress')[0];
    		var id = ress.getElementsByTagName('id')[0].firstChild.nodeValue
    		var nom = ress.getElementsByTagName('nom')[0].firstChild.nodeValue
    		var prenom = ress.getElementsByTagName('prenom')[0].firstChild.nodeValue
    		var stat = ress.getElementsByTagName('stat')[0].firstChild.nodeValue
    		if(stat == 0)
    	     {redirection(0)
    		 window.href="index_error.html"}
    		    else
    		    {cre_cook0("cookies",id)
    		   window.location.replace("menu.html")}
    	}}
     
    		xhr.send(null);
     
    }
     
    	//*********************************fonction creation cookies*****************************	  
    		     function cre_cook0(nom,contenu) {
          var expireDate = new Date();
          expireDate.setTime(expireDate.getTime() + 24*3600*1000);
          document.cookie = nom + "=" + escape(contenu)
             + ";expires=" + expireDate.toGMTString();
          }
     
    	//*************************fonction affichage valeur cookies****************************				   
    	    function litCook() {
     
    		var nom="cookies";	
          c=lit_cook(nom)
          if(c=="") alert("Le cookie est vide !")
          else alert("Le cookie vaut : "+c)
    	  //window.location.replace("index_error.html")
          }
    	//**********************fonction lecture cookies****************************************  
    	     function lit_cook(nom) {
          var deb,fin
          deb = document.cookie.indexOf(nom + "=")
          if (deb >= 0) {
             deb += nom.length + 1
             fin = document.cookie.indexOf(";",deb)
             if (fin < 0) fin = document.cookie.length
             return unescape(document.cookie.substring(deb,fin))
             }
          return ""
          }

  2. #2
    Membre Expert Avatar de Barsy
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    1 484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 484
    Par défaut
    Et window.location.href="mapage.html" ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 25
    Par défaut
    Merci pour ta reponse mais ca marche pas non plus , j'ai essayé de mettre un alert sous la condition if pour voir si ca rentre . ca m'affiche l'alert mais n'execute pas la redirection.

  4. #4
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,
    On peut voir la fonction redirection() ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 25
    Par défaut
    la fonction redirection contient la commande de direction vers une page web precise selon la valeur passée en argument. par exemple si la valeur passée egale à 0 , la redirection sera vers la page d'authentification (mot de passe ou login erronée) si la valeur egal a 1 la redirection passera vers la page menu .
    mais puiceque rien ne marche jusqu'a maintenant je l'ai effacée .

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 25
    Par défaut
    Remarquez que dans la fonction function litCook() j'ai mis
    window.location.replace("index_error.html") en argument , le truc bizarre c'est que la redirection marche bien ici mais quand j'essai de la faire a l'interieur de la fonction connexion() ou la fonction redirection() que j'ai crée pour le teste ca marche pas.

  7. #7
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour,
    Citation Envoyé par the_zoomer Voir le message
    mais quand j'essai de la faire a l'interieur de la fonction connexion() ou la fonction redirection() que j'ai crée pour le teste ca marche pas.
    un peu comme s'il y avait, juste avant, une erreur de script qui plante ton code
    Tu as activé la "notification des erreurs de scripts" (ou équivalent) de ton nav ?

    A+

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 25
    Par défaut
    euuh ..non ! on fait comment ? je travail sur IE parceque le code ne fonctionne pas bien sur mozilla . mais pourtant mon code fonctionne bien je l'ai testé et ca marche .

  9. #9
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par the_zoomer Voir le message
    mais pourtant mon code fonctionne bien je l'ai testé et ca marche .
    C'est pas ce que j'avais compris en lisant le début de la discussion

    Menu Outils / Options Internet / onglet "Avancé" / cocher "Afficher une notification de chaque erreur de script"

    A+

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 25
    Par défaut
    je commence par regler le probleme de redirection apres je verais celui de mozilla .
    voila la manip est faite . comment je recupere les notifications.
    merci

  11. #11
    Membre Expert Avatar de Barsy
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    1 484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 484
    Par défaut
    Outils > Console d'erreurs

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 25
    Par défaut
    je suis sur IE8 , c'est outil -->outils de developpement , je lance l'outil je choisis mon script JS je lance le debogage et ca ne me donne aucune erreur . j'ai essayer de voir si deja l'outil marche pour ca j'ai fait une erreur exprés sur le code et il l'a detecté .donc mon code est correcte.

  13. #13
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Re,
    Installes firebug sur Firefox et il doit te donner l'erreur, sinon montres ton code actuel.

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 25
    Par défaut
    voila j'ai installé firebug sur mozilla , en attendant de trouver l'erreur voila mes codes:
    pages HTML
    Code html : 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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
     
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Document sans nom</title>
    <script  type="text/javascript" src="query.js"></script>
    <style type="text/css">
    <!--
    #form1 table {
            color: #C0C0C0;
    }
    #form1 table tr td table tr td {
            color: #000;
    }
    body {
            background-color: #FFCC00;
    }
    -->
    </style>
    </head>
     
    <body>
    <form id="form1" name="form1" method="post" action="">
      <p>&nbsp;</p>
      <table width="891" border="0">
    <tr>
            <td width="236" height="271" bgcolor="#FFCC00">&nbsp;</td>
            <td width="714" bgcolor="#FFCC00"><table width="194" height="69">
              <tr>
     
              </tr>
          </table>
              <table width="49%" border="0" align="center" cellpadding="4" cellspacing="1">
              <tr>
                <td><strong>Login :</strong></td>
                <td><font color="#000000">
                  <input name="login" type="text" id="login" />
                </font></td>
              </tr>
              <tr>
                <td height="27"><strong>Mot de passe :</strong></td>
                <td><font color="#000000">
                  <input name="password" type="password" id="pwd" />
                </font></td>
              </tr>
              <tr>
                <td width="35%" height="70"><font color="#000000">
                  <input type="submit" name="Bouton" value="Valider" onclick="connexion();" />
                </font></td> 
                <td width="65%"><h1><font color="#000000">
                  <input name="Submit2" type="button"value="Fermer" onclick="javascript:window.close()" />
                </font></h1>
    <p>&nbsp;</p></td>
              </tr>
            </table></td>
        </tr>
      </table>
    </form>
    </body>
    </html>


    pages PHP querypass.php
    Code php : 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
    <?php
    $hote="localhost";
    $utilisateur="root";
    $modpasse="";
    $connection=mysql_connect ($hote, $utilisateur, $modpasse);
    $nomdelabase="gama";
    mysql_select_db ($nomdelabase, $connection);
    $log=$_GET["l"];
    $pwd=$_GET["p"];
    $xml = '<?xml version="1.0" encoding="ISO-8859-1"?><root>';
    //*********************************je recupere l'ID de l'utilisateur **************************
    $query = "SELECT id_ressource ,nom ,prenom FROM ressource where login='$log' and password='$pwd' ";
    $result = mysql_query($query); 
    $num_rows = mysql_num_rows($result);
     
    header('Content-Type: text/xml; charset: UTF-8');
    echo '<?xml version="1.0" encoding="UTF-8" ?>';
    echo "<root>";
    if($num_rows==1){
    while($row=mysql_fetch_row($result)){
     echo"<ress>";
     echo "<id>" . $row[0] . "</id>";
     echo "<nom>" . $row[1] . "</nom>";
     echo "<prenom>" . $row[2] . "</prenom>";
     echo "<stat>" . 1 . "</stat>";
     echo"</ress>";
    }}
    else{
     echo"<ress>";
     echo "<id>" . 0 . "</id>";
     echo "<nom>" . 0 . "</nom>";
     echo "<prenom>" . 0 . "</prenom>";
     echo "<stat>" . 0 . "</stat>";
     echo"</ress>";
    	}
    echo "</root>";
    mysql_close($connection);
    ?>

    pages JS query.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
    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
    74
    75
    76
    function getXhr(){
    var xhr = null; 
    if(window.XMLHttpRequest) // Firefox et autres
       xhr = new XMLHttpRequest(); 
    else if(window.ActiveXObject){ // Internet Explorer 
       try {
           xhr = new ActiveXObject("Msxml2.XMLHTTP");
           } catch (e) {
           xhr = new ActiveXObject("Microsoft.XMLHTTP");
           } 
     
    }
    else { // XMLHttpRequest non supporté par le navigateur 
    alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
    xhr = false; 
     
    } 
    return xhr
     
    }
    //************************************fonction de connexion*********************************
    function connexion(){
    	var xhr = getXhr()
     
    var p = document.getElementById("pwd").value;
    var l = document.getElementById("login").value;
    xhr.open("GET", "querypass.php?p="+p+"&l="+l + "&nocache=" + Math.random(), false);
     
    xhr.onreadystatechange = function(){
    	if(xhr.readyState==4 && xhr.status==200 ){
    		var xml = xhr.responseXML
    		var ress = xml.getElementsByTagName('ress')[0];
    		var id = ress.getElementsByTagName('id')[0].firstChild.nodeValue
    		var nom = ress.getElementsByTagName('nom')[0].firstChild.nodeValue
    		var prenom = ress.getElementsByTagName('prenom')[0].firstChild.nodeValue
    		var stat = ress.getElementsByTagName('stat')[0].firstChild.nodeValue
    		if(stat == 0)
    	      window.location.href='index_error.html';
    		   else
    		    {cre_cook0("cookies",id)
    		   window.location.replace("menu.html")}
    	}}
     
    		xhr.send(null);
     
    }
     
    	//*********************************fonction creation cookies*****************************	  
    		     function cre_cook0(nom,contenu) {
          var expireDate = new Date();
          expireDate.setTime(expireDate.getTime() + 24*3600*1000);
          document.cookie = nom + "=" + escape(contenu)
             + ";expires=" + expireDate.toGMTString();
          }
     
    	//*************************fonction affichage valeur cookies****************************				   
    	    function litCook() {
     
    		var nom="cookies";	
          c=lit_cook(nom)
          if(c=="") alert("Le cookie est vide !")
          else alert("Le cookie vaut : "+c)
    	  //window.location.replace("index_error.html")
          }
    	//**********************fonction lecture cookies****************************************  
    	     function lit_cook(nom) {
          var deb,fin
          deb = document.cookie.indexOf(nom + "=")
          if (deb >= 0) {
             deb += nom.length + 1
             fin = document.cookie.indexOf(";",deb)
             if (fin < 0) fin = document.cookie.length
             return unescape(document.cookie.substring(deb,fin))
             }
          return ""
          }

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 25
    Par défaut
    Les amis j'attend toujours si vous avez des propositions.
    juste pour information j'ai essayé de faire window.open("mapage.html") ca marche il m'ouvre une nouvelle fenetre . mais le truc qui est bizarre c'est que a chaque redirection ya toujours l'appel de la page index alors que je ne l'ai appellée nul part.

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 25
    Par défaut
    finalement ca a marché , j'ai utilisé window.setTimeout("location=('menu.html');",0); ne me demandez pas pourquoi ou comment j'ai aucune idée....par contre le code ne fonctionne toujours pas sur firefox et firebug ne me renvoi pas d'erreur a moins si je l'ai pas bien utiliser..
    merci

Discussions similaires

  1. Redirection de page avec ajax
    Par blacksf dans le forum Ext JS / Sencha
    Réponses: 6
    Dernier message: 22/09/2012, 17h41
  2. [Debutant(e)]Timeout de session et redirection page acceuil
    Par xhercule dans le forum Servlets/JSP
    Réponses: 11
    Dernier message: 26/12/2007, 11h23
  3. caractères étranges an haut de page sous Ffx
    Par javatwister dans le forum Général Conception Web
    Réponses: 6
    Dernier message: 27/08/2005, 01h49
  4. [VB.NET] Durée vie var session vs redirect page login
    Par fabthebreton dans le forum ASP.NET
    Réponses: 5
    Dernier message: 16/12/2004, 17h35
  5. [Debutant]Multi page sous sql serveur
    Par christophebmx dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 26/11/2004, 17h23

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