Session PHP

Fermé
Sephirius - 12 août 2009 à 21:41
Sephirius Messages postés 8 Date d'inscription mercredi 12 août 2009 Statut Membre Dernière intervention 13 novembre 2009 - 13 août 2009 à 10:56
Bonjour, j'aimerais des renseignements concernant les sessions en PHP 5

Je lit partout que je dois placer session_start(); avant toute ligne dans ma page index.php
NB: la page index.php ne contient que du php qui appel par include des fichiers contenant du HTML 4.0
Est-ce exacte?

Je voudrais créer un compte Invité en attendant l'enregistrement du membre. Ou dois-je déclarer mes variables?
Juste après session_start() ou ailleurs?
Si je les mets dans index.php, a chaque chargement, ne vais-je pas effacer d'éventuelle variable avec un nom d'utilisateur autre que Invité?

J'aimerais créer d'autre variable de session lorsque l'utilisateur à été valider.
dois-je faire ceci?

session_start();
$_SESSION['new']="zzz"

la présence de code HTML au dessus de session_start ne pause pas de problème si elle a dj été lancé dans la page index.php (la page qui crée cette new variable est incluse dans index.php)

J'ai tjs fonctionné avec des cookies, mon site prenant de l'ampleur et une tournure plus pro je me dois de passer aux sessions. Merci de votre aide


Si vous avez des astuces sur les sessions je suis preneur.

2 réponses

bouket Messages postés 143 Date d'inscription mardi 11 août 2009 Statut Membre Dernière intervention 16 octobre 2011 22
12 août 2009 à 23:45
0
Sephirius Messages postés 8 Date d'inscription mercredi 12 août 2009 Statut Membre Dernière intervention 13 novembre 2009
13 août 2009 à 10:54
Merci, en faite j'ai déjà appris le PHP la bas, mais j'espérais de simple réponse concernant mon problème particulier (ou pas).

C'est pour éviter de me lancer dans un codage super long pour devoir tout recommencer.
Mais ton conseil pourra servir à d'autre.

Merci
0
Bonjour

Le session_start(), comme toutes les fonctions qui font appel aux headers http, doit être appelé avant tout envoi de données au client, c'est à dire tout echo ou texte en dehors des balises <?php ?>. Mais tu as parfaitement le droit d'avoir tout le traitement php que tu veux avant le session_start, pourvu qu'il n'envoie rien au client.
En particulier, tu n'as pas droit à une ligne vide ni à un caractère espace avant le <?php du début de ton fichier.
Si tu veux créer une nouvelle variable de session alors que la session_start a déjà été exécuté dans ton fichier, ou dans le fichier qui l'inclut, tu peux faire directement $_SESSION['new']="zzz" et tu ne dois pas refaire session_start();
0
Sephirius Messages postés 8 Date d'inscription mercredi 12 août 2009 Statut Membre Dernière intervention 13 novembre 2009
13 août 2009 à 10:56
Merci, tu m'éclaires un peu plus mtnt.

Je vais attendre d'autre post afin d'avoir des réponses à mes autres questions (qui sont surement banales pour un habitué des sessions php)
0