Session easyphp 1.8

Fermé
jerome2 Messages postés 31 Date d'inscription jeudi 26 mai 2005 Statut Membre Dernière intervention 9 juin 2005 - 26 mai 2005 à 16:50
 chalet_a_biot - 12 avril 2007 à 17:19
bonjour,
j'ai besoin de savoir à quoi doit ressembler ma configuration pour pouvoir utiliser les sessions...
j'ai fait un exemple tout simple de session tiré d'un tuto, et il ne marche pas : lorsque je teste si la session existe, (isset), la reponse est toujours false alors que lorsque je vais voir le fichier tmp dans lequel sont stockées les sessions, elles apparaissent bien...
quelqu'un peut-il m'éclairer sur ce sujet...?
d'avance: merci

21 réponses

salut,
comment fais tu tes tests isset ? $_SESSION est un tableau, peut etre que c'est juste une mauvaise utilisation ?
0
jerome2 Messages postés 31 Date d'inscription jeudi 26 mai 2005 Statut Membre Dernière intervention 9 juin 2005 1
27 mai 2005 à 10:13
ben je fais comme ça:
if (isset($_SESSION['nom']))

il me semble que c'est bon...
en plus, je teste un petit exemple tiré d'un tuto...
0
Babylontiti Messages postés 59 Date d'inscription mercredi 4 août 2004 Statut Membre Dernière intervention 8 février 2007 28
27 mai 2005 à 04:51
Salut,

Jette un coup d'oeil par là et utilise l'exemple:
http://www.nexen.net/docs/php/annotee/ref.session.php?lien=sessions

A savoir, que 'isset()' sert juste à vérifier qu'une variable à bien été déclarer, donc existe, mais elle peut avoir une valeur 'NULL' ou '0' ! etc...
bye @+
0
jerome2 Messages postés 31 Date d'inscription jeudi 26 mai 2005 Statut Membre Dernière intervention 9 juin 2005 1
27 mai 2005 à 10:18
ok, mais ce qui ce passe, c'est que la condition :
if (isset($_SESSION['nom']))

n'est jamais vérifiée...et je ne comprends pas pourquoi
0
tu demarres bien ta session avant tout envoi de header ?
0
jerome2 Messages postés 31 Date d'inscription jeudi 26 mai 2005 Statut Membre Dernière intervention 9 juin 2005 1
27 mai 2005 à 10:36
ben ouai, je te montre la page en question :
<?
session_start();
if (isset($_SESSION['nom']))
	{$nom=$_SESSION['nom'];}
else {$nom="mais votre nom a été effacé";}
?>
<html>
	<body>
		Vous êtes toujours parmis nous
		<b><? echo $nom; ?></b>.<br />
		Effacement de votre nom en cliquant
		<a href="page4.php">ici</a>.<br />
		Effacement de votre session en cliquant
		<a href="page5.php">ici</a>.<br />
	</body>
</html>


et sur toutes mes pages, je démarre toujours de la même façon :
<?
session_start()
...
?>


voilà...en tout cas, merci de ton aide :)
0
Ok, je vois.
Ton problème vient de la portée de ta variable $nom.
Lorsque tu fermes php (?>), elle n'est plus définie ! tu peut refaire ton test plus tard car $_SESSION, comme $_POST ou $_GET sont globales. Le problème ne vient absoluement pas de ta session.
J'espere que j'ai vu juste ...?
@+
0

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

Posez votre question
jerome2 Messages postés 31 Date d'inscription jeudi 26 mai 2005 Statut Membre Dernière intervention 9 juin 2005 1
27 mai 2005 à 10:55
je crois pas que ce soit ça...
j'ai modifié, et ça change rien...
<?
session_start();
?>
<html>
	<body>
		Vous êtes toujours parmis nous
		<b><? if (isset($_SESSION['nom']))
				{$nom=$_SESSION['nom'];}
			  else {$nom="mais votre nom a été effacé";}
			  echo $nom;?></b>.<br />
		Effacement de votre nom en cliquant
		<a href="page4.php">ici</a>.<br />
		Effacement de votre session en cliquant
		<a href="page5.php">ici</a>.<br />
	</body>
</html>

