Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3083 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Session PHP

 


 Mot :   Pseudo :  
 
 Page :   1  2  3
Page Précédente
Auteur Sujet :

Session PHP

n°915492
FTG
Posté le 06-12-2004 à 10:53:11  profilanswer
 

Bonjour a tous,
est ce que quelqu un peut me dire pourquoi mon code de session ne marche pas:
2 fichiers: index.php et identification.php
Pour info mon hebergeur est laposte!
Merci a tous!
 
 
Voila le debut de index.php:
------------------------------------------------
<?    session_start();
    ini_set("session.use_cookies","0" );
    ini_set("session.register_globals","On" );
 
      ?>
<html>
<head>
 
 <title></title>
 
<link rel="stylesheet" type="text/css" href="styles.css" />
<link rel="stylesheet" type="text/css" href="menus.css" />
-----------------------------------------------------------
 
et le fichier identification.php:
-----------------------------------------------------------
<? session_start();
if(isset( $nomsession)) :
           ?> bonjour <?
         else:
if(isset($soumettre)) :
 
        if(empty($nom) OR empty($motdepasse)) :
         else:
$db=mysql_connect("localhost","xxx","xxx" );
mysql_select_db("xxx",$db);
 
 $sql="select*from motsdepasse";
 $resultat=mysql_query($sql);
 while($ligne=mysql_fetch_array($resultat)) {
 if($ligne['Auteur'] == $nom AND $ligne['Password'] == $motdepasse):
 
        $_SESSION['nomsession']=$nomsession;
        $_SESSION['motdepassesession']=$motdepasse;
         $nomsession=$nom;
         $motdepassesession=$motdepasse;
 
 
 
 
        break;
        endif;
        }
        if(!isset($nomsession)) :
 
 
         endif;
         endif;
 
else:
?>
 
<html>
 
 
 
<body>
<form  action="index.php?page=identification" method="post">
Veuillez vous identifier! <br>
Login: <input type="text" name="nom">
Mot de passe: <input type="text" name="motdepasse">
<input type="submit" name="soumettre" value="Soumettre">
</form>
 
<? endif; endif; ?>
</body>
</html>
 
-----------------------------------------------------------


Message édité par FTG le 09-12-2004 à 22:30:46
mood
Publicité
Posté le 06-12-2004 à 10:53:11  profilanswer
 

n°915494
skeye
Posté le 06-12-2004 à 10:54:59  profilanswer
 

Flemme de lire ton code:
1) Quelle est l'erreur?
2) utilise les balises [ cpp] et [ /cpp], ce sera plus lisible.


---------------
Can't buy what I want because it's free -
n°915496
FTG
Posté le 06-12-2004 à 10:57:33  profilanswer
 

Ben quand je relance identification.php il ne me detecte pas la variable de session $nomsession. Pour le serveur c est comme si elel n existait pas!
Desole pour la numerotation des lignes!

n°915525
FTG
Posté le 06-12-2004 à 11:34:27  profilanswer
 

up

n°915541
xelad
Posté le 06-12-2004 à 11:44:42  profilanswer
 

primo, le code php ça commence avec <?php ....., ça change ptete rien mais c'est plus sûr...
sinon pour acceder à tes variables de session, c'est comme pour un tableau associatif (ça tombe bien, $_SESSION est un tableau associatif...) donc :
$_SESSION['nomsession']="trucmuche";
if(isset($_SESSION['nomsession'])){
   echo "hello {$_SESSION['nomsession']}, ca va???";
}
 
bien sur cela va afficher "salut trucmuche, ca va???"
 
Sinon pour tes if, mais plutot des "{..}" que des ":" parce qu'on comprends vraiment rien!

n°915547
xelad
Posté le 06-12-2004 à 11:47:31  profilanswer
 

et évite ça aussi "...?> bonjour <? ..." ligne 3 de identitfication.php. utilise plutot
echo "bonjour", ça évite de fermer les balises puis de les réouvrir puis de les refermer puis de les.........

n°915557
Xav_
The only one...
Posté le 06-12-2004 à 11:51:02  profilanswer
 

pitete une remarque à la con, mais perso j'utilise "break" que quand je me sers d'un switch, pour des if je comprend pas vraiment.....

n°915558
FTG
Posté le 06-12-2004 à 11:51:29  profilanswer
 

