Et donc ton fichier verifierlogin.php se trouve dans un rep.
Ce serait peut-être judicieux de rappeler le chemin relatif de ton fichier "mesannonces" dans le header("Location:
(?)
Version imprimable
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");