Probleme sessions et cookies

Résolu
cs_nono1135 Messages postés 52 Date d'inscription jeudi 5 septembre 2002 Statut Membre Dernière intervention 2 mars 2006 - 28 févr. 2006 à 09:44
cs_TriTri6 Messages postés 15 Date d'inscription samedi 15 juin 2002 Statut Membre Dernière intervention 11 mars 2006 - 2 mars 2006 à 19:32
bonjour
je suis en train de coder un espace d'administration en utilisant les sessions php.
Je souhaitais savoir si il y a un moyen d'utiliser ces sessions php quand le visiteur n'autorise pas les cookies qui serait transparente pour lui ?
Si oui, dois je obligatoirement tranférer un cookie de test pour détecter l'activation ou non ?

Merci

12 réponses

cs_nono1135 Messages postés 52 Date d'inscription jeudi 5 septembre 2002 Statut Membre Dernière intervention 2 mars 2006
2 mars 2006 à 17:16
Finalement, j'ai réussi !!
j'ai créé une fonction ajout_sid() qui me rajoute l'id de la session en cours si la variable est passée dans l'URL.

Voilà le code pour info : (c'est tout simple)
function ajout_sid($url)
{
if(isset($_GET['SID']) && strpos($url, 'SID=') === false)
{
if(strpos($url, '?') === false)
$url .= '?SID=' . $_GET['SID'];
else
$url .= '&SID=' . $_GET['SID'];
}

return $url;
}
Pour se qui est du probleme de TriTri6, il faudrait un peu de code...

ps: Merci coucou pour tes réponses !

Met@lnono
http://instinct.prog.free.fr
3
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 42
28 févr. 2006 à 13:01
Salut,

si il refuse les cookis, alors envoi l'id de session par
l'url, tu le récupèreras dans $_GET... c'est l'une des rare chose de
bien qu'on peut trouver dans phpbb...

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
0
cs_nono1135 Messages postés 52 Date d'inscription jeudi 5 septembre 2002 Statut Membre Dernière intervention 2 mars 2006
28 févr. 2006 à 14:15
C'est se que je pensais faire mais comme je n'ai pas trouvé d'exemples, je préférais demander avant.
je sais pas exactement comment rajouter l'id de session dans l'url seulement dans le cas ou il n'autorise pas les cookies.

Merci de ta reponse.

Met@lnono
http://instinct.prog.free.fr
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 42
28 févr. 2006 à 14:24
Salut,

bah tu poste un cooki, et tu fais une redirection vers
mapage.php?redirect=true; et tu vois si $_GET['redirect']==='true' et
que ton cookie est absent, alors c'est qu'il ne les accèpte pas, sinon,
il les accèpte...

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_nono1135 Messages postés 52 Date d'inscription jeudi 5 septembre 2002 Statut Membre Dernière intervention 2 mars 2006
28 févr. 2006 à 15:05
ce qui me gène surtout c'est au niveau de mes pages protégées, il faudra que je fasse un test sur chacune pour voir si le SID est passé par l'URL et ainsi le rajouter ou non dans mes liens hypertextes.

Met@lnono
http://instinct.prog.free.fr
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 42
28 févr. 2006 à 15:24
Salut,


personellement, j'ai des problèmes de cookies de session parceque mon site est une adresse ip : un port...



session_id(md5($_SERVER['REMOTE_ADDR'].$_SERVER['HTTP_USER_AGENT']));

session_start();



ça ça permet de faire sans cooki de session...

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
0
cs_nono1135 Messages postés 52 Date d'inscription jeudi 5 septembre 2002 Statut Membre Dernière intervention 2 mars 2006
28 févr. 2006 à 17:08
Tu generes toi meme ton sid de session, se qui t'evites d'utiliser les cookies.
pas mal comme idée !

Je pensais aussi que je pourrais faire une fonction ajousid() qui verifie si le sid est dans l'url et les rajoute si besoin aux lien de la page.

je vais tester plusieurs solutions
Merci pour ton aide

Met@lnono
http://instinct.prog.free.fr
0
cs_TriTri6 Messages postés 15 Date d'inscription samedi 15 juin 2002 Statut Membre Dernière intervention 11 mars 2006
2 mars 2006 à 14:30
Bonjour,

Je me permet de me joindre à la conversation puisque mon problème correpond au sujet.
J4ai crée un site avec un espace membre.
J'utilise les sessions et je declare des variables (session_register() ).
Le truc c que mon formulaire envoie les login et mots de passe à unscript php et que celui-ci ne reconnait mes variables de sessions qu'à la deuxième connexion. Je n'arrive pas à savoir d'où cela peut
provenir.

Résumé :

Un utilisateur est obligé d'entrer deuxfois son login et mot de passe pour etre reconnu.

Merci de votre aide.
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 42
2 mars 2006 à 14:38
Salut,
n'utilise pas session_register() mais $_SESSION['mavar']=$var;

et sans code, on ne peut pas t'aider...

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
0
cs_TriTri6 Messages postés 15 Date d'inscription samedi 15 juin 2002 Statut Membre Dernière intervention 11 mars 2006
2 mars 2006 à 18:39
Alors me revoila, je continue dans le même post puisque c'est le même thème.

Après avoir posté, j'ai enlevé les session_register() et ca n'a rien changé.
Si j'ai bien compris, les $_SESSION['MaVar'] s'auto déclarent. Soit.

Don avant de poster mon code, je réexplique mon problème pour que tout le monde le cerne bien. Je pense que c'est tout bête.

J'aicrée unepage avec un formulaire demandant login et mot de passe.
Ce formulaire poste les résultats, récupérés par un script php qui les analysent.
Ce post se passe bien, j'arrive à afficher le contenu de mes variables de session.
Le truc c'est que les autres pages utilisent ces variables (mais ne les affectent pas) pour verifier si l'utilisateur est bien loggé. Et là c'est la galère, aucune page ne voit que mes variables session sont affectées.
Il faut que l'utilisateur se relogge une nouvelle fois et la ca marche.

Ces précision apportées, voici mon code:

Fichier login.php:
************************************

<?
include 'session.php';
session_start();
if(isset($_POST))
{
extract($_POST);
// on affecte les variables session avec le contenu du formulaire
$_SESSION['login'] = $login;
$_SESSION['pwd'] = $pass;
echo "
".$_SESSION['login']."
";
}
// On affiche bien le contenu de $_SESSION['login'] à l'utilisation
************************************

Passons maintenant aux fichiers utilisant ces variables
<?
include 'session.php';
session_start();
echo "<CENTER>". $_SESSION['login']."|";
// la barre verticale est la pour montrer qu'on ecrit qqchose sijamais la /variable ne s'affiche pas.
?>
Voila tout ce qui me semble important dans mes fichiers.

Bref y'a rien comme code et ca marche pas. Enfin si, mais au deuxième lancement du formulaire.

J'comprend pas merci de m'aider si vous voyez parceque je cale.

Sylvain.
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 42
2 mars 2006 à 19:03
Salut,

t'as quoi dans le fichier 'session.php'; ?



au passage, ton code est crade : " à la place de ', extract à la pla ce de $_POST['...'] ect...

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
0
cs_TriTri6 Messages postés 15 Date d'inscription samedi 15 juin 2002 Statut Membre Dernière intervention 11 mars 2006
2 mars 2006 à 19:32
Et bien merci de tes remarques cher coucou. Elles ont été très instructives.
En effet, je pensais que 'session.php' etait un fichier nécéssaire à l'utilisation des fonctions de session et qu'il se trouvait sur le serveur.

J'ai donc supprimé cette ligne et ca n'a rien changé. Ouf me suis-je dit, ca veut juste dire que je ne sais pas lire un tutorial.
J'ai ensuite examiné ton histoire du code crade et de mes posts, et ercherché d'ou je tirai cette idée. Je suis donc retourné sur la page m'ayant fourni ces précieuses informations et, ô surprise, je ne sais décidément pas lire.(Ou alors j'avais tiré ca d'une page ou ca n'etait pas marqué mais bon, je vais prendre sur moi...)
En effet, à la place de extract($_POST) il fallait écrire
extract($_POST,EXTR_OVERWRITE);

Ce petit changement fait que désormais ca marche.

Merci donc pour tes remarques et à bientôt!!

Sylvain !
0