Merci pour ces precisions de style, helas cela ne marche toujours pas!
le if(isset($_SESSION['nomsession'])) ne reconnait toujours pas que j ai bien cree la variable de session nomsession!
Je suis un peu perdu la...

n°915561
xelad
Posté le 06-12-2004 à 11:55:06  profilanswer
 

sinon, sans vouloir m'acharner, ça m'horripile de voir un register_global à "On". va voir par ici http://www.phpindex.com/articles/a [...] lement=299

n°915563
xelad
Posté le 06-12-2004 à 11:55:50  profilanswer
 

ok j'épluche ton code.... 5min...

mood
Publicité
Posté le 06-12-2004 à 11:55:50  profilanswer
 

n°915565
bob007
Posté le 06-12-2004 à 11:57:39  profilanswer
 

Heeeeuuuu!!!
 
entre <? et <?php y'a pas grand chose, ca change rien, chacun ses habitudes!
Vas y mon petit FTG utilise celle que tu veux!
Apres le coup des {..} au lieu de ":" oui la je suis d'accord!
Pour le ?> bonjou <? je suis ok aussi, c'est plus rapide de faire echo 'bonjour'
les doubles quotes ne servant à rien car il n'y a pas de variables dans le string.
 
et pour le echo "hello {$_SESSION['nomsession']}, ca va???";  
fait plutot
echo "hello {".$_SESSION['nomsession']."}, ca va???";  

n°915567
skeye
Posté le 06-12-2004 à 11:57:54  profilanswer
 

D'un autre coté tu fais n'importe-quoi hein...[:mlc]

Code :
  1. if(empty($nom) OR empty($motdepasse)) :
  2. else:


Si $nom ou $motdepasse est vide tu remplis jamais ta variable de session...[:dawa]


---------------
Can't buy what I want because it's free -
n°915568
xelad
Posté le 06-12-2004 à 11:58:48  profilanswer
 

merci de me corriger...

n°915570
xelad
Posté le 06-12-2004 à 12:00:02  profilanswer
 

pour skeye : son register global est a "On" donc il a le droit de faire ça

n°915583
FTG
Posté le 06-12-2004 à 12:03:08  profilanswer
 

Pour skeye: et le "else:" est justement la pour lui dire de remplir mes variables de session si jamais on a remplit correctement les formulaires

n°915584
skeye
Posté le 06-12-2004 à 12:03:17  profilanswer
 

xelad a écrit :

pour skeye : son register global est a "On" donc il a le droit de faire ça


Je parle pas de ça, je parle de son algorithme.
Si je lis bien si $nom ou $motdepasse est vide il ne fait rien du tout, son script!:o


---------------
Can't buy what I want because it's free -
n°915591
FTG
Posté le 06-12-2004 à 12:08:34  profilanswer
 

bah c est pas grave ca, je mettrais un truc du genre echo "recommencez!"
Ce qu il me derange c est que le serveur ne reconnaisse pas ma variable de session $_SESSION['nomsession'] c plutot chiant ca

n°915592
xelad
Posté le 06-12-2004 à 12:09:20  profilanswer
 

essaye ceci pour identification.php
 

