Probleme sessions et cookies [Résolu]

Signaler
Messages postés
52
Date d'inscription
jeudi 5 septembre 2002
Statut
Membre
Dernière intervention
2 mars 2006
-
Messages postés
15
Date d'inscription
samedi 15 juin 2002
Statut
Membre
Dernière intervention
11 mars 2006
-
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

Messages postés
52
Date d'inscription
jeudi 5 septembre 2002
Statut
Membre
Dernière intervention
2 mars 2006

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
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
41
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)
Messages postés
52
Date d'inscription
jeudi 5 septembre 2002
Statut
Membre
Dernière intervention
2 mars 2006

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
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
41
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)
Messages postés
52
Date d'inscription
jeudi 5 septembre 2002
Statut
Membre
Dernière intervention
2 mars 2006

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
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
41
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)
Messages postés
52
Date d'inscription
jeudi 5 septembre 2002
Statut
Membre
Dernière intervention
2 mars 2006

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
Messages postés
15
Date d'inscription
samedi 15 juin 2002
Statut
Membre
Dernière intervention
11 mars 2006

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.
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
41
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)
Messages postés
15
Date d'inscription
samedi 15 juin 2002
Statut
Membre
Dernière intervention
11 mars 2006

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.
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
41
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)
Messages postés
15
Date d'inscription
samedi 15 juin 2002
Statut
Membre
Dernière intervention
11 mars 2006

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 !