bonjour,
J'ai une question de débutant : voilà je voudrais savoir comment on fait pour rediriger l'utilisateur vers une autre page une fois qu'il s'est connecté. Je ne sais plus ou pas comment on fait. Y a t-il une instruction pour ça? Merci.
Version imprimable
bonjour,
J'ai une question de débutant : voilà je voudrais savoir comment on fait pour rediriger l'utilisateur vers une autre page une fois qu'il s'est connecté. Je ne sais plus ou pas comment on fait. Y a t-il une instruction pour ça? Merci.
Bonsoir,
A+.Code:header("Location : laPageDeRedirection.php");
Salut
Ou bien, et si tu utilises des pseudo-frames php :
Code:<?php include ('laPageDeRedirection.php'); ?>
OK Merci mais ma page est une page avec extension .html et ça ne marche pas.
La vérification du login est bon (j'ai mis une trace) mais il ne me redirige pas à la page des annonces!Code:
1
2 if ($idExiste>0) header("Location : mesannonces.html");
Est ce qu'il faut obligatoirement une page php?
Bonjour
Et bien moi, je vais dire :
Non ! :)
Et avec une réserve.
Si effectivement cette page contient du php, il va de soi que l'extention sera .php.
Si ce n'est pas le cas, rien n'empêche l'utilisation de l'extention .html avec header("Location....
[Edit] Ton fichier "mesannonces.html" se trouve dans le www ou dans un répertoire particulier ?
Vérifie bien le chemin, il n'y a pas de raison que ton script ne renvoye pas la page.
Ben ça marche pas non plus avec une page php. j'ai aussi essayé avec http://www.google.fr ça marche pas! :(
Comment je peux faire? je continue à chercher
As-tu un message d'erreur qui apparait ? si oui lequel
La condition ($idExiste>0) est elle vérifiée?
Fait un echo :
A+.Code:
1
2 echo " idExiste :". $idExiste; if ($idExiste>0) header("Location : mesannonces.html");
Oui $idExiste est à 1 et j'ai essayé des chemins possibles :
genre /projet/mesannonces.html ou php ou projet/mesannonces.php...
le fichier mesannonces.html se trouve dans le m rep que mon script verifierlogin.php qui se charge de la vérification du login et de la redirection.
J'ai regardé sur php.net mais ils disent la m chose que vous. Alors je ne comprends pas ou est l'erreur!
As tu un affichage quelconque avant de faire ce header ?
si c'est la cas enlève le et réessaye
Bonne chance :ccool:
Voici mon code complet
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <?php //header('Content-Type: text/xml'); include_once('connect.inc.php'); //fichier contenant les paramètres de connection à la base de données $idVendeur=$_POST['identifiant']; $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() //echo "$idExiste"; if ($idExiste>0) header("Location : mesannonces.html"); ?>
Essaye en mettant des ' ' à la place des " "
Sinon le problème peut venir de ta requête sql.Code:<php header('Location: page.php'); ?>
Ce qui fait qu'il ne va pas jusqu'au header
Si celà peut t'aider, tu as quelques solutions pour ce faire.
Et variées.
http://www.webrankinfo.com/dossiers/...x-redirections
A toute fin utile.
Bonjour,
As tu essayé d'enlever ta condition avant la redirection ?
Sinon à mon sens , c'est peut être ta requête qui coince.
Cordialement.
:ccool:
Merci pour votre aide les gars mais y a rien qui marche! Je vais continuer à chercher.
ça vient peut etre de la config de mon wamp ou je ne sais quoi. mais là c'est un
peu bete.:?
Tu peux nous dire a quoi correspond ta :idVendeur un champs , car dans ta requête ton égalité se rapport pas à une variable.
Cordialement.Code:
1
2 $req=("SELECT adressemail FROM vendeur WHERE adressemail = '$idVendeur' ");
:ccool:
Bon j'ai trouvé une solution qui a l'air de marcher à moitié:
avec include ('mesannonces.html') comme l'a sugéré Alain mais l'url m'indique que je suis toujours sur la page verifierlogin par contre ça m'affiche un message que j'ai mis dans mesannonces.html! et je n'utilise pas de frame ou pseudoframe.
et ça marche toujours pas avec header ...je contoinue mes investigations.
Merci Alain je vais essayé toutes les possibilités et j'espère trouver une solution avec header() parce que c'est mon but.
header("Location... va le trouver ton fichier.
Suffit simplement de lui indiquer la bonne destination.
C'est tout.
Bon courage ;)
Tu as bien fais de commenter ceci, le header location et content-type xml ne sont pas vraiment compatibles ;)
Il ne faut absolument pas d'echo ou quoi que ce soit qui écrit là dedans.Code:
1
2 include_once('connect.inc.php'); //fichier contenant les paramètres de connection à la base de données
Ce code me parait étrange, ça ne devrait pas être :Code:
1
2 $req=('SELECT adressemail FROM vendeur WHERE adressemail=:idVendeur');
sans parenthèses ?Code:$req = "SELECT adressemail FROM vendeur WHERE adressemail=:idVendeur";
ça ne marche pas est tout sauf une explication. Y a t-il un message d'erreur affiché ? Y a t-il une page blanche ? As-tu activé l'affichage des messages d'erreur (ou, au pire, leur log?) Sinon, active l'un ou l'autre et reporte nous le message d'erreur
Ne pas oublier que la fonction header ne doit pas être appeler après une sortie utilisateur.
non je n'ai aucun affichage dans mon code. j'ai juste une page blanche vide avec comme url ma page verifierlogin.php sans redirection!
Faut que je vérifie si le code de la redirection est executé. J'ai été voir dans les logs d'apache il ny'a pas d'erreur a priori du (genre fichier non trouvé).
pour ma req sql les parenthèses ne sont pas gênantes c'est une question de lisibilité que je fais çomme ça.
Je pense qu'il faut que je vérifie ce que le serveur envoie
Peut on voir ton code ?
Voici mon code :
Pour la page accueil qui envoie le formulaire:
Les fcts js (dans la page d'accueil) pour traiter les 2 bouttons de validation:Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19<form name="formulaire" method="post" action="" onsubmit="return testsubmit()"> <input type="text" size="40" name="recherche" maxlength="50"> <select name="categorie" value="<?php htmlentities($categorie);?>"> <optgroup label="high tech"> <option value="1">Informatique</option> <option value="2">TV, Son, Home Cinéma</option> </optgroup> <optgroup label="Jeux,Culture,Loisirs"> <option value="3">dvd, bluray</option> <option value="4">jeux video</option> </optgroup> </select> <input type="button" name="envoyer" value="Rechercher" onclick="gopage('recherche.php')"> <input type="text" size="30" name="identifiant" maxlength="50" value="Entrez votre adresse mail"> <input type="button" name="envoyer" value="Connexion" onclick="gopage('verifierlogin.php')"> </form>
Et mon code de verifierlogin.php :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 <script type="text/javascript"> // fonction pour le cas d'appui sur la touche entrée function testsubmit() { return !!document.formulaire.action; } //fonction pour choisir l'action function gopage(page){ document.formulaire.action = page; document.formulaire.submit(); } </script>
j'espère vous éclairer un peu.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 <?php //header('Content-Type: text/html'); //header('HTTP/1.1 303 See other'); include_once('connect.inc.php'); //fichier contenant les paramètres de connection à la base de données $idVendeur=$_POST['identifiant']; $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() //echo "$idExiste"; //include('mesannonces.html'); OK if ($idExiste>0) header("Location : projetweb/mesannonces.html"); ?>
ok, commençons au début...
Tu es certain que la conditionest vérifiée ?Code:if ($idExiste>0)
Et c'est quoi cette page ?
recherche.php
Code:
1
2
3 $idVendeur=$_POST['identifiant']; $req=('SELECT adressemail FROM vendeur WHERE adressemail=:idVendeur');
Code:$req=('SELECT adressemail FROM vendeur WHERE adressemail=$idVendeur');
Ah oui.
Me suis empressé à tort.
Sorry !
Oui avec le echo que j'ai mis en commentaire ça me rend 1 avec un email valide dans ma base. donc ma req sql marche bien.
sinon je pensais est ce qu'il n'y aurait pas une instruction du genre header('HTTP/1.1 303 See other'); qui manque?
Je suis en train de regarder sur la faq et autres docs.
Je sais que cela n'a rien à voir mais <?php htmlentities($categorie);?> n'écrira rien sans un "echo" ;) <?php echo htmlentities($categorie);?> ou <?=htmlentities($categorie);?>
Essaye :
- D'afficher les messages d'erreurs avec ini_set("display_errors", "on");
- de rajouter un "else{ var_dump($idVendeur); }" pour voir si ce que tu récupères est juste.
- ou mieux de voir toutes les variables "POST" que tu reçois avec "var_dump($_POST);"
As-tu essayé de cette façon :
Code:header("Location : /projetweb/mesannonces.html");