Code :
  1. <? session_start();
  2. if(isset($_SESSION['nomsession'])) echo "bonjour";
  3. else{
  4. if(isset($soumettre)){
  5.         if(!empty($nom) and !empty($motdepasse)){
  6.  $db=mysql_connect("localhost","fabienluce","fab99999" );
  7.  mysql_select_db("fabienluce_lp_db",$db);
  8.  $sql="select * from motsdepasse where Password='$motdepasse' and Auteur='$nom'";
  9.   $resultat=mysql_query($sql);
  10.   if(mysql_num_rows($resultat)==1){
  11.      $_SESSION['nomsession']=$nom
  12.             $_SESSION['motdepassesession']=$motdepasse;
  13.          }
  14.         }
  15.    }
  16.    else{
  17.  
  18.    echo "<html>"
  19. . "<body> "
  20. . "<form  action=\"index.php?page=identification\" method=\"post\"> "
  21. . "Veuillez vous identifier! <br> "
  22. . "Login: <input type=\"text\" name=\"nom\"> "
  23. . "Mot de passe: <input type=\"text\" name=\"motdepasse\"> "
  24. . "<input type=\"submit\" name=\"soumettre\" value=\"Soumettre\"> "
  25. . "</form> "
  26.   . "</body> "
  27. . "</html> "
  28.   }
  29. ?>


Message édité par xelad le 06-12-2004 à 13:51:11
n°915597
xelad
Posté le 06-12-2004 à 12:10:55  profilanswer
 

oups la boulette, attends, je corrige un truc...

n°915598
skeye
Posté le 06-12-2004 à 12:11:19  profilanswer
 

FTG a écrit :

bah c est pas grave ca, je mettrais un truc du genre echo "recommencez!"
Ce qu il me derange c est que le serveur ne reconnaisse pas ma variable de session $_SESSION['nomsession'] c plutot chiant ca


oui, mais entre autres tu ne remplis jamais ta variable de session, donc il ne risque pas de la reconnaitre! :pt1cable:


---------------
Can't buy what I want because it's free -
n°915602
xelad
Posté le 06-12-2004 à 12:14:19  profilanswer
 

a y est, j'ai corrigé


Message édité par xelad le 06-12-2004 à 12:14:43
n°915688
FTG
Posté le 06-12-2004 à 13:35:06  profilanswer
 

pour skeye: ben kan elle est remplie, il doit la reconnaitre, si elle n est pas remplie, il passe au else de du if

n°915709
xelad
Posté le 06-12-2004 à 13:50:08  profilanswer
 

bob007 a écrit :

...
 
et pour le echo "hello {$_SESSION['nomsession']}, ca va???";  
fait plutot
echo "hello {".$_SESSION['nomsession']."}, ca va???";


 
petite précision pour bob007, tes deux echo n'ont rien a voir :
l'un affichera "hello trucmuche, ca va???" et l'autre "hello {trucmuche}, ca va???"... je prefere ma méthode...


Message édité par xelad le 06-12-2004 à 13:52:14
n°915721
FTG
Posté le 06-12-2004 à 13:55:25  profilanswer
 

Je commence vraiment a en avoir ras le cul!!
mes variables de session ne sont reconnues nulle part!
Peut etre aue j ai oublie quelque chose de fondamental quelque part!! Quelqu un a une idee??

n°915726
xelad
Posté le 06-12-2004 à 14:04:34  profilanswer
 

Bon, ne nous enervons pas...
recommençons par les bases, essaye des trucs plus simples pour voir le fonctionnement des variables de sessions par ton hebergeur :
( y'a pas plus simple...)
 
page 'test.php'

Code :
  1. <?php
  2. session_start();
  3. $_SESSION['test']="hello";
  4. echo "test : {$_SESSION['test']}";
  5. ?>


 
d'autre part si tu es hebergé par laposte, tu n'as surement pas le droit de faire ce genre de chose

Code :
  1. ini_set("session.use_cookies","0" );
  2. ini_set("session.register_globals","On" );


donc la solution, c'est peut être de passer par les valeurs d'apache par défaut, c'est à dire les register_global à "Off", il faut donc modifier ton code en consequence :

Code :
  1. <? session_start(); 
  2. if(isset($_SESSION['nomsession'])) echo "bonjour"; 
  3. else{
  4.     if(isset($POST['soumettre'])){
  5.         if(!empty($_POST['nom']) and !empty($_POST['motdepasse'])){
  6.         $db=mysql_connect("localhost","fabienluce","fab99999" ); 
  7.         mysql_select_db("fabienluce_lp_db",$db); 
  8.         $sql="select * from motsdepasse where Password='{$_POST['motdepasse']}' and Auteur='{$_POST['nom']}"; 
  9.         $resultat=mysql_query($sql);
  10.         if(mysql_num_rows($resultat)==1){
  11.            $_SESSION['nomsession']=$_POST['nom'];
  12.            $_SESSION['motdepassesession']=$_POST['motdepasse']; 
  13.                }
  14.         }
  15.    }
  16.    else{
  17.    
  18.    echo "<html>"
  19.     . "<body> "
  20.     . "<form  action=\"index.php?page=identification\" method=\"post\"> "
  21.     . "Veuillez vous identifier! <br> "
  22.     . "Login: <input type=\"text\" name=\"nom\"> "
  23.     . "Mot de passe: <input type=\"text\" name=\"motdepasse\"> "
  24.     . "<input type=\"submit\" name=\"soumettre\" value=\"Soumettre\"> "
  25.     . "</form> "
  26.     . "</body> "
  27.     . "</html> "
  28.   }
  29. ?>


Message édité par xelad le 06-12-2004 à 14:07:37
n°915730
FTG
Posté le 06-12-2004 à 14:07:10  profilanswer
 

Ah ok merci pour tes conseils!!

n°915731
xelad
Posté le 06-12-2004 à 14:08:26  profilanswer
 

FTG a écrit :

Ah ok merci pour tes conseils!!


ce qui veut dire ???

n°915733
FTG
Posté le 06-12-2004 à 14:10:50  profilanswer
 

Ben je susi en train de faire ds petits tests comme tu me las conseille et pis je reprend plus ou moins a zero!! T as raison faut jamais s enerver! ;)
Merci!

n°915734
Berceker U​nited
PSN : berceker_united
Posté le 06-12-2004 à 14:10:54  profilanswer
 

FTG a écrit :

Je commence vraiment a en avoir ras le cul!!
mes variables de session ne sont reconnues nulle part!
Peut etre aue j ai oublie quelque chose de fondamental quelque part!! Quelqu un a une idee??


Premierement il faut regarder si les variables de sessions s'enregistre bien sur le serveur. Regarde dans le fichier php.ini la partie session_temp un truc comme ça, il indique ou il enregistre les fichier session. En faite c'est la ou sont enregistrer les sessions. Par défaut c'est dans le répertoire php/tmp/
-Regarde si ce repertoire existe.
-Regarde ce que dit le php.ini a savoir l'endroit ou il est enregistré
-Lorsque tu utilises un fichier avec un session_start, regarde si dans le répertoire il y a pas un fichier qui se crée immédiatement. Si c'est pas le cas c'est que le problème est au niveau de ta configuration.
 
 
 
xelad : un code commençant par <?php c'est obselete et par defaut le php.ini n'est pas configuré pour accepter que cela. Si le probleme venait de là il aurait vu le code php sur son navigateur.  
Que tu le dise oui mais pas en disant premierement ;)

n°915737
FTG
Posté le 06-12-2004 à 14:14:57  profilanswer
 

Tu vois typiquement la:
dans mon fichier index j ai
<?    session_start();
          $_SESSION['test']=$bonjour;
      ?>
 
et dans l autre fichier
<?php  
session_start();  
$bonjour="hello";
echo "test : {$_SESSION['test']}";  
?>
et bien ca ne m affiche rien, keski va pas doc?

n°915744
Berceker U​nited
PSN : berceker_united
Posté le 06-12-2004 à 14:19:58  profilanswer
 

Je crois que tu es débutant et que tu ne sais pas utiliser les variables de session. Arrête de poser cette question sur ce forum et te conseil de faire un tour sur www.phpdebutant.org http://www.phpdebutant.org/article69.php il va t'expliquer et après tu vas comprendre ton erreur. Ne le prend pas mal mais c'est le seul conseil que je puisse donner parce que si tu luttes sur ça tu vas galérer sur plein de chose simple en php:/.


Message édité par Berceker United le 06-12-2004 à 14:22:18
n°915745
xelad
Posté le 06-12-2004 à 14:20:14  profilanswer
 

Berceker United a écrit :

xelad : un code commençant par <?php c'est obselete et par defaut le php.ini n'est pas configuré pour accepter que cela. Si le probleme venait de là il aurait vu le code php sur son navigateur.  
Que tu le dise oui mais pas en disant premierement ;)


 
je ne peux que te conseiller d'aller à cette page : http://www.phpdebutant.org/article14.php
 
