Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > AJAX
AJAX Forum sur la programmation AJAX. Avant de poster : Cours AJAX, FAQ AJAX, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/03/2011, 14h37   #1
Candidat au titre de Membre du Club
 
Inscription : mars 2007
Messages : 74
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 74
Points : 11
Points : 11
Par défaut Authentification ajax puis redirection php

bonjour,

J'essaie de faire un site avec une authentification ajax où l'utilisateur entre son mail pour s'authentifier puis si il est bon il est redirigé vers une page où j'affiche les informations le concernant sinon j'affiche dans une balise près du formulaire d'authentification un message d'erreur.

Voci mon code ajax:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
function seConnecter(){
                var adresseMail = document.getElementById("login").value;
 
                if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
                    var xmlhttp = new XMLHttpRequest();
                }
                else {// code for IE6, IE5
                    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
                }
                xmlhttp.onreadystatechange = function(){
                    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                        document.getElementById("msgLogin").innerHTML = xmlhttp.responseText;
                    }
                }
 
                xmlhttp.open("POST", "verifierlogin.php", true);
                xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
                xmlhttp.send("identifiant=" + adresseMail);
 }
et mon code php (excusez moi si il est un peu fouillis je suis en train de travailler dessus):
Code :
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
 
<?php
 
include_once('connect.inc.php'); //fichier contenant les paramètres de connection à la base de données
 
if (isset($_POST['identifiant'])) $idVendeur=$_POST['identifiant'];
else {
echo "Identifiant incorrect.";
}
$req=('SELECT adressemail FROM vendeur WHERE adressemail=:idVendeur');
$resultat=$bdd->prepare($req);
$resultat->execute(array(':idVendeur'=>$idVendeur));
$idExiste=$resultat->rowCount();  //OK rowCount() renvoie le nb de lignes de la requête, voir également empty(), fetchColumn(), isset()
 
if ($idExiste>0) { 
session_start();
 
$_SESSION['maSession']=$idVendeur;
//session_write_close();
header("Location:mesannonces.html");
exit();
}
else {
echo "Identifiant incorrect.";
}
 
?>
explication : qd l'email est bon (dans ma BD mysql) l'utilisateur doit être redirigé vers mesannonces.html qui pour le moment ne contient qu'un simple message :"coucou. les amis" dans le body.

Mon pb est que qd l'email est bon au lieu de rediriger vers mesannonces.html, je reste sur la page d'authentification avec dans la balise où doit s'afficher le message d'erreur (en cas d'erreur bien sur) le contenu de mesannonces.html
càdire :"coucou. les amis"!?

qd l'email n'est pas bon il n'y a pas de pb j'ai bien mon petit message d'erreur qui s'affiche dans ma balise grâce à l'instruction :
document.getElementById("msgLogin").innerHTML = xmlhttp.responseText;

Donc ma question est : comment faire pour rediriger vers mesannonces.html avec php où dois le faire coté client avec JS avec une instruction du genre :
window.location.replace...? Merci de m'aider
skandaboy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2011, 16h36   #2
Membre régulier
 
Inscription : juin 2008
Messages : 105
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 105
Points : 84
Points : 84
Salut Quand tu appelles une page php à partir d'un script ajax, la page php peut juste te renvoyer une réponse à ajax.
Tu peux récupérer cette réponse dans la réponse (js) et rediriger en js vers ta page "mesannonces.html"

ex : dans ton code php, tu change
Code :
1
2
header("Location:mesannonces.html");
exit();
en ensuite dans ton code js, tu remplaces
Code :
document.getElementById("msgLogin").innerHTML = xmlhttp.responseText;
par
Code :
1
2
3
4
5
6
7
8
 
if (xmlhttp.responseText != "ok") {
 document.getElementById("msgLogin").innerHTML = xmlhttp.responseText;
}
else
{
window.location.replace("mesannonces.html");
}
Je pense que ça devrait marcher.

Cependant, le gros problème de cette methode c'est que le code js est accessible facilement par les internautes et donc, il pourrait taper directement l'adresse mesannonces.html dans le navigateur et donc tu devrais avoir une validation php sur ta page pour éviter ce problème.


Alpha.
alpha232 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2011, 16h49   #3
Candidat au titre de Membre du Club
 
Inscription : mars 2007
Messages : 74
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 74
Points : 11
Points : 11
Merci alpha. Je pensais à une solution de ce genre. Mai je voulais faire une redir php avec un "header()" car j'ai lu que c'était + performant.
Je vais voir.
skandaboy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2011, 12h35   #4
Candidat au titre de Membre du Club
 
Inscription : mars 2007
Messages : 74
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 74
Points : 11
Points : 11
ça marche maintenant avec cette solution mais j'ai encore un petit soucis.

qd je suis sur la page mesannonces.html (la page redirigée donc) je ne peus plus faire "page précédente" de mon navigateur (je ne peux pas revenir sur la page de login, la flèche arrière de mon navigateur est grisée)!

Est ce normal? et comment je peux remédier à ça?
skandaboy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2011, 18h34   #5
Membre régulier
 
Inscription : juin 2008
Messages : 105
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 105
Points : 84
Points : 84
Salut,
c'est sûrement du au fait le
Code :
window.location.replace("mesannonces.html");
n'enregistre pas la page rechargée dans l'historique.
Essaie de le remplacer par un
Code :
1
2
 
 window.location.href="mesannonces.html";
Alpha.
alpha232 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2011, 19h40   #6
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 805
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 805
Points : 35 807
Points : 35 807
Ou alors
Code :
window.location.assign("mesannonces.html");
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2011, 16h34   #7
Candidat au titre de Membre du Club
 
Inscription : mars 2007
Messages : 74
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 74
Points : 11
Points : 11
Merci ça marche correctement maintenant.
skandaboy est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h47.


 
 
 
 
Partenaires

Hébergement Web