cs_koko
Messages postés654Date d'inscriptionlundi 14 janvier 2002StatutMembreDernière intervention20 février 2005
-
27 févr. 2003 à 07:32
xsamoud
Messages postés1Date d'inscriptionmercredi 27 août 2008StatutMembreDernière intervention25 mars 2009
-
25 mars 2009 à 09:53
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
xsamoud
Messages postés1Date d'inscriptionmercredi 27 août 2008StatutMembreDernière intervention25 mars 2009 25 mars 2009 à 09:53
salut
j'ai besoin d'un script php
lorsque le client connecter d'un poste les session ouvert avec les autres sessions relatives au meme compte se ferment, de sorte à avoir une seule seule session active en même temps pour chaque compte.
(comme avec msn)
merci
jul_diedhiou
Messages postés14Date d'inscriptionjeudi 12 mai 2005StatutMembreDernière intervention30 janvier 2009 4 juil. 2008 à 19:26
bonjour jai ce message d'erreur sur les session que j'arrive pas comprendr alor que mon script fonctionne normalement.
au fait c'est pas une erreur mais c'est un warning pouvait m'aider s'il vout plait:
voici le message:
'Warning: Unknown(): Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0'
cs_ninaW
Messages postés1Date d'inscriptionmardi 30 janvier 2007StatutMembreDernière intervention 6 mars 2007 6 mars 2007 à 10:04
Un grand merci pour ce code qui m'a été très utile^^!! même si j'ai pas tout compri^^ mais bon le principal c'est que j'y arrive non? encor merci^^
Bye
cs_koko
Messages postés654Date d'inscriptionlundi 14 janvier 2002StatutMembreDernière intervention20 février 2005 19 févr. 2005 à 08:35
Essaie de le mettre dans le cookie "à la main"
cs_brocoli
Messages postés4Date d'inscriptionmardi 3 février 2004StatutMembreDernière intervention17 février 2005 17 févr. 2005 à 09:36
Hello !
C'est chose faite... il n'accepte pas les cookies de sessions, car d'après lui, certains navigateurs ne les supportent pas !
Voici un lien sur la doc officielle...
http://ch2.php.net/manual/fr/ref.session.php
Pour ma part, j'ai fais un truc comme ça :
Je test si le nom d'utilisateur et le mot de passe sont correctes, si le test est ok, je démarre la session
session_start();
//on enregistre les paramètres de notre visiteur comme variables de session (utilisateur_client et passe_client)
$_SESSION['utilisateur_client'] = $_POST['utilisateur'];
$_SESSION['passe_client'] = $_POST['passe'];
// on redirige notre visiteur vers une page de notre section membre
header ('location: ./accueil/index.php?'.strip_tags(SID));
Donc les infos passent à travers l'url... ça donne qqchose comme ça :
/index.php?sid=8b4a63c36a1d81ea27767f5fd96331f0
Sur toutes mes pages protégées :
session_start();
if (! isset($_SESSION['utilisateur_client'])) {
header ('location: ../index.php'); //retour à la page de login
} else {
//Affichage de la page
}
Bon...ça marche aussi, mais l'url est super moche !!!
De plus, je peux ouvrir une page protégée juste en séléctionnant l'url dans l'historique de mon navigateur sans même passer par la page de login !! c'est grave !
Resultat : je sais plus quoi faire :-((((
Pour info, j'ai trouvé un post sur un autre forum, ça peut toujours intéresser quelqu'un ?
http://www.phpindex.com/articles/articles_lire.php3?element=182 (le dernier msg tout en bas de page donne la réponse de comment protéger ses sessions... mais c'est un peu du bricolage ??)
Merci
A++ Oli
mathieumg
Messages postés558Date d'inscriptionmardi 4 février 2003StatutMembreDernière intervention18 février 2006 17 févr. 2005 à 02:53
Ça à l'air à cela, il authorise les cookies mais pas ceux de session :/
Peut-être devrais-tu lui écrire?
Mathieu M-G
mathieumg@qc-net.com
cs_brocoli
Messages postés4Date d'inscriptionmardi 3 février 2004StatutMembreDernière intervention17 février 2005 14 févr. 2005 à 20:22
Bon... je crois que j'ai trouvé pour quoi ça marche po...
session.use_cookies = Off ??!!
Je suis chez un hébergeur payant, il n'autorise par les cookies ?
Merci
A+ Oli
cs_brocoli
Messages postés4Date d'inscriptionmardi 3 février 2004StatutMembreDernière intervention17 février 2005 14 févr. 2005 à 13:54
Hello !
Oui, mes cookies sont activés... enfin dans mes paramètres de sécurités, je suis "Moyen".
ESt-ce que c'est mon hébergeur ?
J'ai affiché le phpinfo et voici ce que ça donne...
PHP Version 4.3.10
register_globals On
session.auto_start Off
session.cookie_path /
session.cookie_secure Off
session.name sid
session.use_cookies Off
Voili...voila :-)
Merci beaucoup !!
A++ Oli
mathieumg
Messages postés558Date d'inscriptionmardi 4 février 2003StatutMembreDernière intervention18 février 2006 13 févr. 2005 à 20:42
Tes cookies sont activés?
Mathieu M-G
mathieumg@qc-net.com
cs_brocoli
Messages postés4Date d'inscriptionmardi 3 février 2004StatutMembreDernière intervention17 février 2005 13 févr. 2005 à 19:06
Hello !
Merci beaucoup pour ce tuto :-)
j'ai toutefois un ptit problème hum hum...
j'ai rajouté sur la page index.php
echo $_SESSION['variable']."
";
et il m'affiche bien tortue !
Par contre sur ma page viewsession.php
echo "La variable de session qui a été enregistrée est ".$_SESSION['variable']."
";
Il ne trouve plus la variable de session :-(((
Il m'a également généré un nouveau no ID de session !
J'ai essayé les 2 versions du tuto, (j'en ai essayé pleins d'autres depuis d'autres sites...ça fais 3 jours que je m'arrache les cheveux !) mais j'ai toujours ce problème...
Merci de votre aide !
A++ Oli
cs_koko
Messages postés654Date d'inscriptionlundi 14 janvier 2002StatutMembreDernière intervention20 février 2005 18 janv. 2005 à 08:55
peut-être que le tuto dit d'utiliser session_register, mais il faut l'oublié...
utilise plutot le tableau $_SESSION ;)
et je crois que tu ne peux pas mettre de tableau avec session_register !
Voici comme le faire :
$_SESSION['lenomquetuveux'] = $letableau;
Il faudrait vraiment que ce tut soit mis à jour :/
orsam
Messages postés28Date d'inscriptionjeudi 7 décembre 2000StatutMembreDernière intervention22 octobre 2007 17 janv. 2005 à 11:27
Bonjour à tous...
Ok j'ai compris comment fonctionne les sessions (merci pour le tuto)
Cependant, j'ai un ch'ti probleme pour declarer une variable tableau avec session_register("quelajout[]");
Merci par avance...
cs_Solo
Messages postés10Date d'inscriptionmardi 18 décembre 2001StatutMembreDernière intervention 6 octobre 2004 24 juin 2004 à 12:00
Question concernant les variables de session:
1- Si je définis une variable de session nommé "MaVariable", et dans mon script ou mes fonctions, j'utilise la sytaxe "$MaVariable" (notez le $), est ce que j'utilise bien la variable de session, ou y a t-il conflit ou cohéxistance ?
2- En supposant qu'a la question précédente "$MaVariable" est bien ma variable de session; si je modifie le contenu de "$MaVariable, faut-il que je force la mise a jour de l'enregistrement pour la page suivante ?
3- La portée d'une variable étant limitée à la fonction qui la définit, pour avoir une variable globale au script, il faut redéfinir la variable dans chacune des fonctions l'utilisant en la fesant précéder de "GLOBAL"... ah moins que je ne dise une bétise !
Pour les variables de session, faut-il aussi les déclarer dans chaque fonction les utilisant avec la commande "GLOBAL" ?
Mes questions semblent simplistes certes, mais ne faut il pas etre précis dans la méthodologie ?
nashoy
Messages postés125Date d'inscriptiondimanche 6 avril 2003StatutMembreDernière intervention 7 octobre 2006 23 juin 2004 à 18:23
Pour ce qui est de ma part, j'ai réussi a résoudre le pb.
cs_Solo
Messages postés10Date d'inscriptionmardi 18 décembre 2001StatutMembreDernière intervention 6 octobre 2004 23 juin 2004 à 15:41
Source: PhpFrance.com/Tutorials page 2:
"La fonction session_start() essaye de trouver l'identificateur de la session dans les cookies se trouvant sur votre disque dur.
Si l'identificateur de la session ne peut être trouvé, une nouvelle session est alors créée."
Est ce a dire que si l'internaute visitant le site en PHP a désactivé les cookies sur son poste (il existe des paranos !), une nouvelle session va etre créée a chaque changement de page, et que les variables de session ne seront pas accessibles de pages en pages ?
Toutefois, il semblerait que si dans l'URL d'appel de la page suivante, on mentionne la constante SID, on outrepasse les problemes de cookies...
[page2.php?' . SID . ' page 2]
Enfin, si j'ai bien compris, les variables de session sont mémorisées dans un fichier de session situé sur le serveur (contrairement aux cookies qui eux le sont sur le poste de l'internaute)... Ce fichier peut-il avoir une durée de vie limitée ? que devient ce fichier si l'internaute ne se déconnecte pas proprement (et oui, EdF se met en greve parfois !)... le fond du problème étant de ne pas encombrer le serveur avec des fichiers obsolètes...
nashoy
Messages postés125Date d'inscriptiondimanche 6 avril 2003StatutMembreDernière intervention 7 octobre 2006 12 juin 2004 à 12:44
Le tuto est très bien fait, bravo.
J'ai néanmoins quelques erreurs qui apparaissent comme :
Notice: Use of undefined constant variable - assumed 'variable' in c:\programme\easyphp1-7\www\session1.php on line 7 <== dans index.php
-----------
Notice: Use of undefined constant variable - assumed 'variable' in c:\programme\easyphp1-7\www\viewsession.php on line 4
Notice: Undefined index: variable in c:\programme\easyphp1-7\www\viewsession.php on line 4 <== dans viewsession.php
Notice: Use of undefined constant nom - assumed 'nom' in c:\programme\easyphp1-7\www\ajoutvariable.php on line 7 <==ajoutvariable.php
---------
Notice: Use of undefined constant nom - assumed 'nom' in c:\programme\easyphp1-7\www\effacement.php on line 4
Notice: Use of undefined constant nom - assumed 'nom' in c:\programme\easyphp1-7\www\effacement.php on line 6
La variable nom a comme valeur
Notice: Use of undefined constant nom - assumed 'nom' in c:\programme\easyphp1-7\www\effacement.php on line 8
La variable "nom" a été éffacée ...
Notice: Use of undefined constant nom - assumed 'nom' in c:\programme\easyphp1-7\www\effacement.php on line 11
Notice: Undefined index: nom in c:\programme\easyphp1-7\www\effacement.php on line 11
<== dans effacement.php
Je suis débutant, c'est pk je vous demanderai d'être tolérent, s'il s'agit d'une erreur bête.
Merci
yami_no_ookami
Messages postés165Date d'inscriptionjeudi 29 janvier 2004StatutMembreDernière intervention16 octobre 20052 3 mai 2004 à 11:20
merci pour ce tuto très complet qui m'a permis de mettre en place les sessions pour le stage d'un pote.
mais pour mon boulot, j'ai vu que les sessions sont bloquées par le navigateur si la confidentialité est mis a fond.
en effet, l'id est stockée dans un cookie sur le client et cela ne peut etre changée.
mettre l'id dans l'url est irrealisable niveau securité donc pas la peine de me le proposer.
Merci d'avance pour votre aide.
pedgom
Messages postés13Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention 1 juin 2004 21 avril 2004 à 22:42
@ koko : merci. En fait g oublié d'enlever l'ancien code à un endroit .. oups
Ben justement, la fonction unset() ne peut pas être utilisée pr remplacer la fonction session_unset() c pr ça que g laissé la vieille méthode. Je vais tester ton truc, thx.
/!\ ATTENTION pr la modif que g faite plus haut /!
Pour la page effacement.php le code est présent 2 fois, d'abord l'ancien puis le nouveau. Utilisez le nouveau evidement :).
/!\ ATTENTION pr la modif que g faite plus haut /!\
cs_koko
Messages postés654Date d'inscriptionlundi 14 janvier 2002StatutMembreDernière intervention20 février 2005 21 avril 2004 à 22:07
tu as utilisé session_is_registred qui est obsolète :p
tout par $_SESSION !!!
session_unset caca aussi
$_SESSION = Array();
pedgom
Messages postés13Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention 1 juin 2004 21 avril 2004 à 21:59
@ eka808 : de rien, de rien. ça marche donc c une solus, non? un vieux proverbe disait : "si le code ne va pas au serveur, amène le serveur au code" ou kekchose comme ça. ;)
Bon c vrai que ya beaucoup de gens qui se plaignent ss trop chercher (genre je m'assieds par terre et je pleure)...
Je vais tenter (je dis bien tenter) de mettre à jour le tutorial de Tortuegeniale histoire de faire un peu avancer les choses.
Ce code fonctionne avec EasyPHP1-7 de base. J'attire qd même l'attention que ss cette config (error_reporting = E_ALL) EasyPHP mensionne aussi les avertissements à l'écran au format suivant "Notice: ...". ce ne sont pas des fautes en sois et ça peut servir pr un bon débugage.
La majorité des serveurs cachent ces messages pr le confort des surfeurs qui ont souvent affaire à des faux-programmeurs ou (mauvais) donc ya pas de quoi s'en faire. ;p
>>>>> page index.php
<?
session_start(); // Démarrage de la session OBLIGATOIRE
$_SESSION['variable'] = "tortue"; //L'enregistrement de la variable et son affectation se font en même temps
if (isset($_SESSION['variable'])) //la fonction session_is_registered() a été remplacée par isset()
{
echo "Variable de session enregistrée ...
";
echo "Options des sessions
";
echo "
L'id de la session est ".session_id()." ";
exit;
}
else // La variable n'est pas enregistrée
{
echo "Variable de session non enregistrée ...";
exit;
}
?>
<?
session_start(); // Démarrage de la sessions OBLIGATOIRE
$_SESSION['nom'] ="Geniale"; //L'enregistrement de la variable et son affectation se font en même temps
if (isset($_SESSION['nom'])) //La fonction session_is_registered() a été remplacée par isset()
{
echo "Opération réussie, La variable "nom" a été enregistrée dans la session
";
echo "Effaçons maintenant la variable "nom"
";
echo "
L'id de la session est ".session_id()."";
exit;
}
else
{
echo "Enregistrement raté ...";
exit;
}
?>
<?
session_start(); // Démarage de la sessions OBLIGATOIRE
if (session_is_registered(nom)) // si la variable nommée "nom" est enregistrée on peut l'éffacer
{
echo "La variable nom a comme valeur ".$_SESSION[nom]." ";
if (session_unregister(nom)) // si elle est éffacée
{
echo "La variable "nom" a été éffacée ...
";
echo "La preuve, essayons de l'afficher ici : ".$_SESSION[nom]." ";
echo "Destruction des variables de session
";
echo "
L'id de la session est ".session_id()."";
exit;
}
else // éffacement raté
{
echo "Effacement raté ...";
exit;
}
}
else // la variable nommée nom n'existe pas
{
echo "La variable nommée "nom" n'existe pas ...";
exit;
}
?>
<?
session_start(); // Démarrage de la sessions OBLIGATOIRE
if (isset($_SESSION['nom'])) //La fonction session_is_registered() a été remplacé par isset()
{
echo "La variable nom a comme valeur ".$_SESSION['nom']." ";
unset($_SESSION['nom']);
//La fonction session_unregister() a été remplacée par unset()
//unset() renvoit une erreur donc on ne peut pas tester directement dessus.
if (!isset($_SESSION['nom'])) // si elle est éffacée
{
echo "La variable "nom" a été éffacée ...
";
echo "La preuve, essayons de l'afficher ici : ".$_SESSION['nom']." ";
// il est mieux d'écrire $_SESSION['variable'] que $_SESSION[variable]
//ça fait une Notice en mode error_reporting = E_ALL.
echo "Destruction des variables de session
";
echo "
L'id de la session est ".session_id()."";
exit;
}
else // éffacement raté
{
echo "Effacement raté ...";
exit;
}
}
else // la variable nommée nom n'existe pas
{
echo "La variable nommée "nom" n'existe pas ...";
exit;
}
?>
<?
session_start(); // Démarage de la sessions OBLIGATOIR
session_unset();
if (session_destroy())
{
echo "A ce stade il nous reste la Variable "variable" enregistrée
";
echo "Normalement session_destroy et session_unset l'ont détruit, testons ceci : ".$_SESSION['variable']."
";
echo "Rien n'apparait, la variable n'existe plus et si il y en avait eu d'autre, elles n'existeraient plus
";
echo "Opération réussie
";
echo "
L'id de la session est ".session_id()." ";
echo "Oups elle n'exite plus nom plus ;-)
";
exit;
//Quelques Notice puisqu'on essaye d'affiche des variables qui n'existent plus
}
else
{
echo "Effacement raté ...";
exit;
}
?>
Voila comme vous avez pu le remarquer ce sont des fonctions qui ont changé tt simplement, rien de terrible. En fait il suffisait tt simplement d'aller sur le site www.php.net/ ;)
eka808
Messages postés72Date d'inscriptiondimanche 24 novembre 2002StatutMembreDernière intervention29 avril 2005 21 avril 2004 à 20:17
merci pedgom jme sens moins seul lol
cs_koko
Messages postés654Date d'inscriptionlundi 14 janvier 2002StatutMembreDernière intervention20 février 2005 21 avril 2004 à 19:33
il est vrai qu'il est bien mais il n'est pas a jour... mais il ne sera pas mis a jour comme l'a dit son auteur !
pedgom
Messages postés13Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention 1 juin 2004 21 avril 2004 à 19:22
Salut à tous, c juste pour dire que le tutorial est SUPER balaise et surtout complet (c rare), thx Tortuegeniale.
Cepandant la solus d'eka808 est pas mal du tt. P.ex. sur free.fr ils ont aussi moditifé leur config de php pr pas faire ch.. les gens avec leurs vieux codes.
Je pense que les 2 se valent mais le mieux est de savoir les maitriser tt ;)
eka808
Messages postés72Date d'inscriptiondimanche 24 novembre 2002StatutMembreDernière intervention29 avril 2005 16 avril 2004 à 18:17
je compren pa bien pk tu dis ça lol
moi je voulais juste aider et montrer ma solution.
si tu as mieux c ton pb moi cette solution me convient
cs_hicksman
Messages postés258Date d'inscriptionmercredi 14 août 2002StatutMembreDernière intervention23 avril 20041 16 avril 2004 à 17:36
ET TOC!!! Bien fait! Non mais, aucune reconnaissance, bandes d'ingrats ( je déconne, lol)
Comme disait un célèbre philisophe, qui s'appelait coluche si je me rapelle bien:
c'est en forgeant qu'on devient forgeron et c'est en sciant du bois que léonard de Vinci.
cs_Tortuegeniale
Messages postés1123Date d'inscriptionlundi 7 janvier 2002StatutMembreDernière intervention26 juin 2008 16 avril 2004 à 16:23
tss alors ça c n'importe koi. Easy php 1.7 a une version de php différente de la 1.6 et une config différente aussi (la config par defaut en plus).
Ca sert absolument a rien de faire ce que tu fais car le jour ou les serveur qui héberge vos sites changerons leur config php, vos sites marcherons plus.
Si tu fais ça installe easy php 1.6 parceque cette "solution" revient a faire ça.
Ce tuto marchait sous easy php 1.6, pour la 1.7 il faut changer 2 - 3 trucs pour les sessions (et encore ça devient meme plus simple). Donc a vous de chercher un peux. y a une super aide officiel php ou tout est expliqué (clairement en plus).
J'en vois plein qui se plaignent sur ce site c abérant alors qu'ils cherchent meme pas. "Ils peuvent aider sur ce site la alors pourquoi chercher" pensent les 3/4 des gens. Cette remarque n'est dirigé vers personne en particulier donc vous fachez pas. Mais c'est franchement usant de recevoir des message sur la messagerie privé du site, de personne que je ne connais pas, qui disent rarement bonjour, me colle un code de 50 - 100 lignes et me demandent (des fois c meme ordonnent) de les aider.
La maj de ce tuto existe, elle est meme finie mais j'ai décidé de ne pas la mettre vu les comportements de certains sur ce site.
eka808
Messages postés72Date d'inscriptiondimanche 24 novembre 2002StatutMembreDernière intervention29 avril 2005 16 avril 2004 à 15:45
Salut à tous
J'ai rencontré le même problème que jashugan, c'est à dire que je n'arrivais pas à faire fonctionner les sessions sous easy php 1.7
La solution a ce problème est évidemment de modifier le fichier de config de php (menu d'easy php > configuration > php)
En remplaçant ce fichier par mon fichier (http://membres.lycos.fr/eka808/filesforum/phpmultimania/php.zip) plus de problèmes!!! (le fichier a les memes valeurs que celui du serveur de multimania)
Voila faites en bon usage :-P
Ah ui le fichier php.ini a remplaçer se situe dans "c:\program files\easy php\apache"
cs_Arthur15
Messages postés3Date d'inscriptionmercredi 24 mars 2004StatutMembreDernière intervention25 avril 2004 28 mars 2004 à 15:37
Et là c qui qui passe pour un gros looser... :o)
j'avais essayé de créer un rep session mais je crois que j'avais oublié le "s".
Merci
cs_koko
Messages postés654Date d'inscriptionlundi 14 janvier 2002StatutMembreDernière intervention20 février 2005 28 mars 2004 à 09:36
le serveur ne stock pas les cookies... car les cookies c'est chez les clients !!
mais chez free, tu dois créer un dossier sessions pour que ca marche :p
Warning: session_start(): open(/var/www/free.fr/e/e/tuturzone/sessions/.sess_8fa03c12718e51a97ace784e72006595, O_RDWR) failed: No such file or directory
je trouve que l'erreur No such file or directory est tres clair !
cs_Arthur15
Messages postés3Date d'inscriptionmercredi 24 mars 2004StatutMembreDernière intervention25 avril 2004 27 mars 2004 à 23:14
cool le tuto!
Je me suis bricolé un ptit truc avec mais sous free ca marche pas :o(
et en vérifiant avec les pages de tortuegeniale ca me donne la même erreur
cf----> http://tuturzone.free.fr/tortue/
"No such file or directory (2) in /var/www/free.fr/e/e/tuturzone/tortue/index.php on line 2"
Il faut spécifier au serveur ou stocker les cookies ou quoi?
et à prioris les erreurs de header aprés c parce ya celle là avant non?
c surement une erreur de serv PHP parce que chez moi ca marche niquel...
ghostahjay
Messages postés12Date d'inscriptionlundi 9 février 2004StatutMembreDernière intervention28 août 2005 19 févr. 2004 à 19:19
Super tuto rien a redir jai trouver mon bonheur dan tes explications
Bonne continuation ! :)
mathieumg
Messages postés558Date d'inscriptionmardi 4 février 2003StatutMembreDernière intervention18 février 2006 7 févr. 2004 à 17:13
Moi je ne sais pas mais je suppose que je peux le trouver avec phpinfo() reste tout de même que c'est plate ne pas avoir le control la-dessus :(
Mathieu M-G
cs_Tortuegeniale
Messages postés1123Date d'inscriptionlundi 7 janvier 2002StatutMembreDernière intervention26 juin 2008 7 févr. 2004 à 15:53
moi mon hébergeur les limites a kelke minutes alors que normalement c environ 27 minutes ...
mathieumg
Messages postés558Date d'inscriptionmardi 4 février 2003StatutMembreDernière intervention18 février 2006 7 févr. 2004 à 15:42
D'accord alors c'est mort :(
Merci pareil ;) c'est juste que c'est fatiguant les sessions trops courtes ^^ Admettons tu laisse le site là et tu reviens un peu de temps apres...
Mathieu M-G
cs_Tortuegeniale
Messages postés1123Date d'inscriptionlundi 7 janvier 2002StatutMembreDernière intervention26 juin 2008 7 févr. 2004 à 15:40
c pas le php.ini qui est modifié, c une variable qui outrepasse celle du php.ini. Pour modifier le php.ini y a une fonction iniset() ou un truc du genre mais toujours la meme chose, si t'as pas accés c mort
mathieumg
Messages postés558Date d'inscriptionmardi 4 février 2003StatutMembreDernière intervention18 février 2006 7 févr. 2004 à 15:35
Ah...:( d'accord merci...
Car j'ai vu des sites ou à la connexion l'on pouvait choisir la durée de session que l'on voulait...comment s'y prennent-ils ? Ils modifient le php.ini chaque fois ?
Merci
Mathieu M-G
cs_Tortuegeniale
Messages postés1123Date d'inscriptionlundi 7 janvier 2002StatutMembreDernière intervention26 juin 2008 7 févr. 2004 à 15:32
Hello
La durée d'une session est fixée dans le php.ini. Si tu veux pouvoir la modifier il faut que ton hébergeur te permette de le faire. Donc a moins que tu héberges chez toi ou que tu ais un serveur dédiés, c mal parti ...
++
mathieumg
Messages postés558Date d'inscriptionmardi 4 février 2003StatutMembreDernière intervention18 février 2006 7 févr. 2004 à 03:10
J'ai fait session_set_cookie_params(7200); avant d'enregistrer mes variables de session pour que la session dure 2 heures mais en faisant un print_r de session_get_cookie_params() sa me renvoie que le lifetime est de 0. comment se fait-il ?
Merci
Mathieu M-G
SATANdemon
Messages postés44Date d'inscriptionmardi 18 décembre 2001StatutMembreDernière intervention30 novembre 2005 16 janv. 2004 à 16:47
superbe, j'en avais besoin pour mon site !!
merci pour le boulot !!
phpkiller
Messages postés1Date d'inscriptionlundi 12 janvier 2004StatutMembreDernière intervention12 janvier 2004 12 janv. 2004 à 17:19
exactement ce ke je recherchait. Merci beaucoup.
cs_fredzool
Messages postés40Date d'inscriptionlundi 29 septembre 2003StatutMembreDernière intervention 2 janvier 2009 25 déc. 2003 à 21:15
avec mon code
<?
...........
..........
..........
?>
les sessions passe bien mais si j inclu a la suite de ?> du code html
je perds les variables de ma session pk et que faire
merci
freedzool@wanadoo.fr
cs_koko
Messages postés654Date d'inscriptionlundi 14 janvier 2002StatutMembreDernière intervention20 février 2005 30 nov. 2003 à 08:41
a mon avis, tu n'as pas de $utilisateur = avant d'afficher le formulaire c tout :)
montre aussi les select pour voir si le problème il n'est pas la
cs_SkyCrasher
Messages postés143Date d'inscriptionsamedi 4 janvier 2003StatutMembreDernière intervention19 mai 2015 29 nov. 2003 à 17:32
Bon merci même si je devrais trouvé par moi même...
C'est bien gentil $_SESSION['utilisateur'];
Mais mon pb concerné les id !
Mais je crois que je vais trouvé donc merci !
cs_koko
Messages postés654Date d'inscriptionlundi 14 janvier 2002StatutMembreDernière intervention20 février 2005 29 nov. 2003 à 17:27
// "Select * form articles where id='$id'";
//après je fais un "select * from membres where id='$id'";
//puis un formulaire du 10eme article : http://url/article.php?id=10 ?>
<form>
>
</form>
ca ca devrait marcher bien que ton code n'est pas tout complet :)
cs_SkyCrasher
Messages postés143Date d'inscriptionsamedi 4 janvier 2003StatutMembreDernière intervention19 mai 2015 29 nov. 2003 à 17:20
Cela ne résous pas mon problème !
cs_koko
Messages postés654Date d'inscriptionlundi 14 janvier 2002StatutMembreDernière intervention20 février 2005 29 nov. 2003 à 17:13
utilise pas session_is_registred qui n'est plus d'actualité !!!
utilise $_SESSION['utilisateur'] pour vérifié :)
cs_SkyCrasher
Messages postés143Date d'inscriptionsamedi 4 janvier 2003StatutMembreDernière intervention19 mai 2015 29 nov. 2003 à 17:10
Moi j'ai un problème assez compliqué et je ne sais pas si c'est un problème à cause de variable identique sur plusieurs table mysql ou quelquechose d'autre :
voilà une page d'exemple qui me créé se genre de problème :
<? session_start();
if(session_is_registered("utilisateur")=="SkyPlayer"){
$id = "1";
}else{
$id = "2";
}
// "Select * form articles where id='$id'";
//après je fais un "select * from membres where id='$id'";
//puis un formulaire du 10eme article : http://url/article.php?id=10 <form>
>
</form>
L'embettant c'est que la à $utilisateur il reprend l'auteur de l'article et non l'utilisateur en cours !
Est-ce que cela vient du fait que les tables membres et articles ont toputes les deux un champ appelé id ?
Je ne sais pas comment arrangé ça aidez moi !
cs_koko
Messages postés654Date d'inscriptionlundi 14 janvier 2002StatutMembreDernière intervention20 février 2005 29 nov. 2003 à 08:44
en fait, c'est un "problème" avec easyphp 1.7. Il y a moyen que ton erreur ne s'affiche pas en mettant ceci :
error_reporting (E_ALL ^ E_NOTICE );
(je crois que c'est ca)
tu le mets dans ta page php au tout début et alors il ne va plus afficher les notices :)
cs_jashugan
Messages postés28Date d'inscriptionjeudi 2 janvier 2003StatutMembreDernière intervention27 mai 2010 28 nov. 2003 à 23:54
ha ok :/ donc y'a rien a faire pour mon cas desespéré :' ( lol a chaque fois que je vois un tuto j'ai pas la bonne version :/
cs_Tortuegeniale
Messages postés1123Date d'inscriptionlundi 7 janvier 2002StatutMembreDernière intervention26 juin 2008 28 nov. 2003 à 23:52
c normal easyphp 1.7 n'as pas la meme version de php que easyphp 1.6, Les sessions ont changés sur certaines fonctions.
cs_jashugan
Messages postés28Date d'inscriptionjeudi 2 janvier 2003StatutMembreDernière intervention27 mai 2010 28 nov. 2003 à 23:38
j'ai un pb moi rien qu'avec la première partie je la met dans un index.php de easyphp (ds le dossier www) et qd je l'execute par http://127.0.0.1/ et bien ca me dis :
Notice: Use of undefined constant variable - assumed 'variable' in e:program fileseasyphp1-7wwwindex.php on line 7
Variable de session enregistrée ...
Options des sessions
L'id de la session est 41513229c4b6eb3ed65c02456c2f6de7
ensuite j'essay la 2eme partie(en cliquant sur option de session), et sa me met
Notice: Undefined variable: _session in e:program fileseasyphp1-7wwwviewsession.php on line 4
La variable de session qui a été enregistrée est
Ajoutons une variable à la session
L'id de la session est 41513229c4b6eb3ed65c02456c2f6de7
il me dis pas le nom de la variable :/
Si quelqu'un peux m'aider plzzz
cs_Tortuegeniale
Messages postés1123Date d'inscriptionlundi 7 janvier 2002StatutMembreDernière intervention26 juin 2008 23 nov. 2003 à 00:10
"Cannot send session cookie - headers already sent by" ... relit le tuto
cs_koko
Messages postés654Date d'inscriptionlundi 14 janvier 2002StatutMembreDernière intervention20 février 2005 23 nov. 2003 à 00:07
en fait, ca dépent de la config de apache !!
moi en local ca passe sans probleme mais sur mon hébergeur, ca doit passer par les PHPSESSID
mais dans ta page php, tu peux rajouter un SID qui est un define de la session
du genre :
echo '[index.php?mode=news&',SID,' News]';
enfin tu vois le genre quoi :)
cs_SkyCrasher
Messages postés143Date d'inscriptionsamedi 4 janvier 2003StatutMembreDernière intervention19 mai 2015 23 nov. 2003 à 00:02
Est-ce normal que certaine page ne s'approprie pas une url du type :
page.php?PHPSESSID=rg4gfh545gfh44f4 ?
Les variables sont bien renvoyées à chaque nouvelle page mais aucune url de ce type n'est obtenue !
cs_koko
Messages postés654Date d'inscriptionlundi 14 janvier 2002StatutMembreDernière intervention20 février 2005 22 nov. 2003 à 23:55
car tu as mis le session_start alors que les headers ont déjà été envoyé !!!
mets le session_start tout en haut de ta page
cs_SkyCrasher
Messages postés143Date d'inscriptionsamedi 4 janvier 2003StatutMembreDernière intervention19 mai 2015 22 nov. 2003 à 23:42
Cannot send session cookie - headers already sent by
Erreur rencontrer sous Easy PHP !
Pourquoi cette erreur ?
Tomcube
Messages postés311Date d'inscriptionvendredi 4 avril 2003StatutMembreDernière intervention14 septembre 20041 19 oct. 2003 à 21:42
La mise à jour de PHP en version 4.3 a entraîné quelques changements ! Tortuegeniale, t'as du pain sur la planche pour refaire ton tuto.
L'utilisation de $_SESSION (ou $HTTP_SESSION_VARS avec PHP 4.0.6 et plus ancien) est recommandé pour une meilleure sécurité et un code plus facilement maintenable. Avec $_SESSION , il n'y a pas besoin d'utiliser les fonctions session_register , session_unregister et session_is_registered . Les variables de sessions sont accessibles comme toute autre variable. Enregistrer une variable avec $_SESSION.
<?
phpsession_start();
// Utilisez $HTTP_SESSION_VARS avec PHP 4.0.6 ou plus ancien
if (!isset($_SESSION['count'])) {
$_SESSION['compteur'] = 0;
} else {
$_SESSION['compteur']++;
} ?>
Retirer une variable de session avec $_SESSION et register_globals inactif.
<?
phpsession_start();
// Utilisez $HTTP_SESSION_VARS avec PHP 4.0.6 ou plus ancien
unset($_SESSION['compteur']);
?>
cs_Tortuegeniale
Messages postés1123Date d'inscriptionlundi 7 janvier 2002StatutMembreDernière intervention26 juin 2008 28 juil. 2003 à 11:53
oui ça marche sur free, je m'en sers sur mon site.
Il faut une extension *.php, en php3 ça marche pas
Par contre pour tes erreurs en *.php ça doit etre header has allready send .... Si c ça, je l'ai écris dans le tuto, ne met pas de html ou meme une ligne blanche avant le session start.
draven13
Messages postés5Date d'inscriptiondimanche 27 juillet 2003StatutMembreDernière intervention24 avril 2005 27 juil. 2003 à 11:16
est que ce source sur les session marche sur le serveur free
si je laisse l'extensionphp, il ne met plein d'erreur et quand je met php3 il me met :
Fatal error: Call to unsupported or undefined function session_start() in your script on line 4
merci
cs_Tortuegeniale
Messages postés1123Date d'inscriptionlundi 7 janvier 2002StatutMembreDernière intervention26 juin 2008 13 juil. 2003 à 12:26
je comprend pas ce que tu dis lol
1 cookie 1 Session ID 1 seul et unique personne et cet ID est passé de façon invisible page par page (ou de façon visible celon le php ini). Que le client accepte les cookies ou ai un firewall ça a rien a voir, vu que tout (id de session, variable de session) est stocké sur le serveur et jamais un visiteur ne peut y toucher
additif
Messages postés2Date d'inscriptionvendredi 27 juin 2003StatutMembreDernière intervention13 juillet 2003 13 juil. 2003 à 00:54
oui, c'est vrai, les infos sont stockées sur le serveur.
Cependant, pour savoir quel cookie-info ouvrir, il faut un identifiant unique du visiteur qui peut être récupéré de 2 façons :
- dans l'URL ( ...&sessid=fd152f45d4f5d4f5d.....)
- à la lecture d'un cookie placé sur l'ordinateur du visiteur
Sans cet identifiant unique, il est impossible de suivre ton visiteur à la trace (il s'agit uniquement de statistiques et pas d'espionnage).
Les firewall récents bloquent les cookies et détectent (et suppriment) les infos de sessions placées dans l'URL.
J'en suis certain pluisque l'IP est la même et les pages vues se suivent à quelques dizaines de secondes près.
Cela représente presque 10% de mes visiteurs...
Je travaille actuellement sur la solution suivante : je transforme mes liens hypertextes en formulaires et je passe ainsi mon infos de session en variable HIDDEN.
ça marche mais il y a sans doute plus simple.
cs_Tortuegeniale
Messages postés1123Date d'inscriptionlundi 7 janvier 2002StatutMembreDernière intervention26 juin 2008 11 juil. 2003 à 21:04
le cookie de session est gardé sur le serveur dans le dossier temporaire, pas sur le client donc ça a rien a voir
additif
Messages postés2Date d'inscriptionvendredi 27 juin 2003StatutMembreDernière intervention13 juillet 2003 11 juil. 2003 à 19:08
Bonjour,
Les sessions, j'adore ! ça me permet de gérer les droits de mise à jour sur mes sites et de suivre le parcours des visiteurs (statistiques de consultation...).
Seul problème : les utilisateurs paranos qui activent un firewall au maximum et bloquent les cookies : dans ce cas, le numéro de session est perdu à chaque changement de page... et mes stats tombent à l'eau.
Je pensais me rabattre sur l'adresse IP mais ça ne marche pas lorsque plusieurs utilisateurs connectés sur un même réseau se connectent en même temps (ex: dans une entreprise)...
Dès fois que quelqu'un ait une idée géniale à ce sujet ?
cs_Tortuegeniale
Messages postés1123Date d'inscriptionlundi 7 janvier 2002StatutMembreDernière intervention26 juin 2008 8 juil. 2003 à 17:56
nan justement fait pour garder ses infos en mémoire car 1 id = 1 client.
xtcrsr
Messages postés3Date d'inscriptionjeudi 3 avril 2003StatutMembreDernière intervention18 juillet 2003 8 juil. 2003 à 17:01
Super, justement ce que je cherchais :)
Une petite question, l'id et le name changent-il d'une page a l'autre?
cs_ekinoks
Messages postés139Date d'inscriptionlundi 7 janvier 2002StatutMembreDernière intervention15 novembre 2005 13 juin 2003 à 01:13
cs_Tortuegeniale
Messages postés1123Date d'inscriptionlundi 7 janvier 2002StatutMembreDernière intervention26 juin 2008 4 juin 2003 à 17:44
Pentium4> ouais recherche dans les vieilles news de cs j'ai mis un lien qui donne certaines nouveautés mais il bug souvent
ninou2> tu vois je suis pas ingénieur php et j'ai franchement autre chose a faire qu'a installer php 4.3.x pour voir ce qui déconne chez toi. T'as qu'a mettre easy php, comme ça t'aura pas de problème parcequ'en regardant tous les hebergeurs même payant, rare sont ceux qui sont sous un php supérieur a 4.2.x.
Prendre la dernière version d'un langage c bien pour testé mais pas pour coder car il y a souvent des bugs
ninou2
Messages postés3Date d'inscriptionjeudi 16 janvier 2003StatutMembreDernière intervention 4 juin 2003 4 juin 2003 à 17:16
Tortue geniale : Pas tant que cela, car je n'ai pas eu de vraie réponse !!
Merci quand même
cs_Pentium4
Messages postés43Date d'inscriptionvendredi 7 février 2003StatutMembreDernière intervention26 octobre 2004 4 juin 2003 à 16:15
php 5.0.0 va bientôt debarquer !
cs_Tortuegeniale
Messages postés1123Date d'inscriptionlundi 7 janvier 2002StatutMembreDernière intervention26 juin 2008 4 juin 2003 à 16:01
bah c ton serveur ki déconne, ça marche parfaitement chez tout le monde et j'ai pas entendu parlé de changement dans les sessions au passage en php 4.3.x
ninou2
Messages postés3Date d'inscriptionjeudi 16 janvier 2003StatutMembreDernière intervention 4 juin 2003 4 juin 2003 à 13:20
Désolé, mais ca ne marche pas sur mon serveur . Dans le fichier VIEWSESSION.PHP, il n'affiche pas la variable qui est stocké dans la session.
Version PHP : 4.3.2 Windows 2000 SP3.
ninou2
coolboy78
Messages postés76Date d'inscriptionlundi 20 janvier 2003StatutMembreDernière intervention20 novembre 2007 28 avril 2003 à 21:06
Ah ca fai plaisir ! je comprend mieux maintenant !
lpikachu58
Messages postés351Date d'inscriptionsamedi 2 février 2002StatutMembreDernière intervention 6 mai 20042 14 avril 2003 à 21:10
de la balle
eax
Messages postés728Date d'inscriptionjeudi 20 juin 2002StatutMembreDernière intervention 7 novembre 20072 5 mars 2003 à 00:24
ah enfin de bonnes explications détaillées sur les sessions!
cs_Pentium4
Messages postés43Date d'inscriptionvendredi 7 février 2003StatutMembreDernière intervention26 octobre 2004 27 févr. 2003 à 17:44
ya po de probleme c bon sa franchement faudrait que je me repenche dessus mon vieu ptit htaccess ne fait po le poids bien jouer et continue tu est sur ke je serai le premier a dl t source :P
cs_hicksman
Messages postés258Date d'inscriptionmercredi 14 août 2002StatutMembreDernière intervention23 avril 20041 27 févr. 2003 à 13:34
ah ben ça! si c'est pas un bon tuto, je m'y connais plus!
Bravo jeune padawan! [;)]
Chapeau bas, respect, et tout, et tout!
Hicksman
cs_koko
Messages postés654Date d'inscriptionlundi 14 janvier 2002StatutMembreDernière intervention20 février 2005 27 févr. 2003 à 07:40
J'AI RIEN DIT POUR LES VARIABLES DE SESSIONS $_SESSION... j'avais pas vu dans le code qu'il y en avait... sorry sorry sorry :(
cs_Pentium4
Messages postés43Date d'inscriptionvendredi 7 février 2003StatutMembreDernière intervention26 octobre 2004 27 févr. 2003 à 07:39
ya une modif ??? sa a lair cool si g bien compris on peut CE rajouter , ce modifier , ce retirer com un login normale ?? j aten de savoir si il y a des modif a faire mais sa a lair très interressant !
cs_koko
Messages postés654Date d'inscriptionlundi 14 janvier 2002StatutMembreDernière intervention20 février 2005 27 févr. 2003 à 07:32
register_global stp !!!
les variables sont alors en $_SESSION()
25 mars 2009 à 09:53
j'ai besoin d'un script php
lorsque le client connecter d'un poste les session ouvert avec les autres sessions relatives au meme compte se ferment, de sorte à avoir une seule seule session active en même temps pour chaque compte.
(comme avec msn)
merci
4 juil. 2008 à 19:26
au fait c'est pas une erreur mais c'est un warning pouvait m'aider s'il vout plait:
voici le message:
'Warning: Unknown(): Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0'
6 mars 2007 à 10:04
Bye
19 févr. 2005 à 08:35
17 févr. 2005 à 09:36
C'est chose faite... il n'accepte pas les cookies de sessions, car d'après lui, certains navigateurs ne les supportent pas !
Voici un lien sur la doc officielle...
http://ch2.php.net/manual/fr/ref.session.php
Pour ma part, j'ai fais un truc comme ça :
Je test si le nom d'utilisateur et le mot de passe sont correctes, si le test est ok, je démarre la session
session_start();
//on enregistre les paramètres de notre visiteur comme variables de session (utilisateur_client et passe_client)
$_SESSION['utilisateur_client'] = $_POST['utilisateur'];
$_SESSION['passe_client'] = $_POST['passe'];
// on redirige notre visiteur vers une page de notre section membre
header ('location: ./accueil/index.php?'.strip_tags(SID));
Donc les infos passent à travers l'url... ça donne qqchose comme ça :
/index.php?sid=8b4a63c36a1d81ea27767f5fd96331f0
Sur toutes mes pages protégées :
session_start();
if (! isset($_SESSION['utilisateur_client'])) {
header ('location: ../index.php'); //retour à la page de login
} else {
//Affichage de la page
}
Bon...ça marche aussi, mais l'url est super moche !!!
De plus, je peux ouvrir une page protégée juste en séléctionnant l'url dans l'historique de mon navigateur sans même passer par la page de login !! c'est grave !
Resultat : je sais plus quoi faire :-((((
Pour info, j'ai trouvé un post sur un autre forum, ça peut toujours intéresser quelqu'un ?
http://www.phpindex.com/articles/articles_lire.php3?element=182
(le dernier msg tout en bas de page donne la réponse de comment protéger ses sessions... mais c'est un peu du bricolage ??)
Merci
A++ Oli
17 févr. 2005 à 02:53
Peut-être devrais-tu lui écrire?
Mathieu M-G
mathieumg@qc-net.com
14 févr. 2005 à 20:22
session.use_cookies = Off ??!!
Je suis chez un hébergeur payant, il n'autorise par les cookies ?
Merci
A+ Oli
14 févr. 2005 à 13:54
Oui, mes cookies sont activés... enfin dans mes paramètres de sécurités, je suis "Moyen".
ESt-ce que c'est mon hébergeur ?
J'ai affiché le phpinfo et voici ce que ça donne...
PHP Version 4.3.10
register_globals On
session.auto_start Off
session.cookie_path /
session.cookie_secure Off
session.name sid
session.use_cookies Off
Voili...voila :-)
Merci beaucoup !!
A++ Oli
13 févr. 2005 à 20:42
Mathieu M-G
mathieumg@qc-net.com
13 févr. 2005 à 19:06
Merci beaucoup pour ce tuto :-)
j'ai toutefois un ptit problème hum hum...
j'ai rajouté sur la page index.php
echo $_SESSION['variable']."
";
et il m'affiche bien tortue !
Par contre sur ma page viewsession.php
echo "La variable de session qui a été enregistrée est ".$_SESSION['variable']."
";
Il ne trouve plus la variable de session :-(((
Il m'a également généré un nouveau no ID de session !
J'ai essayé les 2 versions du tuto, (j'en ai essayé pleins d'autres depuis d'autres sites...ça fais 3 jours que je m'arrache les cheveux !) mais j'ai toujours ce problème...
Merci de votre aide !
A++ Oli
18 janv. 2005 à 08:55
utilise plutot le tableau $_SESSION ;)
et je crois que tu ne peux pas mettre de tableau avec session_register !
Voici comme le faire :
$_SESSION['lenomquetuveux'] = $letableau;
Il faudrait vraiment que ce tut soit mis à jour :/
17 janv. 2005 à 11:27
Ok j'ai compris comment fonctionne les sessions (merci pour le tuto)
Cependant, j'ai un ch'ti probleme pour declarer une variable tableau avec session_register("quelajout[]");
Merci par avance...
24 juin 2004 à 12:00
1- Si je définis une variable de session nommé "MaVariable", et dans mon script ou mes fonctions, j'utilise la sytaxe "$MaVariable" (notez le $), est ce que j'utilise bien la variable de session, ou y a t-il conflit ou cohéxistance ?
2- En supposant qu'a la question précédente "$MaVariable" est bien ma variable de session; si je modifie le contenu de "$MaVariable, faut-il que je force la mise a jour de l'enregistrement pour la page suivante ?
3- La portée d'une variable étant limitée à la fonction qui la définit, pour avoir une variable globale au script, il faut redéfinir la variable dans chacune des fonctions l'utilisant en la fesant précéder de "GLOBAL"... ah moins que je ne dise une bétise !
Pour les variables de session, faut-il aussi les déclarer dans chaque fonction les utilisant avec la commande "GLOBAL" ?
Mes questions semblent simplistes certes, mais ne faut il pas etre précis dans la méthodologie ?
23 juin 2004 à 18:23
23 juin 2004 à 15:41
"La fonction session_start() essaye de trouver l'identificateur de la session dans les cookies se trouvant sur votre disque dur.
Si l'identificateur de la session ne peut être trouvé, une nouvelle session est alors créée."
Est ce a dire que si l'internaute visitant le site en PHP a désactivé les cookies sur son poste (il existe des paranos !), une nouvelle session va etre créée a chaque changement de page, et que les variables de session ne seront pas accessibles de pages en pages ?
Toutefois, il semblerait que si dans l'URL d'appel de la page suivante, on mentionne la constante SID, on outrepasse les problemes de cookies...
[page2.php?' . SID . ' page 2]
Enfin, si j'ai bien compris, les variables de session sont mémorisées dans un fichier de session situé sur le serveur (contrairement aux cookies qui eux le sont sur le poste de l'internaute)... Ce fichier peut-il avoir une durée de vie limitée ? que devient ce fichier si l'internaute ne se déconnecte pas proprement (et oui, EdF se met en greve parfois !)... le fond du problème étant de ne pas encombrer le serveur avec des fichiers obsolètes...
12 juin 2004 à 12:44
J'ai néanmoins quelques erreurs qui apparaissent comme :
Notice: Use of undefined constant variable - assumed 'variable' in c:\programme\easyphp1-7\www\session1.php on line 7 <== dans index.php
-----------
Notice: Use of undefined constant variable - assumed 'variable' in c:\programme\easyphp1-7\www\viewsession.php on line 4
Notice: Undefined index: variable in c:\programme\easyphp1-7\www\viewsession.php on line 4 <== dans viewsession.php
Notice: Use of undefined constant nom - assumed 'nom' in c:\programme\easyphp1-7\www\ajoutvariable.php on line 7 <==ajoutvariable.php
---------
Notice: Use of undefined constant nom - assumed 'nom' in c:\programme\easyphp1-7\www\effacement.php on line 4
Notice: Use of undefined constant nom - assumed 'nom' in c:\programme\easyphp1-7\www\effacement.php on line 6
La variable nom a comme valeur
Notice: Use of undefined constant nom - assumed 'nom' in c:\programme\easyphp1-7\www\effacement.php on line 8
La variable "nom" a été éffacée ...
Notice: Use of undefined constant nom - assumed 'nom' in c:\programme\easyphp1-7\www\effacement.php on line 11
Notice: Undefined index: nom in c:\programme\easyphp1-7\www\effacement.php on line 11
<== dans effacement.php
Je suis débutant, c'est pk je vous demanderai d'être tolérent, s'il s'agit d'une erreur bête.
Merci
3 mai 2004 à 11:20
mais pour mon boulot, j'ai vu que les sessions sont bloquées par le navigateur si la confidentialité est mis a fond.
en effet, l'id est stockée dans un cookie sur le client et cela ne peut etre changée.
mettre l'id dans l'url est irrealisable niveau securité donc pas la peine de me le proposer.
Merci d'avance pour votre aide.
21 avril 2004 à 22:42
Ben justement, la fonction unset() ne peut pas être utilisée pr remplacer la fonction session_unset() c pr ça que g laissé la vieille méthode. Je vais tester ton truc, thx.
/!\ ATTENTION pr la modif que g faite plus haut /!
Pour la page effacement.php le code est présent 2 fois, d'abord l'ancien puis le nouveau. Utilisez le nouveau evidement :).
/!\ ATTENTION pr la modif que g faite plus haut /!\
21 avril 2004 à 22:07
tout par $_SESSION !!!
session_unset caca aussi
$_SESSION = Array();
21 avril 2004 à 21:59
Bon c vrai que ya beaucoup de gens qui se plaignent ss trop chercher (genre je m'assieds par terre et je pleure)...
Je vais tenter (je dis bien tenter) de mettre à jour le tutorial de Tortuegeniale histoire de faire un peu avancer les choses.
Ce code fonctionne avec EasyPHP1-7 de base. J'attire qd même l'attention que ss cette config (error_reporting = E_ALL) EasyPHP mensionne aussi les avertissements à l'écran au format suivant "Notice: ...". ce ne sont pas des fautes en sois et ça peut servir pr un bon débugage.
La majorité des serveurs cachent ces messages pr le confort des surfeurs qui ont souvent affaire à des faux-programmeurs ou (mauvais) donc ya pas de quoi s'en faire. ;p
>>>>> page index.php
<?
session_start(); // Démarrage de la session OBLIGATOIRE
$_SESSION['variable'] = "tortue"; //L'enregistrement de la variable et son affectation se font en même temps
if (isset($_SESSION['variable'])) //la fonction session_is_registered() a été remplacée par isset()
{
echo "Variable de session enregistrée ...
";
echo "Options des sessions
";
echo "
L'id de la session est ".session_id()." ";
exit;
}
else // La variable n'est pas enregistrée
{
echo "Variable de session non enregistrée ...";
exit;
}
?>
----------------------------------------------------------------------------------------
>>>>> page viewsession.php
<?
session_start(); // Démarrage de la sessions OBLIGATOIRE
echo "La variable de session qui a été enregistrée est ".$_SESSION['variable']."
";
echo "Ajoutons une variable à la session
";
// il est mieux d'écrire $_SESSION['variable'] que $_SESSION[variable] mais les 2 marchent aussi bien (juste 1 Notice)
echo "
L'id de la session est ".session_id()."";
exit;
?>
----------------------------------------------------------------------------------------
>>>>> page ajoutvariable.php
<?
session_start(); // Démarrage de la sessions OBLIGATOIRE
$_SESSION['nom'] ="Geniale"; //L'enregistrement de la variable et son affectation se font en même temps
if (isset($_SESSION['nom'])) //La fonction session_is_registered() a été remplacée par isset()
{
echo "Opération réussie, La variable "nom" a été enregistrée dans la session
";
echo "Effaçons maintenant la variable "nom"
";
echo "
L'id de la session est ".session_id()."";
exit;
}
else
{
echo "Enregistrement raté ...";
exit;
}
?>
----------------------------------------------------------------------------------------
>>>>> page effacement.php
<?
session_start(); // Démarage de la sessions OBLIGATOIRE
if (session_is_registered(nom)) // si la variable nommée "nom" est enregistrée on peut l'éffacer
{
echo "La variable nom a comme valeur ".$_SESSION[nom]."
";
if (session_unregister(nom)) // si elle est éffacée
{
echo "La variable "nom" a été éffacée ...
";
echo "La preuve, essayons de l'afficher ici : ".$_SESSION[nom]."
";
echo "Destruction des variables de session
";
echo "
L'id de la session est ".session_id()."";
exit;
}
else // éffacement raté
{
echo "Effacement raté ...";
exit;
}
}
else // la variable nommée nom n'existe pas
{
echo "La variable nommée "nom" n'existe pas ...";
exit;
}
?>
<?
session_start(); // Démarrage de la sessions OBLIGATOIRE
if (isset($_SESSION['nom'])) //La fonction session_is_registered() a été remplacé par isset()
{
echo "La variable nom a comme valeur ".$_SESSION['nom']."
";
unset($_SESSION['nom']);
//La fonction session_unregister() a été remplacée par unset()
//unset() renvoit une erreur donc on ne peut pas tester directement dessus.
if (!isset($_SESSION['nom'])) // si elle est éffacée
{
echo "La variable "nom" a été éffacée ...
";
echo "La preuve, essayons de l'afficher ici : ".$_SESSION['nom']."
";
// il est mieux d'écrire $_SESSION['variable'] que $_SESSION[variable]
//ça fait une Notice en mode error_reporting = E_ALL.
echo "Destruction des variables de session
";
echo "
L'id de la session est ".session_id()."";
exit;
}
else // éffacement raté
{
echo "Effacement raté ...";
exit;
}
}
else // la variable nommée nom n'existe pas
{
echo "La variable nommée "nom" n'existe pas ...";
exit;
}
?>
----------------------------------------------------------------------------------------
>>>>> page destruction.php
<?
session_start(); // Démarage de la sessions OBLIGATOIR
session_unset();
if (session_destroy())
{
echo "A ce stade il nous reste la Variable "variable" enregistrée
";
echo "Normalement session_destroy et session_unset l'ont détruit, testons ceci : ".$_SESSION['variable']."
";
echo "Rien n'apparait, la variable n'existe plus et si il y en avait eu d'autre, elles n'existeraient plus
";
echo "Opération réussie
";
echo "
L'id de la session est ".session_id()."
";
echo "Oups elle n'exite plus nom plus ;-)
";
exit;
//Quelques Notice puisqu'on essaye d'affiche des variables qui n'existent plus
}
else
{
echo "Effacement raté ...";
exit;
}
?>
Voila comme vous avez pu le remarquer ce sont des fonctions qui ont changé tt simplement, rien de terrible. En fait il suffisait tt simplement d'aller sur le site www.php.net/ ;)
21 avril 2004 à 20:17
21 avril 2004 à 19:33
21 avril 2004 à 19:22
Cepandant la solus d'eka808 est pas mal du tt. P.ex. sur free.fr ils ont aussi moditifé leur config de php pr pas faire ch.. les gens avec leurs vieux codes.
Je pense que les 2 se valent mais le mieux est de savoir les maitriser tt ;)
16 avril 2004 à 18:17
moi je voulais juste aider et montrer ma solution.
si tu as mieux c ton pb moi cette solution me convient
16 avril 2004 à 17:36
Comme disait un célèbre philisophe, qui s'appelait coluche si je me rapelle bien:
c'est en forgeant qu'on devient forgeron et c'est en sciant du bois que léonard de Vinci.
16 avril 2004 à 16:23
Ca sert absolument a rien de faire ce que tu fais car le jour ou les serveur qui héberge vos sites changerons leur config php, vos sites marcherons plus.
Si tu fais ça installe easy php 1.6 parceque cette "solution" revient a faire ça.
Ce tuto marchait sous easy php 1.6, pour la 1.7 il faut changer 2 - 3 trucs pour les sessions (et encore ça devient meme plus simple). Donc a vous de chercher un peux. y a une super aide officiel php ou tout est expliqué (clairement en plus).
J'en vois plein qui se plaignent sur ce site c abérant alors qu'ils cherchent meme pas. "Ils peuvent aider sur ce site la alors pourquoi chercher" pensent les 3/4 des gens. Cette remarque n'est dirigé vers personne en particulier donc vous fachez pas. Mais c'est franchement usant de recevoir des message sur la messagerie privé du site, de personne que je ne connais pas, qui disent rarement bonjour, me colle un code de 50 - 100 lignes et me demandent (des fois c meme ordonnent) de les aider.
La maj de ce tuto existe, elle est meme finie mais j'ai décidé de ne pas la mettre vu les comportements de certains sur ce site.
16 avril 2004 à 15:45
J'ai rencontré le même problème que jashugan, c'est à dire que je n'arrivais pas à faire fonctionner les sessions sous easy php 1.7
La solution a ce problème est évidemment de modifier le fichier de config de php (menu d'easy php > configuration > php)
En remplaçant ce fichier par mon fichier (http://membres.lycos.fr/eka808/filesforum/phpmultimania/php.zip)
plus de problèmes!!! (le fichier a les memes valeurs que celui du serveur de multimania)
Voila faites en bon usage :-P
Ah ui le fichier php.ini a remplaçer se situe dans "c:\program files\easy php\apache"
28 mars 2004 à 15:37
j'avais essayé de créer un rep session mais je crois que j'avais oublié le "s".
Merci
28 mars 2004 à 09:36
mais chez free, tu dois créer un dossier sessions pour que ca marche :p
Warning: session_start(): open(/var/www/free.fr/e/e/tuturzone/sessions/.sess_8fa03c12718e51a97ace784e72006595, O_RDWR) failed: No such file or directory
je trouve que l'erreur No such file or directory est tres clair !
27 mars 2004 à 23:14
Je me suis bricolé un ptit truc avec mais sous free ca marche pas :o(
et en vérifiant avec les pages de tortuegeniale ca me donne la même erreur
cf----> http://tuturzone.free.fr/tortue/
"No such file or directory (2) in /var/www/free.fr/e/e/tuturzone/tortue/index.php on line 2"
Il faut spécifier au serveur ou stocker les cookies ou quoi?
et à prioris les erreurs de header aprés c parce ya celle là avant non?
c surement une erreur de serv PHP parce que chez moi ca marche niquel...
19 févr. 2004 à 19:19
Bonne continuation ! :)
7 févr. 2004 à 17:13
Mathieu M-G
7 févr. 2004 à 15:53
7 févr. 2004 à 15:42
Merci pareil ;) c'est juste que c'est fatiguant les sessions trops courtes ^^ Admettons tu laisse le site là et tu reviens un peu de temps apres...
Mathieu M-G
7 févr. 2004 à 15:40
7 févr. 2004 à 15:35
Car j'ai vu des sites ou à la connexion l'on pouvait choisir la durée de session que l'on voulait...comment s'y prennent-ils ? Ils modifient le php.ini chaque fois ?
Merci
Mathieu M-G
7 févr. 2004 à 15:32
La durée d'une session est fixée dans le php.ini. Si tu veux pouvoir la modifier il faut que ton hébergeur te permette de le faire. Donc a moins que tu héberges chez toi ou que tu ais un serveur dédiés, c mal parti ...
++
7 févr. 2004 à 03:10
Merci
Mathieu M-G
16 janv. 2004 à 16:47
merci pour le boulot !!
12 janv. 2004 à 17:19
25 déc. 2003 à 21:15
<?
...........
..........
..........
?>
les sessions passe bien mais si j inclu a la suite de ?> du code html
je perds les variables de ma session pk et que faire
merci
freedzool@wanadoo.fr
30 nov. 2003 à 08:41
montre aussi les select pour voir si le problème il n'est pas la
29 nov. 2003 à 17:32
C'est bien gentil $_SESSION['utilisateur'];
Mais mon pb concerné les id !
Mais je crois que je vais trouvé donc merci !
29 nov. 2003 à 17:27
<?
session_start();
$utilisateur = $_SESSION['utilisateur'];
if($utilisateur == "SkyPlayer") {
$id = "1";
}else{
$id = "2";
}
// "Select * form articles where id='$id'";
//après je fais un "select * from membres where id='$id'";
//puis un formulaire du 10eme article : http://url/article.php?id=10
?>
<form>
>
</form>
ca ca devrait marcher bien que ton code n'est pas tout complet :)
29 nov. 2003 à 17:20
29 nov. 2003 à 17:13
utilise $_SESSION['utilisateur'] pour vérifié :)
29 nov. 2003 à 17:10
voilà une page d'exemple qui me créé se genre de problème :
<? session_start();
if(session_is_registered("utilisateur")=="SkyPlayer"){
$id = "1";
}else{
$id = "2";
}
// "Select * form articles where id='$id'";
//après je fais un "select * from membres where id='$id'";
//puis un formulaire du 10eme article : http://url/article.php?id=10
<form>
>
</form>
L'embettant c'est que la à $utilisateur il reprend l'auteur de l'article et non l'utilisateur en cours !
Est-ce que cela vient du fait que les tables membres et articles ont toputes les deux un champ appelé id ?
Je ne sais pas comment arrangé ça aidez moi !
29 nov. 2003 à 08:44
error_reporting (E_ALL ^ E_NOTICE );
(je crois que c'est ca)
tu le mets dans ta page php au tout début et alors il ne va plus afficher les notices :)
28 nov. 2003 à 23:54
28 nov. 2003 à 23:52
28 nov. 2003 à 23:38
Notice: Use of undefined constant variable - assumed 'variable' in e:program fileseasyphp1-7wwwindex.php on line 7
Variable de session enregistrée ...
Options des sessions
L'id de la session est 41513229c4b6eb3ed65c02456c2f6de7
ensuite j'essay la 2eme partie(en cliquant sur option de session), et sa me met
Notice: Undefined variable: _session in e:program fileseasyphp1-7wwwviewsession.php on line 4
La variable de session qui a été enregistrée est
Ajoutons une variable à la session
L'id de la session est 41513229c4b6eb3ed65c02456c2f6de7
il me dis pas le nom de la variable :/
Si quelqu'un peux m'aider plzzz
23 nov. 2003 à 00:10
23 nov. 2003 à 00:07
moi en local ca passe sans probleme mais sur mon hébergeur, ca doit passer par les PHPSESSID
mais dans ta page php, tu peux rajouter un SID qui est un define de la session
du genre :
echo '[index.php?mode=news&',SID,' News]';
enfin tu vois le genre quoi :)
23 nov. 2003 à 00:02
page.php?PHPSESSID=rg4gfh545gfh44f4 ?
Les variables sont bien renvoyées à chaque nouvelle page mais aucune url de ce type n'est obtenue !
22 nov. 2003 à 23:55
mets le session_start tout en haut de ta page
22 nov. 2003 à 23:42
Erreur rencontrer sous Easy PHP !
Pourquoi cette erreur ?
19 oct. 2003 à 21:42
voici la page ou il fo aller (Source : nexen.net) : http://dev.nexen.net/docs/php/annotee/session.examples.php
En voici un extrait :
L'utilisation de $_SESSION (ou $HTTP_SESSION_VARS avec PHP 4.0.6 et plus ancien) est recommandé pour une meilleure sécurité et un code plus facilement maintenable. Avec $_SESSION , il n'y a pas besoin d'utiliser les fonctions session_register , session_unregister et session_is_registered . Les variables de sessions sont accessibles comme toute autre variable. Enregistrer une variable avec $_SESSION.
<?
phpsession_start();
// Utilisez $HTTP_SESSION_VARS avec PHP 4.0.6 ou plus ancien
if (!isset($_SESSION['count'])) {
$_SESSION['compteur'] = 0;
} else {
$_SESSION['compteur']++;
} ?>
Retirer une variable de session avec $_SESSION et register_globals inactif.
<?
phpsession_start();
// Utilisez $HTTP_SESSION_VARS avec PHP 4.0.6 ou plus ancien
unset($_SESSION['compteur']);
?>
28 juil. 2003 à 11:53
Il faut une extension *.php, en php3 ça marche pas
Par contre pour tes erreurs en *.php ça doit etre header has allready send .... Si c ça, je l'ai écris dans le tuto, ne met pas de html ou meme une ligne blanche avant le session start.
27 juil. 2003 à 11:16
si je laisse l'extensionphp, il ne met plein d'erreur et quand je met php3 il me met :
Fatal error: Call to unsupported or undefined function session_start() in your script on line 4
merci
13 juil. 2003 à 12:26
1 cookie 1 Session ID 1 seul et unique personne et cet ID est passé de façon invisible page par page (ou de façon visible celon le php ini). Que le client accepte les cookies ou ai un firewall ça a rien a voir, vu que tout (id de session, variable de session) est stocké sur le serveur et jamais un visiteur ne peut y toucher
13 juil. 2003 à 00:54
Cependant, pour savoir quel cookie-info ouvrir, il faut un identifiant unique du visiteur qui peut être récupéré de 2 façons :
- dans l'URL ( ...&sessid=fd152f45d4f5d4f5d.....)
- à la lecture d'un cookie placé sur l'ordinateur du visiteur
Sans cet identifiant unique, il est impossible de suivre ton visiteur à la trace (il s'agit uniquement de statistiques et pas d'espionnage).
Les firewall récents bloquent les cookies et détectent (et suppriment) les infos de sessions placées dans l'URL.
J'en suis certain pluisque l'IP est la même et les pages vues se suivent à quelques dizaines de secondes près.
Cela représente presque 10% de mes visiteurs...
Je travaille actuellement sur la solution suivante : je transforme mes liens hypertextes en formulaires et je passe ainsi mon infos de session en variable HIDDEN.
ça marche mais il y a sans doute plus simple.
11 juil. 2003 à 21:04
11 juil. 2003 à 19:08
Les sessions, j'adore ! ça me permet de gérer les droits de mise à jour sur mes sites et de suivre le parcours des visiteurs (statistiques de consultation...).
Seul problème : les utilisateurs paranos qui activent un firewall au maximum et bloquent les cookies : dans ce cas, le numéro de session est perdu à chaque changement de page... et mes stats tombent à l'eau.
Je pensais me rabattre sur l'adresse IP mais ça ne marche pas lorsque plusieurs utilisateurs connectés sur un même réseau se connectent en même temps (ex: dans une entreprise)...
Dès fois que quelqu'un ait une idée géniale à ce sujet ?
8 juil. 2003 à 17:56
8 juil. 2003 à 17:01
Une petite question, l'id et le name changent-il d'une page a l'autre?
13 juin 2003 à 01:13
4 juin 2003 à 17:44
ninou2> tu vois je suis pas ingénieur php et j'ai franchement autre chose a faire qu'a installer php 4.3.x pour voir ce qui déconne chez toi. T'as qu'a mettre easy php, comme ça t'aura pas de problème parcequ'en regardant tous les hebergeurs même payant, rare sont ceux qui sont sous un php supérieur a 4.2.x.
Prendre la dernière version d'un langage c bien pour testé mais pas pour coder car il y a souvent des bugs
4 juin 2003 à 17:16
Merci quand même
4 juin 2003 à 16:15
4 juin 2003 à 16:01
4 juin 2003 à 13:20
Version PHP : 4.3.2 Windows 2000 SP3.
ninou2
28 avril 2003 à 21:06
14 avril 2003 à 21:10
5 mars 2003 à 00:24
27 févr. 2003 à 17:44
27 févr. 2003 à 13:34
Bravo jeune padawan! [;)]
Chapeau bas, respect, et tout, et tout!
Hicksman
27 févr. 2003 à 07:40
27 févr. 2003 à 07:39
27 févr. 2003 à 07:32
les variables sont alors en $_SESSION()