d'autre part, notre ami FTG utilise un hebergeur (laposte), il ne peux donc peut être pas acceder au php.ini, cela dit, le dossier contenant les fichiers tmp créés pour les sessions se trouve generalement à la racine du repertoire du l'utilisateur. Cela dépend des hebergeurs.

n°915747
FTG
Posté le 06-12-2004 à 14:20:58  profilanswer
 

Enore mieux si je fais:
<?    session_start();
 
      ?>
dans le premier et
<?php  
session_start();  
if(isset($_SESSION['test'])):
echo "deja fait";
else:
$bonjour="hello";
$_SESSION['test']=$bonjour;
endif;
echo "test : {$_SESSION['test']}";  
?>
Et bien "deja fait" ne s affiche jamais, pourquoi ca??

n°915753
skeye
Posté le 06-12-2004 à 14:24:15  profilanswer
 

Je pense sincèrement que tu ne comprends rien à ce que tu fais. Suis le conseil de Berceker United et reprends un tutoriel depuis le début.


---------------
Can't buy what I want because it's free -
n°915754
Berceker U​nited
PSN : berceker_united
Posté le 06-12-2004 à 14:25:05  profilanswer
 

xelad a écrit :

je ne peux que te conseiller d'aller à cette page : http://www.phpdebutant.org/article14.php
 
