Session PHP

Session PHP - PHP - Programmation

Marsh Posté le 09-02-2004 à 18:36:29    

Bonjour !
J'ai réalisé mon site, avec des tableaux.
Il me faut mainenant créer les sessions php, ce qui est facile.
Mais j'ai un pbl :
Imaginons que j'ai ma page index avec des liens dessus.
La personne va s'identifier.
Les liens seront pointés vers on script php, qui vérifiera si la personne est identifiée.
Si elle l'est, elle sera envoyée vers la bonne page, sinon ves une page blanche.
Mais dans ce cas il suffit de connaitre le nom de la bonne page pour y accéder,, même sans être identifié.
Comment remédier à ce probleme ?

Reply

Marsh Posté le 09-02-2004 à 18:36:29   

Reply

Marsh Posté le 09-02-2004 à 18:39:54    

Très simple.
 
Admettons que si l'user est ok, tu mets une variable de session "login" à TRUE.
Exemple: $_SESSION['login']=TRUE;
 
 
Au début de châque page à "protéger" tu ajoutes:
 

Citation :


<?php
session_start();
if ($_SESSION['login']==FALSE && $_SERVER['REMOTE_ADDR']!="127.0.0.1" ) {
 header("HTTP/1.0 403 Forbidden" );
 exit;
}


 
Edit: pour le REMOTE_ADDR, c pas obligé mais c une commodité pour le développeur pour accéder directement à la page.


Message édité par kfman le 09-02-2004 à 18:42:10
Reply

Marsh Posté le 09-02-2004 à 18:40:08    

Moi_Enzo a écrit :

Bonjour !
J'ai réalisé mon site, avec des tableaux.
Il me faut mainenant créer les sessions php, ce qui est facile.
Mais j'ai un pbl :
Imaginons que j'ai ma page index avec des liens dessus.
La personne va s'identifier.
Les liens seront pointés vers on script php, qui vérifiera si la personne est identifiée.
Si elle l'est, elle sera envoyée vers la bonne page, sinon ves une page blanche.
Mais dans ce cas il suffit de connaitre le nom de la bonne page pour y accéder,, même sans être identifié.
Comment remédier à ce probleme ?


 
tu as pas du comprendre les sessions  :sweat:  tu verifies à chaque fois la session du user sur les pages concernées [:spamafote]  
va voir là :
http://www.toutestfacile.com/phpin [...] =sessions0


---------------
IVG en france
Reply

Marsh Posté le 09-02-2004 à 18:43:06    

Ouai c'est bon merci, en fait si j'ai compri les sessions (promis juré) mais j'ai pas d'assez bonnes notions en php :/
Enfin là normalement y aura pas de pbl, je vais tester ;)

Reply

Marsh Posté le 09-02-2004 à 18:48:10    

Jpeu remplacer  

Citation :

<?php  
session_start();  
if ($_SESSION['login']==FALSE && $_SERVER['REMOTE_ADDR']!="127.0.0.1" ) {  
 header("HTTP/1.0 403 Forbidden" );  
 exit;  
}


Par  

Citation :

<?php  
session_start();  
if ( !session_is_registered("password" ) )  
header("HTTP/1.0 403 Forbidden" );


??
Merci d'avance

Reply

Marsh Posté le 09-02-2004 à 18:52:39    

Vaut mieux utiliser les $_SESSION c'est le nouveau "standard" PHP.


Message édité par kfman le 09-02-2004 à 18:52:57
Reply

Marsh Posté le 09-02-2004 à 18:53:55    

Ouai enfin bon si sa revient au même l'essentiel c'est que sa marche, donc je vais commencer comme je pensais, sinon je met ton code ;)

Reply

Marsh Posté le 09-02-2004 à 18:55:11    

Et autre chose : c'est normal que sa marche pas avec free ?

Reply

Marsh Posté le 09-02-2004 à 18:55:40    

Moi_Enzo a écrit :

Ouai enfin bon si sa revient au même l'essentiel c'est que sa marche, donc je vais commencer comme je pensais, sinon je met ton code ;)


 
Après ce genre de considération c du MyLife :D :D


Message édité par kfman le 09-02-2004 à 18:55:49
Reply

Marsh Posté le 09-02-2004 à 18:56:04    

Moi_Enzo a écrit :

Et autre chose : c'est normal que sa marche pas avec free ?


 
Quoi ça ?

Reply

Marsh Posté le 09-02-2004 à 18:56:04   

Reply

Marsh Posté le 09-02-2004 à 18:56:17    

mais lis le lien que je t'ai filé, y a 3 pages et tu vas comprendre (et non l'essentiel c'est pas que ca marche, il y a des standard c'est pas pour rien) :o


---------------
IVG en france
Reply

Marsh Posté le 09-02-2004 à 18:56:50    

kfman a écrit :


 
Quoi ça ?


Les sessions :/
J'ai envoyé sur 2 hbergeurs les meme pages, un pro et free.
Sa marche (enfin le début) avec le pro et pas avec free :/

Reply

Marsh Posté le 09-02-2004 à 18:58:18    

Pour Free chépo.

Reply

Marsh Posté le 09-02-2004 à 19:08:26    

Excusez moi, je suis trop con
En fait tou était bon, c'est juste que j'enregistrais mes pages en .html
Donc désolé de vous avoir dérangé :d

Reply

Marsh Posté le 09-02-2004 à 19:11:40    

Moi_Enzo a écrit :

Excusez moi, je suis trop con
En fait tou était bon, c'est juste que j'enregistrais mes pages en .html
Donc désolé de vous avoir dérangé :d


 
[:rofl] [:rofl]
 
Mais qui ne l'a pas faite en débutant PHP...


Message édité par kfman le 09-02-2004 à 19:13:20
Reply