à moins que je n'ai pas fait la bonne modif ?
0
non, non tes modifs sont correctes... la seule chose qui pourrait faire que ca ne marche pas est que $_SESSION['nom'] soit non definie... tu a bien demarré la Session dans l'autre page ? Sinon peut etre que isset n'a pas l'effet attendu, essaye un petit
echo $_SESSION['nom']; 
pour voir
0
jerome2 Messages postés 31 Date d'inscription jeudi 26 mai 2005 Statut Membre Dernière intervention 9 juin 2005 1
27 mai 2005 à 11:11
effactivement, j'ai une erreur :

Notice: Undefined index: nom in c:\program files\easyphp1-8\www\tuto1 session\page3.php on line 10

lorsque je rajoute :
echo $_SESSION['nom'];


mais c'est pas logique puisque la session est démarré dans les 2 autres pages...

page1.php:
<?
session_start();
?>
<html>
	<body>
		<form method="POST" action="page2.php">
			Entrez Votre Nom : <input type="text" name="nom">
			<input type="submit" value="ok">
		</form>
	</body>
</html>


page2.php:
<?
session_start();
$nom=$_POST['nom'];
$_SESSION['nom']=$nom;
?>
<html>
	<body>
		Bienvenue sur ce site <b><? echo $nom; ?></b>.<br />
		Regardons ce qui se passe sur la <a href="page3.php">page</a> suivante.<br />
	</body>
</html>


j'comprends pas...
0
Je t'avoue que je sèche...
essaye de mettre
$nom=$_POST['nom'];
$_SESSION['nom']=$nom;

dans la balise body, en vérifiant bien que $_POST['nom'] est 'isset' et '!empty'... a part ca... Sorry...
0
jerome2 Messages postés 31 Date d'inscription jeudi 26 mai 2005 Statut Membre Dernière intervention 9 juin 2005 1
27 mai 2005 à 11:29
mais c'est bizarre, parce que quand je fais :
echo $_SESSION['nom']

dans page2.php, ça écrit effactivement le nom...
enfin, merci quand même...
0
tiens moi au courant si tu trouves
0
jerome2 Messages postés 31 Date d'inscription jeudi 26 mai 2005 Statut Membre Dernière intervention 9 juin 2005 1
27 mai 2005 à 11:48
d'accord, mais apparemment, on me parle de problèmes de cookies...
0
ta regardé ton register global dans le php .ini ?? il doit etre ON ! sa marche pas sinon tes sessions ...
0
jerome2 Messages postés 31 Date d'inscription jeudi 26 mai 2005 Statut Membre Dernière intervention 9 juin 2005 1
27 mai 2005 à 14:33
ben nan, il est à off, mais ça doit marcher quand même...
de toute façon, je viens de faire l'essai en le mettant à on, et ça donne exactement la même chose...
merci quand même :)
0
ok voici koment on utilise les sessions:

• Enregistrement d’une variable session
session_start(); // active la session
$variable = ………;
session_register("variable"); //pas de $

• Test d’enregistrement d’une variable
session_start(); // active la session
$variable = ………;
session_register("variable"); //pas de $
session_start(); // active la session
if (!session_is_registered(variable))...

• Fin de session , Changement durée session
session_destroy();
session_cache_expire(n);
n=session_cache_expire();

• Informations sur la session
print("nom de session = ".session_name());
print("ID session = ".session_id());

en espérant que ça vous aidera ;)
0
jerome2 Messages postés 31 Date d'inscription jeudi 26 mai 2005 Statut Membre Dernière intervention 9 juin 2005 1
27 mai 2005 à 15:42
tu veux dire que mon code n'est pas bon...? ça m'étonne, il est tiré d'un tuto...
l'as-tu regardé...?il est juste au dessus (page1.php, page2.php, page3.php)
merci quand même, mais je crois qu'il est bon ce code... ;)
0
Pour ma part je ne suis pas sur que ton code soit correct
Je n'est jamais utiliser de mémoire la fonction isset pour des variables de sessions
De plus les infos que je t'ai fourni sont tirées d'un cours php d'un de mes profs!
j'ai pas mal fait d'intranet cette année et j'ai pas souvenir d'avoir utiliser la fonction isset pour des variables de session mais plus souvent pour des cookies
Vérifie que ça fonctionne avec les fonctions que je t'ai fourni
Bon courage

NB: ne pas tjs se fier à des exemples de tuto

ciao
0
re moi

