PHP : variable de session
Résolu
dimi3
Messages postés
278
Statut
Membre
-
dimi3 Messages postés 278 Statut Membre -
dimi3 Messages postés 278 Statut Membre -
Bonjour,
Est-il possible de créer ce que j'appellerais une variable de session. C'est-à-dire une variable à laquelle toutes les pages du site puisse faire appel et/ou modifier durant la durée de la visite d'un utilisateur ? Quelque chose en somme qui remplacerait un cookie, et éviterait le passage de variable par URL...
Merci de votre réponse.
Est-il possible de créer ce que j'appellerais une variable de session. C'est-à-dire une variable à laquelle toutes les pages du site puisse faire appel et/ou modifier durant la durée de la visite d'un utilisateur ? Quelque chose en somme qui remplacerait un cookie, et éviterait le passage de variable par URL...
Merci de votre réponse.
11 réponses
-
Bonjour,
Oui. Cette question est surprenante, car les variables de session sont très utilisées en PHP.
Il vous suffit de démarrer votre session via la ligne <?php session_start(); ?> qui doit se situer en tout début de fichier (avant même le code HTML).
Vos variables de sessions se définissent ensuite via la ligne $_SESSION['var'] = "value";
Bon nombres de tutoriels très complets sont disponibles... -
-
J'ai fait mes premiers essais avec session_stat(), mais ils ne sont pas concluants !
J'obtiens cet avertissement :Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /...chemin.../fichier.php:1) in /chemin/fichier.php on line 2
Qu'est-ce que cela signifie ?
Je vous remercie. -
Merci de votre réponse.
session_start(); est pourtant bien en première ligne de mon code. Il n'y a pas d'echo avant.
Et voilà ce que j'obtiens encore :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
Dur... dur...
Voici mon fichier 1 :<?php session_start(); session_register("prenom"); session_register("nom"); $prenom = "Jean"; $nom = "Valjean"; ?>
Et voici mon fichier 2 :<?php session_start(); echo "ID de session : ".session_id()."<br>"; echo "$prenom $nom"; session_unset(); session_destroy(); ?>
-
-
Dans ton php.ini essayes de remplacer cette ligne :
session.bug_compat_warn = 1
par
session.bug_compat_warn = 0
Voir : https://www.generation-nt.com/reponses/sessions-entraide-19965.html -
-
Bon apparement personne n'arrives à cerner ce problème, plusieurs recherche sur le net et toujours les mêmes réponse qui reviennet...
Essayes de lire ca :
https://forums.commentcamarche.net/forum/affich-6414114-message-d-erreur-incomprehenssible
-
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
il faut que ce soit en début de page, c'est à dire strictement rien avant dans le fichier, même pas une ligne vide, ni code html.
Si t'as toujours le probleme, fais attention à bien utiliser un codage utf8 sans BOM (c'est un octet bisarre placé en début de fichier texte qui fout la merde) -
Oui, il n'y a vraiment rien avant la fonction de session et les fichiers ne sont pas encodés avec BOM.
Melooo, le code de mes 2 fichiers est dans le message précédent. -
Voici le fichier 1 :
<?php
session_start();
session_register("prenom");
session_register("nom");
$prenom = "Jean";
$nom = "Valjean";
?>
Et voici mon fichier 2 :
<?php
session_start();
echo "ID de session : ".session_id()."<br>";
echo "$prenom $nom";
session_unset();
session_destroy();
?> -
J'ai suivi à la lettre les conseils de la page https://forums.commentcamarche.net/forum/affich-6414114-message-d-erreur-incomprehenssible mais rien ne se résout. Je pense que ça vient de la configuration des serveurs de mon hébergeur et comme je n'ai pas accès au fichier php.ini, il n'y a pas d'espoir... En tout cas merci à tous pour votre attention et votre temps...
-
@session_start(); ini_set ('session.bug_compat_42', 0); ini_set ('session.bug_compat_warn', 0); session_register("prenom"); session_register("nom"); $prenom = "Jean"; $nom = "Valjean";
Là, je n'ai plus de messages d'erreurs ou d'avertissements, mais les variables $nom et $prénom ne passent pas... Donc ça ne me sert pas à grand-chose... :-( -
Avec le code suivant pour récupérer les variables, ça fonctionne :
foreach($_SESSION as $cle => $valeur) { echo " <li><strong>".ucfirst($cle)." : </strong><em>".$valeur."</em></li>\n"; }
Je l'ai trouvé à l'adresse : http://www.php-astux.info/sessions-php.php
Merci à tous. -
Je rajoute un petit détail qui m'a donné bien du fil à retordre. Il faut bien déclarer la variable de session dans le fichier index du site. Faute de quoi, la variable est irrégulièrement reconnue dans les autres pages du site.