[PHP]pbavec les $_SESSION[' ']

pbavec les $_SESSION[' '] [PHP] - PHP - Programmation

Marsh Posté le 30-04-2003 à 19:15:21    

Je ne comprends plus la,  
la valeur que j'affecte a ma variable $_SESSION['enlinge'] est bien présente pour le script
de test du login/pas mais des que je passa à une autre page, la variable $_SESSION['enlinge'] est vide
 
script qui test la vailidité du login/pass
<?php
// appel du script de config
require ("admin/config.php" );
 
session_start();
 
// affectation des variables récupérées par le formulaire
$name = $_POST['login'];
$pass = $_POST['pass'];
// connexion à la base
$db = mysql_connect("$db_host","$db_login","$db_pass" );
// sélection de la base
mysql_select_db('identification',$db);
// on écrit la requête
$sql = "SELECT * FROM users
       WHERE user_name='$name' AND user_pass='$pass' AND droit='privé'";
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
// on affecte le résultat à la variable "affected_rows"
$affected_rows = mysql_num_rows($req);
 
// si le résultat est OK, on valide
if ($affected_rows=='1';)
{echo 'valide';
$_SESSION["enligne"] = $name;
}
else
{echo 'invalide';}
echo '<br>';
echo '<a href="index.php">RETOUR<br></a>';
 
// fermeture de la connexion
mysql_close();
?>
 
et le script en include() dans mes pages privés
 