je viens d'examiner vite fait ton code php
A quel moment tu créés tes variables de sessions?
je vois pas l'instruction session_register
C peut etre pour ça que ton isset ne fonctionne pas

bon courage
0
je cite php.net, la bible :
Attention
Si vous voulez que votre script fonctionne indépendamment de la configuration de la directive register_globals, vous devez utiliser la variable $_SESSION. Tous les éléments de $_SESSION sont automatiquement enregistrés. Si votre script utilise session_register(), il ne fonctionnera pas dans les environnements où register_globals est désactivée.
0
jerome2 Messages postés 31 Date d'inscription jeudi 26 mai 2005 Statut Membre Dernière intervention 9 juin 2005 1
27 mai 2005 à 16:15
ben voilà,
du coup, faut pas que j'utilise session_register() vu que mon script utilise $_SESSION, et de plus, j'ai pas besoin d'utiliser le register_global à ON.
vraiment, le code doit être bon...
en plus, il y a quelqu'un qui l'a testé chez lui en local, et il fonctionne!!!
0
je confirme ce que je disais, allez a cette adresse :
http://uk.php.net/manual/fr/function.session-register.php

en résumé, session_register est deprecated...
0
jerome2 Messages postés 31 Date d'inscription jeudi 26 mai 2005 Statut Membre Dernière intervention 9 juin 2005 1
27 mai 2005 à 16:17
désolé, un petit temps de retard...
0
Autant pour moi!!

Je viens de vérifier ton code, il me parait bon!
Par contre jvois pas trop l'utilité de ton <? session_start() ?> pour la page1.php vu ke tu fé aucun appel à $_SESSION(...)

Sinon pour la configuration de php.ini fait gaffe ke tu n'est pas mit on à une ligne ké en commentaire en effet register_global apparait plusieurs fois dans le fichier php.ini

dsl ke t conseils ne té rien apporté

Bon courage
0
jerome2 Messages postés 31 Date d'inscription jeudi 26 mai 2005 Statut Membre Dernière intervention 9 juin 2005 1
27 mai 2005 à 16:45
c'est rien, c'est rien...
effectivement, il ne sert à rien le session_start de page1.php...
c'était dit dans le tuto...
pour le registers_global, ils sont bien tous à off...

merci quand même!!!
0
jerome2 Messages postés 31 Date d'inscription jeudi 26 mai 2005 Statut Membre Dernière intervention 9 juin 2005 1
27 mai 2005 à 17:10
si quelqu'un a une autre idée, on verra ça lundi...
bon week end à tous!
0
Salut,

j'ai eu le même probleme que toi avec Easyphp 1.8 et les sessions

il faut à la fois faire un register ET utiliser $_SESSION

Page 1
$user_pass="password"
session_start();
session_register ("user_pass");
$_SESSION["user_login"] =$user_pass;


Page 2
session_start();
echo $_SESSION["user_login"] ;

en esperant t'avoir aidé !

A+
Waga
0
jerome2 Messages postés 31 Date d'inscription jeudi 26 mai 2005 Statut Membre Dernière intervention 9 juin 2005 1 > Waga
30 mai 2005 à 10:29
ben écoute, moi, j'y arrive pas...

peux-tu tester chez toi un tout petit exemple qui marche et m'envoyer le code stp?
comme ça je vérifierai si ça fonctionne aussi sur mon ordi...

par contre, j'ai une autre question:
est-il possible que cela na marche pas à cause d'un par-feu qui stopperait les cookies par exemple ?
0
Remi94 Messages postés 1 Date d'inscription vendredi 27 mai 2005 Statut Membre Dernière intervention 29 mai 2005
29 mai 2005 à 17:37
pour le registers_global, ils sont bien tous à off...


Il doive etre à ON justement..


jte conseil d'installer easy php 1.7 et d'essayer avec cette version, jte pari que sa fonctionnera :D
0
Non surtout pas, cette variable est désactivée pour une bonne raison, ça marche très bien avec OFF
0
jerome2 Messages postés 31 Date d'inscription jeudi 26 mai 2005 Statut Membre Dernière intervention 9 juin 2005 1
30 mai 2005 à 11:02
romain, tu voulais que je te tienne au courant:
bon ben voilà, j'ai enfin trouvé, c'était mon firewall qui me bloquait les cookies...

merci à tous ceux qui m'ont aidés :)
0