Marsh Posté le 02-03-2004 à 00:01:47    


kfman a écrit :

Très simple.
 
Admettons que si l'user est ok, tu mets une variable de session "login" à TRUE.
Exemple: $_SESSION['login']=TRUE;
 
 
Au début de châque page à "protéger" tu ajoutes:
 

Citation :


<?php
session_start();
if ($_SESSION['login']==FALSE && $_SERVER['REMOTE_ADDR']!="127.0.0.1" ) {
 header("HTTP/1.0 403 Forbidden" );
 exit;
}


 
Edit: pour le REMOTE_ADDR, c pas obligé mais c une commodité pour le développeur pour accéder directement à la page.


 
 
 
Salut, merci pour toutes ces informations mais moi j'ai un pti problème kan je fé ca . J'obtiens ce message d'erreur :  
 
Notice: Undefined index: login in c:\program files\easyphp1-7\www\intranet\acceuil.php on line 3
 
 Je comprend pas pourquoi :??: . Si qq1 pouvais m'aider ca me serai d'une grande utilité ! :D  


Message édité par arnaudco83 le 02-03-2004 à 00:06:55
Reply

Marsh Posté le 02-03-2004 à 11:42:49    

ca veut dire qu'il n'y a pas de $_SESSION['login'] (cf tu ne l'a pas crée ou faute de frappe etc...)


Message édité par boulax le 02-03-2004 à 11:43:19
Reply

Marsh Posté le 02-03-2004 à 12:19:09    

boulax a écrit :

ca veut dire qu'il n'y a pas de $_SESSION['login'] (cf tu ne l'a pas crée ou faute de frappe etc...)


 
merci en fait je me suis rendu compte que c'était une erreur de configuration du fichier config.php (je n'autaurisait ni le passage de session par adresse ni par cookie   :sweat: ) merci

Reply

Marsh Posté le 02-03-2004 à 13:49:54    

ah oui ok, c'etait aussi une possibilite :o

Reply

Marsh Posté le 02-03-2004 à 23:16:22    

Moi_Enzo a écrit :

Et autre chose : c'est normal que sa marche pas avec free ?

Sur free pour que les sessions fonctionnent, il te faut créé un repertoire sessions (exactement ecrit comme ceci) a la racine de ton ftp.
Dans php.ini, les boulets de free l'ont défini comme ça.
 
Bonne chance pour tes sessions moi je m'y attaque en ce moment et je capte pas grand chose lol mais bon je vais choper des tutos et ça va aller vite ;)
 
++

Reply

Marsh Posté le 02-03-2004 à 23:19:37    

http://www.toutestfacile.com/phpin [...] =sessions0  
je reposte ce lien parce qu'il explique tout tres simplement :O


---------------
IVG en france
Reply

Marsh Posté le 17-03-2004 à 09:09:41    

Bouhouhouhou ! J4ai le même pb qu'Arnaud, à savoir que mon$_SESSION['login'] fonctionne quand je suis en local (sur l'adresse 127.0.0.1) mais pasquand j'essaie de le mettre en distant, par exemple en tapant mon IP.  
Arnaudco83 : tu pourrais être un peu + précis quant aux modifs à apporter au fichier config.php, stp ?

Reply

Marsh Posté le 17-03-2004 à 09:29:17    

Salut
Montre nous ton code qui affecte la variable de session pour voir si tu as rien oublié

Reply

Marsh Posté le 17-03-2004 à 09:57:24    

Dans une première page, après quelques lignes de codes, je fais :  
 
@session_start();    
$_SESSION['login'] = $login;    
$_SESSION['time_fin'] = $data['time_fin'];
$_SESSION['controle'] = 1;
 
 
Là, je pense avoir enregistré ma variable.
 
Dans une autre page, je fais simplement :  
 
<?  
@session_start();
echo $_SESSION['controle'];
?>
 
Alors là, pas de problème si je suis en local, il m'affiche 1, par contre si j'accède au site en passant par mon adresse IP, a fortiori à partir d'un autre ordinateur, ça marche pas, j'ai le message d'erreur :  
 
otice: Undefined index: controle in c:\www\test.php on line 2
 
Jepense que c'est un pb de passagede variable, mais je ne m'y connais pas + que ça...
 

Reply

Marsh Posté le 17-03-2004 à 10:16:20    

les sessions evitent justement de passer des variables dans l'url.
 
Essaye en fesant un lien de la page 1 vers la page 2, sans fermer ton navigateur...

Reply

Marsh Posté le 17-03-2004 à 10:35:09    

C'est justement ce que je fais. Dans la première page, après avoir enregistré mes variables de session, je crée un lien hypertexte vers la deuxième page. C'est ce lien que j'utilise, donc le navigateur ne se ferme pas.
Et au risque d'enfoncer un peu le clou, ça fonctionne bien quand je travaille en local, mais pasen distant...

Reply

Marsh Posté le 17-03-2004 à 10:54:39    

Il y a pas un 'truc' a changer dans le php.ini dans ce cas ?

Reply

Marsh Posté le 17-03-2004 à 11:02:00    

Sisi, c'est justement le propos de ma question. QUOI changer dans le php.ini ou bien le config.php ???

Reply

Marsh Posté le 17-03-2004 à 11:19:44    

c pas le register global qui doit etre on ? ( a tester )

Reply

Marsh Posté le 17-03-2004 à 11:21:20    

A vrai dire, il est déjà à ON mais ça ne marche pas...

Reply

Marsh Posté le 17-03-2004 à 20:17:23    

POurquoi mettre le @ devant session_start ?


---------------
Licence Professionnelle Multimedia Internet Webmaster | Des articles, des aides, des scripts .... le tout disponible sur mon site.
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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