d'autre part, notre ami FTG utilise un hebergeur (laposte), il ne peux donc peut être pas acceder au php.ini, cela dit, le dossier contenant les fichiers tmp créés pour les sessions se trouve generalement à la racine du repertoire du l'utilisateur. Cela dépend des hebergeurs.


Ok, donc s'il est chez un hebergeur cela doit fonctionner correctement, mais je constate qu'en faite il ne savait pas utiliser les sessions.

n°915755
xelad
Posté le 06-12-2004 à 14:26:40  profilanswer
 

FTG a écrit :

Tu vois typiquement la:
dans mon fichier index j ai
<?    session_start();
          $_SESSION['test']=$bonjour;
      ?>
 
et dans l autre fichier
<?php  
session_start();  
$bonjour="hello";
echo "test : {$_SESSION['test']}";  
?>
et bien ca ne m affiche rien, keski va pas doc?


si tu executes ton code, tu vas acceder à une variable $bonjour qui n'existe pas (laposte désactive les messages Warning pour des raisons de sécurité, c'est pour cela que ça n'affiche rien) mais si ces messages étaient activés cela te mettrait "Warning : undefined variable..." ou un truc comme ça parce que ta variable $bonjour n'a pas de valeur.

Code :
  1. <?    session_start();
  2. $bonjour="hello"; // je defini ma variable
  3.           $_SESSION['test']=$bonjour;     
  4. ?>
  5. et dans l autre fichier
  6. <?php
  7. session_start();
  8. echo "test : {$_SESSION['test']}";
  9. ?>

n°915758
FTG
Posté le 06-12-2004 à 14:27:33  profilanswer
 

bah si je crois que je comprends un peu pourtant.
Mais peux tu me preciser un truc: si je passe d un fichier php a un autre, si j ai declare une variable de session et si je ferm pas la session, elle est sensee etre globale cette varaible non??

n°915762
xelad
Posté le 06-12-2004 à 14:30:40  profilanswer
 

c'est la tout l'interet du tableau associatif $_SESSION, c'est qu'il est global partout où tu mets session_start();

n°915764
FTG
Posté le 06-12-2004 à 14:33:38  profilanswer
 

bon ben alors c pas normal que la variable $_SESSION['nomsession'] ne soit pas reconnu quand je fais un isset($_SESSION['nomsession'])...est ce que y a des options dans le php.ini qui pourrait bloquer quleque chose?

n°915765
Berceker U​nited
PSN : berceker_united
Posté le 06-12-2004 à 14:34:04  profilanswer
 

FTG a écrit :

bah si je crois que je comprends un peu pourtant.
Mais peux tu me preciser un truc: si je passe d un fichier php a un autre, si j ai declare une variable de session et si je ferm pas la session, elle est sensee etre globale cette varaible non??


$_SESSION['test'] oui elle sera global.
$test = $_SESSION['test']; $test ne sera pas global. Xelad te donne un bonne exemple. Mais regarde cette exemple tu va vite comprendre. http://www.phpdebutant.org/article69.php

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Session PHP

 

Sujets relatifs
session php chez free[PHP]variable de session dans une fonction
e-commerce : gestion d'un caddie avec session phpPHP, Dreamweaver, et session -debutant-
Session et php (5)[PHP/MYSQL] Session et authentification
Comment améliorer le système de session PHP ?redirection javascript - recuperation session php
[PHP] Session - marche pas ! [RESOLU] :-)[PHP] session + include = probleme
Plus de sujets relatifs à : Session PHP


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR