Quote signifie cité désolé pour l'avoir mis comme ça c'est le reflex
le session_start() faut le mettre en seconde instruction dans TOUTES tes pages ou tu initialise ou utilise les variable $_SESSION['nom_de_la_var']
Version imprimable
je te met un bout de code idio qui pourras te montrer commen je fait:
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 <?php header('P3P: CP="CAO PSA OUR"'); //this is for that IE can use $_SESSION var /*************************************************************** * Copyright notice *zedef BLABLA ***************************************************************/ session_start(); if (....) { header('location: main.php'); } } ?> <!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' xml:lang='en'> blabla
ce que je veux te montrer c'est le placement de la premiere instruction html, et l'ordre de mon header et de mon session start par rapport à la page générale
Il n'y a pas de probleme ^^
Donc je te resitue le truc:
J'ai une page clients.php qui est la page ou s'identifie la personne, le formulaire fait appelle a la page customers_session.php qui permet donc l'identification et qui permet d'accédé a la page caché qui est espace_clients.php
voici le code que tu ma demandé qui vien de la page cutstomers_session.php
et voici ce que j'ai mis en debut de ma page caché!Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 <?php require_once("lib/sql_lib.php"); require_once("lib/ui_lib.php"); $login = isset($_POST["customers_login"]) ? $_POST["customers_login"] : ""; $pass = isset($_POST["customers_password"]) ? md5($_POST["customers_password"]) : ""; if($login != "" && $pass != "") { dbConnect("conf/mysql.conf"); $sql = "SELECT * FROM customers WHERE customers_login = '".$login."' AND customers_password = '".$pass."'"; $requete = mysql_query($sql); if($requete) { if(mysql_num_rows($requete) > 0) {
J'ai bien rajouter les header que tu m'as dit au bon endroit mais aucun changement!!Code:
1
2
3
4
5
6
7
8
9
10 <?php session_start (); if (isset ($_SESSION['customers_login'])==false) { header ("Location: clients.php"); } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Aucun changement desolé =(!!!!!!
Hi,
Je ne suis qu'un débutant mais où tu récupères les infos ?? :roll:
Essaie ça....si tu crées des variables de sessions, il faut peut être penser à les récupérer (via extract qui les range pour toi).Code:
1
2
3
4 // La 1ère ligne de ta page doit être ça !! session_start(); avant tout. session_start(); extract($_SESSION);
Moi j'avais des problèmes liés aux redirections avec le header. J'ai du modifier mon fichier php.ini
out_buffering --> On
Enfin ce ne sont que des propositions mais tiens nous au courant ;)
Juste pour un doute, quel hébergeur as tu ?
Je travail en local la avec easy php serveur apache
A ok parce que je sais que chez certains, si tu n'a pas de dossier "sessions" à la racine du site, les sessions ne marche pas.Après avec Easy PHP je sais pas je m'en sert pas.
Mais pourquoi est ce que sa ne fonctionnerai pas si il n'y a pas de dossier sessions ?? :x
Surtout que une session a deja été mise en place pour la zone admin du site il y a juste une fonction stocker dans un dossier lib
c'est free qui merde si y'a pas de fichier session :bug::(
Sinon au pire essaye un truc pour vérifier si sa vient de ton script, ou bien du fonctionnement des sessions.
Tu fait un truc genre
Comme sa tu seras au moin fixé sur la source du problèmeCode:
1
2
3
4
5
6 <?php session_start() $_SESSION['blabla'] = "blabla"; echo $_SESSION['blabla']; ?>
j'ai une erreur assez barbare !!!
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\Program Files\EasyPHP 2.0b1\www\e-cervo\customers_session.php on line 24
Je commence a être a bou lol :bug:
session_start();
$_SESSION["customers_login"] = $login;
(ligne 24) echo "$_SESSION['customers_login']";
ok x)
Bon et bien toujours rien de ne passe quand je clique sur connexion la page se redirige sur elle-même -_- en gros elle s'actualise sa sert vachement
lol t'a essayer de faire ce que j'ai mis juste au dessus ?
C'est à dire créer une nouvelle page avec juste un
Si il affiche page blanche c'est que t'a un problème avec les sessions, si il affiche blabla alors sa voudra dire qu'il y a un problème dans ton script (ne grions pas les étapes sinon on risque pas de s'en sortir :mouarf: )Code:
1
2
3
4
5
6 <?php session_start() $_SESSION['blabla'] = "blabla"; echo $_SESSION['blabla']; ?>
Désolé je n'avais pas compris ça comme sa donc j'ai fais ce que tu m'as dit et toto s'affiche j'ai donc un problème dans mon scripte youpi!
Jvais être embêtant vu le nombre de fois que tu l'a mis mais autant tout refaire à 0 quand on s'en sort pas donc pourrais tu nous montrer l'enssemble de la page qui inclu le login (donc formulaire html + page php qui traite le formulaire)
Y a pas de problème au contraire merci de vous emebeter pour mes souci!!
donc
la page de formulaire d'identification clients.php:
voici maintenant la page de traitement customers_session.php: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
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 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <?php require_once("lib/sql_lib.php"); require_once("lib/ui_lib.php"); dbConnect("conf/mysql.conf"); ?> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <head> <LINK REL=StyleSheet HREF='style.css' TYPE='text/css'> <!--[if IE]> <link href="styleIE.css" rel="stylesheet" type="text/css" /> <![endif]--> <title>www.e-cervo.com</title> </head> <body class='body'> <div class='en_tete'> </div> <center> <?php include ('include/div_left_include.php') ?> <?php include ('include/div_right_include.php') ?> <div class='corps'> <center> <img align='center' src='images/slogan.gif'></img> </center> <p class="tabletext "> Pour en savoir plus sur nos produits et sur les nouveautés, veuillez vous connectez avec votre login et mot de passe fournie au préalable!! </p> <FORM ACTION='customers_session.php' METHOD='POST'> <table align="center" class="tabletext"> <tr> <td>Pseudo:</td> <td><input type="text" name="customers_login" size=25></td> </tr> <tr> <td>Mot de passe:</td> <td><input type="password" name="customers_password" size=25></td> </tr> <tr> <td colspan="2" align="center"> <br> <input type="submit" value="Connection"></td> </tr> <tr> </table> </form> <p class="tabletext">Vous n'avez ni de login ni de mot de passe? <a href="demande_identifiant.php"><b>Faire une demande!!!</b></a></p> </div> <?php include ('include/pied_page_include.php') ?> </center> </body> </html>
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
28
29
30
31
32
33 <?php session_start(); ?> <?php require_once("lib/sql_lib.php"); require_once("lib/ui_lib.php"); $login = isset($_POST["customers_login"]) ? $_POST["customers_login"] : ""; $pass = isset($_POST["customers_password"]) ? md5($_POST["customers_password"]) : ""; if($login != "" && $pass != "") { dbConnect("conf/mysql.conf"); $sql = "SELECT * FROM customers WHERE customers_login = '".$login."' AND customers_password = '".$pass."'"; $requete = mysql_query($sql); if($requete) { if(mysql_num_rows($requete) > 0) { session_start(); $_SESSION["customers_login"] = $login; header("Location: espace_clients.php"); } else{ header("Location: clients.php"); } } }else{ header("Location: clients.php"); } ?>
Le problème est résolu un collègue m'a aidé et c'était un problème sur un isset qui en faisait que a sa tête merci beaucoup de toute vos réponse a la prochaine (surement demain x) )