Ok je vois ca d'ici 1 heure, pause dejeuner
Merci
Ok je vois ca d'ici 1 heure, pause dejeuner
Merci
J'ai essayé avec le code que tu ma donné et ca ne marche toujours pas, en fait je croiyais que ca venait du header pcq qd je valide les login et mdp ca m'envoie à la page connexion_bdd3 et elle est vierge.
J'ai essayé de remplacer le header par un require et la connexion marche mais seulement pour la premiere page, si je vx accéder aux autres pages ensuite ca me renvoie a connexionfaux.php
Comment je px faire :'(
PS : Tu avais oublié de fermer le crochet du If !Empty, je savais pas trop ou le fermé donc j'ai essyé un peu partout et ca n'a qd meme rien changé.
essai ce code;
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 <?php require("connexion_bdd2.php"); //Création d'une requete SQL de sélection de l'utilisateur $req = "SELECT * FROM utilisateur WHERE login='".addslashes(trim($_POST['log']))."' and mdp='".addslashes($_POST['pass'])."'"; $cherche=mysql_query($req) or die('erreur d\'identification'); if(mysql_num_rows($cherche) == 1) { //et récupération du résultat dans un tableau $trouve = mysql_fetch_assoc($cherche); $_SESSION['login'] = $trouve['login']; $_SESSION['statut'] = $trouve['statut']; $_SESSION['nom'] = $trouve['nom']; $_SESSION['prenom'] = $trouve['prenom']; header("location :administration.php"); } else { //aucun enregistrement pour ce login/mdp header("location :connexionfaux.php"); } ?>
qu'as tu exactement dans ton fichier connexion_bdd2
Avec ou sans les bons parametres de connexion ca me renvoie la page connexion_bdd3.php vierge
Voila ma page connexion.bdd2 :
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 <? // Déclaration des paramètres de connexion $host = 'localhost'; $user = 'user'; // ce n'est pas user ds mon fichier, je l'ai caché $bdd = 'bdd'; // ce n'est pas bdd ds mon fichier, je l'ai caché $passwd = 'passwd'; // ce n'est pas passwd ds mon fichier, je l'ai caché // Connexion au serveur mysql_connect($host, $user,$passwd) or die("erreur de connexion au serveur"); mysql_select_db($bdd) or die("erreur de connexion a la base de donnees"); ?>
si je me fie à l'algo d'origine qui est de ce type :
...c'est un peu normal que la page s'affiche même si la condition n'est pas remplie.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 if (condition) { require(page); }
à la différence d'un require, include appel ou non la page en fonction d'une condition.
de son côté require intégrera toujours la page.
remplacer le require avec un include devrait résoudre le problème.
ta page connexion_bdd3.php apparait vierge c'est ça?
peux tu faire un test avec des echos en debut et fin de page ainsi qu'un echo dans le if et un dans le else pour voir comment ça sexecute
J'ai fait des echo des mdp et login a plusieurs endroit et ca marche bien.
J'ai essayé les include et ca doit pas venir de ca, du moins pas avec le probleme que j'ai en ce moment.
Je vous remet exactement ou j'en suis :
Code dans ma page haut.php (donc dans toutes les pages de mon site sauf la page connexion ) :
Code dans ma page connexion_bdd3 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <? if(!isset($_SESSION['login'])) { header("Location:connexionfaux.htm"); } ?>
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 <? require("connexion_bdd2.php"); $loginOK = false; //récupération du login et mdp en supprimant les espaces parasites (en début et en fin de chaine) $login=trim($_POST['log']); $passwd=trim($_POST['pass']); // Vérification champ de saisie non vides ! if (!empty($login) && !empty($passwd)) { //Création d'une requete SQL de sélection de l'utilisateur $req = "SELECT * FROM utilisateur WHERE login='".addslashes($login)."' and mdp='".addslashes($passwd)."'"; // WHERE login='$login'"; $cherche=mysql_query($req) or die('erreur d\'identification'); //et récupération du résultat dans un tableau $trouve = mysql_fetch_assoc($cherche); //vérification du mot de passe if($trouve['mdp']==$passwd) { $loginOK = true; }; }; // Si le login est correct on ouvre la session if ($loginOK==true) { session_start(); $_SESSION['login'] = $trouve['login']; $_SESSION['statut'] = $trouve['statut']; $_SESSION['nom'] = $trouve['nom']; $_SESSION['prenom'] = $trouve['prenom']; require("administration.php"); } else { require("connexionfaux.php"); }; ?>
Code dans ma page connexion :
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 <form action="connexion_bdd3.php" method='POST' style="width: 100%; margin-top: 24px; margin-bottom: 48px;"> <fieldset style="padding-top: 8px; padding-bottom: 8px; width: 40%; margin-left: auto; margin-right: auto;"> <legend class="fontcolor3" style="font-variant: small-caps;">Identification</legend> <table style="width: 100%; border: 0;" cellpadding="5" cellspacing="0"> <tr> <td style="text-align: right; width: 40%; font-variant: small-caps;">Identifiant</td> <td style="text-align: center; width: 60%;"><input type="text" name="log"></td> </tr> <tr> <td style="text-align: right; width: 40%; font-variant: small-caps;">Mot de passe</td> <td style="text-align: center; width: 60%;"><input type="password" name="pass"></td> </tr> </table> <input type="submit" name="submit" value="Valider" style="font-variant: small-caps;"> </fieldset> </form>
Le probleme rencontré :
Quand je valide mes parametres de connexions dans la page connexion ca m'envoie bien dans ma page administration.php, mais qd je clique sur un des liens pour naviguer dans l'administration ca me renvoie à ma page connexionfaux.htm
Merci d'avance
met dans ta page haut un session_start avant le petit code de vérification
(je te lavais dit dans le 2ieme message de ce topic, je croyais que tu lavais fait)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <? session_start(); if(!isset($_SESSION['login'])) { header("Location:connexionfaux.htm"); } ?>
J'ai deja essayé de faire ca et ca me retourne cet erreur :
Notice: A session had already been started - ignoring session_start() in c:\program files\easyphp1-7\www\grh191\haut.php
Et de plus si je tape le nom de mes pages dans la barre d'adresse je px y acceder sans me conecter ...
cette erreur te dis que les entets ont deja eté envoyé, plus concretement ça signifie que tu as qq chose avant le session_start or il ne faut rien avant, le session start doit etre en debut de page sans code, ni meme espace avantEnvoyé par Sandara
Merci c'est bon le probleme est resolu, ca venait bien du session_start !
Je l'ai retiré de ma page haut.php qui etait apellé par des require en chaque debut de page, et je l'ai mis manuelement dans chaque page et maintenant ca marche !
Merci beaucoup !
Juste une derniere petite question et je ne vous embete plus :
La commande session_destroy(); marche de quel maniere ?
Je créer un bouton Se deconnecter avec une page php derriere ou je met seulement dedans ce code la ?
Merci d'avance !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <?php session_destroy(); // + un lien pour revenir à l'accueil ?>
C'est bon j'ai réussi a trouver comment me déconnecter. J'ai utiliser le script suivant et ca marche à merveille !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <? session_start(); unset ($_SESSION['login']); if ( isset ($_SESSION['login'])) { $resultat = "La déconnection a échouée !"; } else { $resultat = "Vous avez été déconnecté"; } echo $resultat; ?>
Merci beaucoup à tous !
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager