[Résolu] Problème avec les variables de session

Problème avec les variables de session [Résolu] - PHP - Programmation

Marsh Posté le 02-08-2007 à 14:28:34    

Bonjour,
Pour acceder à une page, il faut que l'user s'identifie, après dans ma page j'"include" un bout d code de vérification où je récupére mes variables de session "login" et "passwd".
mon prob est que si j'ouvre pour la première fois  ma page, (après l'authentification) il me re demande de me loguer.. mais après tout marche bien..
mais c'est comme même bizzare.


Message édité par sabbahh le 28-04-2008 à 12:08:16
Reply

Marsh Posté le 02-08-2007 à 14:28:34   

Reply

Marsh Posté le 02-08-2007 à 14:48:49    

Donc pourquoi il ne garde pas mes variables de sessions en mémoire??
j'ai en login par défaut 'admin', ça n'a pas d'effet sur le prog?

Reply

Marsh Posté le 02-08-2007 à 14:50:50    

Bonjour,
j'ai déja eu un problème similaire mais sur une partie protégée par un .htaccess, le problème était qu'au départ j'étais sur monsite.com et que ensuite j'étais redirigé vers www.monsite.com.
C'était simplement ce www qui me créait ce problème.
J'espère t'avoir un peu aidé.
 
JeanLuc

Reply

Marsh Posté le 02-08-2007 à 14:57:00    

là je suis qu'en phase de conception.. donc encore dans le localhost.. donc malheureusement ce n'est pas cela.

Reply

Marsh Posté le 02-08-2007 à 16:07:35    

Ca veut dire que tu fais un test pour savoir s'il faut demander le log ou continuer. Ce test doit etre buggué


---------------
The Rom's, à votre service
Reply

Marsh Posté le 02-08-2007 à 21:19:49    

je comprend pas trop ce que tu veux dire??

Reply

Marsh Posté le 02-08-2007 à 21:26:08    

j'explique mon prob:
Quand j'ouvre internet explorer pour tester mon petit proramme, je me logue après il me redirige bien vers ma 2éme page mais là, il me redemande de me loguer.
Alors que si je me place après dans ma 1ére page d'authentification, mon programme marche bien et il demande pas de me reloguer.voilà

Reply

Marsh Posté le 02-08-2007 à 23:48:55    

Ce que je veux dire, c'est que lorsque tu ouvre IE, y'a bien un moment où tu fais un test pour savoir si tu es loggué ou pas et le cas échéant t'envoyé vers la page de login ou alors vers la page de contenu sécurisé. Ben je me dis qu'y a une erreur dans la condition de ce test. Enfin peut-être que c'est une erreur de structures des pages. Ca aiderait beaucoup si tu nous donnais un peu plus de précisions et le mieux c'est toujours de mettre une partie du code, celle qui concerne le log, la redirection et le test (le reste on a pas besoin)


---------------
The Rom's, à votre service
Reply

Marsh Posté le 03-08-2007 à 11:09:10    

Pour la partie authentification:
<?php
if(empty($_POST['password'])) {
echo "<script language='javascript'>alert('Vous avez oublié de saisir votre mot de passe');</script>";
echo "<script language='javascript'>window.location='page1.htm'; </script>";
   exit;
}
 
$login=$_POST['login'];
$password=$_POST['password'];
$mdp=strtolower($password);
 
    if (($mdp == 'admin')) {
session_start();
    $_SESSION['login'] = $login;
    $_SESSION['password'] = $mdp;
echo "<script language='javascript'>window.location='page2.php'; </script>";// Connexion réussie!
    }
    else {
echo "<script language='javascript'> alert('Mot de passe incorrect! Veuillez resaisir votre mot de passe');</script>";
    echo "<script language='javascript'>window.location='page1.htm'; </script>"; //page de redirection en cas d'erreur de pass
}
?>
 
Pour la partie vérification avant de la redirige:(verif.php)
<?php
session_start() ;
 
if(!isset($_SESSION['password']) and !isset($_SESSION['login'])) {
  echo "<script language='javascript'>alert('Vous n'êtes pas autorisé à acceder à cette page');</script>";
  include('page1.htm');
  exit;
 }  
?>  
Et dans ma page2:
<?php  
include 'Verif.php';
?>

Reply

Marsh Posté le 03-08-2007 à 15:59:28    

Heu ben chez moi ça fonctionne : [:spamafote]  
index.php (ok pas de php)

Code :
  1. <html>
  2. <head>
  3.   <title>admin-admin</title>
  4. </head>
  5. <body>
  6.   <form method="POST" action="check.php">
  7.    <input name="login" type="text" value="admin" />
  8.    <input name="password" type="password" value="admin" />
  9.    <input type="submit" />
  10.   </form>
  11. </body>
  12. </html>

check.php

Code :
  1. <?php
  2. if (empty($_POST['password'])) {
  3.         echo "<script language=\"javascript\">alert(\"password missing\" );</script>";
  4.         echo "<script language=\"javascript\">window.location=\"index.php\";</script>";
  5.         exit();
  6. }
  7. $login = $_POST["login"];
  8. $password = $_POST["password"];
  9. $mdp = strtolower($password);
  10. if ($mdp == "admin" ) {
  11.         session_start();
  12.         $_SESSION["login"] = $login;
  13.         $_SESSION["password"] = $mdp;
  14.         echo "<script language=\"javascript\">window.location=\"suite.php\";</script>";
  15. }
  16. else {
  17.         echo "<script language=\"javascript\"> alert(\"incorrect password\" );</script>";
  18.         echo "<script language=\"javascript\">window.location=\"index.php\";</script>";
  19. }
  20. ?>

verif.php

Code :
  1. <?php
  2. session_start() ;
  3. if (!isset($_SESSION['password']) && !isset($_SESSION['login'])) {
  4.         echo "<script language=\"javascript\">alert(\"Not authorized\" );</script>";
  5.         include("index.php" );
  6.         exit();
  7. }
  8. ?>

suite.php

Code :
  1. <?php
  2. include("verif.php" );
  3. echo "OK";
  4. ?>

Voilà, maintenant il te reste plus qu'à regarder si tu as pas un truc un peu différent qui te ferait revenir sur la première page (ici index.php) [:spamafote]


---------------
The Rom's, à votre service
Reply

Marsh Posté le 03-08-2007 à 15:59:28   

Reply

Marsh Posté le 05-08-2007 à 13:46:57    

c'est embêtant..
mais pourquoi mon programme marche très bien just après la première fois!! :s

Reply

Marsh Posté le 07-08-2007 à 21:06:20    

Problémz résolu, enfin bedouillé ;)

Reply

Marsh Posté le 10-08-2007 à 08:33:09    

Explique

Reply

Marsh Posté le 10-08-2007 à 09:29:13    

matinal!
en fait, déja ma 1ére page était en .htm donc j'arrivais pas à insérer <?php session_start();?> dès le départ, donc je l'ai transformé en .php puis après j'avais l'erreur suivante: la session est déja ouverte, mais il parait que ça bloque pas le script donc j'ai placé devant la "session_start" un "@". voilà!

Reply

Marsh Posté le 10-08-2007 à 10:15:05    

lol j'ai un job :D  
 
Ca m'oblige a me lever le matin

Reply

Marsh Posté le 10-08-2007 à 10:38:10    

Bon courage, moi aussi.. mais bon ce n'est pas un boulot c'est un stage.
ça t'as paru clair ma réponse??

Reply

Marsh Posté le 10-08-2007 à 10:58:13    

Oui pas de problème c'est juste par curiosité

Reply

Sujets relatifs:

Leave a Replay

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