<?php
session_start();
if(empty($_SESSION["enligne"]))
{
die('Vous devez être authentifié pour acceder à cette partie du site.
      Enregistrez vous <a href="index.php">Ici</a>';);
}
 
?>
:??: :pt1cable:  

Reply

Marsh Posté le 30-04-2003 à 19:15:21   

Reply

Marsh Posté le 30-04-2003 à 19:39:32    

Hazel a écrit :

Je ne comprends plus la,  
la valeur que j'affecte a ma variable $_SESSION['enlinge'] est bien présente pour le script
de test du login/pas mais des que je passa à une autre page, la variable $_SESSION['enlinge'] est vide
 
script qui test la vailidité du login/pass
<?php
// appel du script de config
require ("admin/config.php" );
 
session_start();
 
// affectation des variables récupérées par le formulaire
$name = $_POST['login'];
$pass = $_POST['pass'];
// connexion à la base
$db = mysql_connect("$db_host","$db_login","$db_pass" );
// sélection de la base
mysql_select_db('identification',$db);
// on écrit la requête
$sql = "SELECT * FROM users
       WHERE user_name='$name' AND user_pass='$pass' AND droit='privé'";
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
// on affecte le résultat à la variable "affected_rows"
$affected_rows = mysql_num_rows($req);
 
// si le résultat est OK, on valide
if ($affected_rows=='1';)
{echo 'valide';
$_SESSION["enligne"] = $name;
}
else
{echo 'invalide';}
echo '<br>';
echo '<a href="index.php">RETOUR<br></a>';
 
// fermeture de la connexion
mysql_close();
?>
 
et le script en include() dans mes pages privés
 
<?php
session_start();
if(empty($_SESSION["enligne"]))
{
die('Vous devez être authentifié pour acceder à cette partie du site.
      Enregistrez vous <a href="index.php">Ici</a>';);
}
 
?>
:??: :pt1cable:  


 

Code :
  1. <?php
  2. // appel du script de config
  3. require ("admin/config.php" );
  4. session_start();
  5. // affectation des variables récupérées par le formulaire
  6. $name = $_POST['login'];
  7. $pass = $_POST['pass'];
  8. // connexion à la base
  9. $db = mysql_connect("$db_host","$db_login","$db_pass" );
  10. // sélection de la base
  11. mysql_select_db('identification',$db);
  12. // on écrit la requête
  13. $sql = "SELECT * FROM users
  14.        WHERE user_name='$name' AND user_pass='$pass' AND droit='privé'";
  15. // on envoie la requête
  16. $req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
  17. // on affecte le résultat à la variable "affected_rows"
  18. $affected_rows = mysql_num_rows($req);
  19. // si le résultat est OK, on valide
  20. if ($affected_rows=='1')
  21. {echo 'valide';
  22. // C'EST ICI QUE CA CHANGE
  23. $enligne=$name;
  24. session_register("enligne" );
  25. }
  26. else
  27. {echo 'invalide';}
  28. echo '<br>';
  29. echo '<a href="index.php">RETOUR<br></a>';
  30. // fermeture de la connexion
  31. mysql_close();
  32. ?>
  33. et le script en include() dans mes pages privés
  34. <?php
  35. session_start();
  36. if(empty($_SESSION["enligne"]))
  37. {
  38. die('Vous devez être authentifié pour acceder à cette partie du site.
  39.       Enregistrez vous <a href="index.php">Ici</a>');
  40. }
  41. ?>


 
 
et comme ça ?


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 30-04-2003 à 19:42:15    

Thx, j essaye ca toute suite

Reply

Marsh Posté le 30-04-2003 à 21:54:35    

Hazel a écrit :

Je ne comprends plus la,  
la valeur que j'affecte a ma variable $_SESSION['enlinge'] est bien présente pour le script
de test du login/pas mais des que je passa à une autre page, la variable $_SESSION['enlinge'] est vide


 
n'oublie pas la poudre à lessiver :d

Reply

Marsh Posté le 01-05-2003 à 00:11:26    

ERF!
ca ne marche tjs pas  :fou:  :fou:  
 
 
Horny Grandcornu  [:wisetechi]

Reply

Marsh Posté le 01-05-2003 à 00:37:56    

perso je fais juste  
  $_SESSION['pseudo'] = $_POST['pseudo'];
et ça a l'air de marcher :??:
(première fois que j'utilise les sessions, ça date de ce soir, donc j'ai pas encore bcp testé :D)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 01-05-2003 à 00:52:18    

antp a écrit :

perso je fais juste  
  $_SESSION['pseudo'] = $_POST['pseudo'];
et ça a l'air de marcher :??:
(première fois que j'utilise les sessions, ça date de ce soir, donc j'ai pas encore bcp testé :D)


 
ouais logiquement ca fonctionne comme ca ....ou avec session_register();  
 
 
Hazel > une question : dans le fichier de conf apache, le trans_idest-il à 1 ? dans le cas contraire il faut que tu passes l'identifiant de session à ta nouvelle page
 

Code :
  1. // session_name()
  2. // session_id();  
  3. // renseignes toi la dessus !!!!!
  4. $id_sess=session_name()."="session_id();


 
et tu rajoutes cette chaine à la fin de chaque lien sans oublier "&" ou "?" qui précedent suivant le cas....
tu peux aussi les passer en <input type="hidden">
 
 
ou si tu as la main sur le serveur trans_id =1; // et c'est reglé


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 01-05-2003 à 01:02:38    

Sur php.net ils disent que session_register ça marche pas avec les register globals sur off, et que c'est pas compatible avec $_SESSION
 
http://be2.php.net/manual/en/funct [...] gister.php


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 01-05-2003 à 01:07:26    

antp a écrit :

Sur php.net ils disent que session_register ça marche pas avec les register globals sur off, et que c'est pas compatible avec $_SESSION
 
http://be2.php.net/manual/en/funct [...] gister.php


 
yaisse, merci je ne savais pas
 
Hazel > donc tu peux virer ce que je t'avais dis  [:spamafote]  
par contre, il y a de grande chance que se soit cette histoire de trans_id  ;)  


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 01-05-2003 à 01:08:10    

un truc chiant avec cet ID c'est que quand il le rajoute tout seul ce con met & au lieu de &amp; dans les URL :mad:


Message édité par antp le 01-05-2003 à 01:08:20

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 01-05-2003 à 01:08:10   

Reply

Marsh Posté le 01-05-2003 à 01:17:06    

antp a écrit :

un truc chiant avec cet ID c'est que quand il le rajoute tout seul ce con met & au lieu de &amp; dans les URL :mad:


 
c'est dans le cas du trans_id=1;
 
rajoutes ca dans ton script si ini_set() est activée sur le serveur.
 

Code :
  1. ini_set("arg_separator.output", "&" );


 


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 01-05-2003 à 01:21:03    

simogeo a écrit :


 
c'est dans le cas du trans_id=1;
 
rajoutes ca dans ton script si ini_set() est activée sur le serveur.
 

Code :
  1. ini_set("arg_separator.output", "&" );


 
 


 
c'est bien la première fois que je me quote .... :lol:  :lol:  
 
> Hazel : mais ca me fait penser que a ton pb
 
de même si l'hebergeur te permet l'utilisation du set_ini() tu peux simplement ajouter ca en debut de script.
 

Code :
  1. ini_set("session.use_trans_sid", 1); // afin que le passage soit automatique


 


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 01-05-2003 à 02:10:37    

simogeo a écrit :


 
c'est dans le cas du trans_id=1;
 
rajoutes ca dans ton script si ini_set() est activée sur le serveur.
 


 
merci, ça marche :)
 
( pour afficher un &amp; il faut taper &amp;amp; )


Message édité par antp le 01-05-2003 à 02:11:18

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 01-05-2003 à 12:36:39    

;)  merci je test tout ça
c'est super le php sauf quand on ne trouve [:deadlock]  :fou:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed