Discussion:
Session : 2 questions
(trop ancien pour répondre)
eric
2006-12-14 21:36:53 UTC
Permalink
1ère question :

Lorsque je veux exécuter la commande session_start (), les messages
d'avertissement suivant s'affichent :

Warning: session_start() [function.session-start]: Cannot send session
cookie - headers already sent by (output started at

Warning: session_start() [function.session-start]: Cannot send session
cache limiter - headers already sent (output started at

Comment puis je corriger ?


2nde question :
Comment puis je passer un tableau au travers d'une session ?

Merci
Eric
Olivier Miakinen
2006-12-14 22:16:13 UTC
Permalink
Post by eric
Lorsque je veux exécuter la commande session_start (), les messages
Warning: session_start() [function.session-start]: Cannot send session
cookie - headers already sent by (output started at
Warning: session_start() [function.session-start]: Cannot send session
cache limiter - headers already sent (output started at
Comment puis je corriger ?
Il en va des sessions comme des cookies et de la fonction header(). Voir
ce passage de la FAQ, c'est exactement la même chose :
<http://faqfclphp.free.fr/#rub2.12>.
Post by eric
Comment puis je passer un tableau au travers d'une session ?
Tu ne voudrais pas plutôt stocker le contenu du tableau sur le serveur,
et passer dans la session un identifiant unique te permettant de le
retrouver ? Parce que bon, si tu dois renvoyer tout un gros paquet de
données à chaque fois, ça fait des requêtes très lourdes inutilement.
Le Souricier Gris
2006-12-15 09:44:14 UTC
Permalink
Post by Olivier Miakinen
Post by eric
Comment puis je passer un tableau au travers d'une session ?
Tu ne voudrais pas plutôt stocker le contenu du tableau sur le serveur,
et passer dans la session un identifiant unique te permettant de le
retrouver ? Parce que bon, si tu dois renvoyer tout un gros paquet de
données à chaque fois, ça fait des requêtes très lourdes inutilement.
Le tableau n'est pas très gros au pire 500 octets et transféré une
unique fois entre les deux pages.

Eric
Antoine Polatouche
2006-12-15 12:48:46 UTC
Permalink
Post by Olivier Miakinen
Post by eric
Comment puis je passer un tableau au travers d'une session ?
Tu ne voudrais pas plutôt stocker le contenu du tableau sur le serveur,
et passer dans la session un identifiant unique te permettant de le
retrouver ? Parce que bon, si tu dois renvoyer tout un gros paquet de
données à chaque fois, ça fait des requêtes très lourdes inutilement.
Si j'ai bien compris comment fonctionnent les sessions, les variables de
session sont toujours stockées coté serveur, donc pas de soucis de
'requêtes lourdes'.
Pour passer un tableau, il suffit de le mettre dans $_SESSION.

Pour les détails, voir la doc à l'entrée session_start().
Olivier Miakinen
2006-12-15 12:59:36 UTC
Permalink
Post by Antoine Polatouche
Post by Olivier Miakinen
Tu ne voudrais pas plutôt stocker le contenu du tableau sur le serveur,
et passer dans la session un identifiant unique te permettant de le
retrouver ? Parce que bon, si tu dois renvoyer tout un gros paquet de
données à chaque fois, ça fait des requêtes très lourdes inutilement.
C'était moi qui avais écrit ça. Le souricier gris n'avait rien écrit de
ce que tu as cité. ;-)
Post by Antoine Polatouche
Si j'ai bien compris comment fonctionnent les sessions, les variables de
session sont toujours stockées coté serveur, donc pas de soucis de
'requêtes lourdes'.
Ah, ok. Merci de la précision.
Post by Antoine Polatouche
Pour passer un tableau, il suffit de le mettre dans $_SESSION.
Eh bien c'est parfait, alors.
Post by Antoine Polatouche
Pour les détails, voir la doc à l'entrée session_start().
Par exemple : <http://fr.php.net/session_start>.
B***@dino-v.clubint.net
2006-12-17 09:40:34 UTC
Permalink
Bonjour :)

Dites moi, ou sont stockés ses variables sur le serveur ?
Comment y avoir accès ?
Est ce utile ? (lol)

Merci d'avance pour vos réponses ;-)
Post by Antoine Polatouche
Si j'ai bien compris comment fonctionnent les sessions, les variables de
session sont toujours stockées coté serveur, donc pas de soucis de
'requêtes lourdes'.
Antoine Polatouche
2006-12-17 13:26:18 UTC
Permalink
Post by B***@dino-v.clubint.net
Bonjour :)
Bonjour,
Post by B***@dino-v.clubint.net
Dites moi, ou sont stockés ses variables sur le serveur ?
Ca dépend de la configuration de php: voir la doc
Post by B***@dino-v.clubint.net
Comment y avoir accès ?
Est ce utile ? (lol)
On peut théoriquement y accéder, mais c'est beaucoup plus simple d'y
accéder par la variable $_SESSION
John GALLET
2006-12-17 19:09:33 UTC
Permalink
Bonjour,
Post by B***@dino-v.clubint.net
Dites moi, ou sont stockés ses variables sur le serveur ?
Ca dépend de comment PHP est compilé, a priori sur disque, mais on peut
lui dire de les mettre en shared mem. Ou surcharger complètement son
fonctionnement.
Post by B***@dino-v.clubint.net
Comment y avoir accès ?
Est ce utile ? (lol)
A lire d'urgence :
http://faqfclphp.free.fr/#7

En complément :
http://www.saphirtech.com/cours_php.html pour l'explication des sessions
et du paragraphe 7.1 (et du reste)

ainsi que :

http://fr2.php.net/manual/en/ref.session.php pour les sessions natives PHP
citées au paragraphe 7.3 de ladite FAQ (remplacer /en/ par /fr/ pour avoir
les erreurs de traduction et la version en français).

a++;
JG
B***@dino-v.clubint.net
2006-12-24 20:56:13 UTC
Permalink
De la lecture ???
Classe :) Merci beaucoup :) Encore de la lecture lol ;-)
Je m'y attache au plus vite, et je vous ferais part de mes avancées sur ce
script ;-)
(Ainsi que de ma compréhension sur PHP, qui, grâce à vous, s'améliore de
jours en jours.)

Bonnes Fêtes de Nöel
Bernard
Post by John GALLET
Comment y avoir accès ? (Aux ressources sessions)
Est ce utile ? (lol)
http://faqfclphp.free.fr/#7
http://www.saphirtech.com/cours_php.html pour l'explication des sessions
et du paragraphe 7.1 (et du reste)
http://fr2.php.net/manual/en/ref.session.php pour les sessions natives PHP
citées au paragraphe 7.3 de ladite FAQ (remplacer /en/ par /fr/ pour avoir
les erreurs de traduction et la version en français).
a++;
JG
B***@dino-v.clubint.net
2006-12-17 09:40:34 UTC
Permalink
Bonjour,
Dites moi, le tableau retourné, il concerne qu'une seule ligne ?
(Pour ma bonne compréhension..)

Ou bien, il retourne plusieurs lignes qui seront triées ... par exemple pour
un utilisateur donné ...

Ce qui renvoi bien une seule ligne dans le tableau, c'est ça ?

Merci ;-)
eric
2006-12-18 12:44:48 UTC
Permalink
Post by B***@dino-v.clubint.net
Bonjour,
Dites moi, le tableau retourné, il concerne qu'une seule ligne ?
(Pour ma bonne compréhension..)
Ou bien, il retourne plusieurs lignes qui seront triées ... par exemple pour
un utilisateur donné ...
Ce qui renvoi bien une seule ligne dans le tableau, c'est ça ?
Merci ;-)
Le tableau est un tableau dynamique contenant des informations de type
record (structure).

Eric
eric
2006-12-18 22:38:44 UTC
Permalink
Post by eric
Lorsque je veux exécuter la commande session_start (), les messages
Warning: session_start() [function.session-start]: Cannot send session
cookie - headers already sent by (output started at
Warning: session_start() [function.session-start]: Cannot send session
cache limiter - headers already sent (output started at
Comment puis je corriger ?
J'ai lu la FAQ mais même avec un code comme celui-ci, je bugge !

<?php
session_start();
?>
<HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" >
<title>FICHE D'INCIDENT</title>
<meta http-equiv="content-style-type" content="text/css">
<meta http-equiv="expires" content="0">
<link rel="stylesheet" href="frame.css" type="text/css" media="all">
</head>
<body>
Bonjour
</body>
</html>
Olivier Miakinen
2006-12-18 23:19:01 UTC
Permalink
[ headers already sent by (output started at ]
J'ai lu la FAQ mais même avec un code comme celui-ci, je bugge !
<?php
session_start();
?>
<HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
[...]
Il n'y a vraiment aucun caractère dans le fichier avant le tout
premier "<", ni espace, ni saut de ligne, ni caractère de contrôle ?

Tiens, une idée qui me vient : ne serait-ce pas un fichier en UTF-16 ou
UTF-8 précédé par un « byte order mark (BOM) » qui serait transmis sur
le réseau ?
Le Souricier Gris
2006-12-19 11:38:33 UTC
Permalink
Post by Olivier Miakinen
Tiens, une idée qui me vient : ne serait-ce pas un fichier en UTF-16 ou
UTF-8 précédé par un « byte order mark (BOM) » qui serait transmis sur
le réseau ?
En effet, je viens de regarder avec hexedit, dans l'entête du fichier
j'ai les codes Hexa suivants :

EF BB BF

Par contre connaitriez vous un moyen simple de supprimer ces 3 octets ?

Merci
Eric
Olivier Miakinen
2006-12-19 11:53:33 UTC
Permalink
Post by Le Souricier Gris
Post by Olivier Miakinen
Tiens, une idée qui me vient : ne serait-ce pas un fichier en UTF-16 ou
UTF-8 précédé par un « byte order mark (BOM) » qui serait transmis sur
le réseau ?
En effet, je viens de regarder avec hexedit, dans l'entête du fichier
EF BB BF
Bingo !

Pourtant, c'est parfaitement stupide en UTF-8 puisque, contrairement à
UTF-16, l'ordre des octets est parfaitement déterminé.

Il semble que beaucoup d'éditeurs Windows, dont Notepad, l'ajoutent
automatiquement :
http://fr.wikipedia.org/wiki/Marque_d'ordre_des_octets
Post by Le Souricier Gris
Par contre connaitriez vous un moyen simple de supprimer ces 3 octets ?
Il faudrait trouver un éditeur qui ne les mette pas. Personnellement
j'utilise vi sous cygwin, mais je ne le conseillerai pas à un windowsien
pur jus. J'espère que d'autres lecteurs auront de meilleures idées.
Dominique Ottello
2006-12-19 17:07:04 UTC
Permalink
Post by Olivier Miakinen
Il faudrait trouver un éditeur qui ne les mette pas. Personnellement
j'utilise vi sous cygwin, mais je ne le conseillerai pas à un windowsien
UltraEdit (Pas Gratuit) permet de sauvegarder avec ou sans BOM.
--
Ce n'est pas parce que l'erreur se propage qu'elle devient vérité. Gandhi
Technologie aéronautique : http://aviatechno.free.fr (http://ottello.net)
Concorde dans la presse de 1965 à 2003 : http://le.pointu.free.fr
piotr
2006-12-19 17:07:05 UTC
Permalink
Post by Olivier Miakinen
Post by Le Souricier Gris
Par contre connaitriez vous un moyen simple de supprimer ces 3 octets ?
Il faudrait trouver un éditeur qui ne les mette pas. Personnellement
j'utilise vi sous cygwin, mais je ne le conseillerai pas à un windowsien
pur jus. J'espère que d'autres lecteurs auront de meilleures idées.
Quand on est contraint et forcé d'utiliser Windows dans son travail
(avec fouet et menottes, dans mon cas) il existe une version win32 de
gvim qui fonctionne très bien.

Sinon, en plus "windowsien", j'aime bien tout ce qui est basé sur
Scintilla. On peut citer entre autres :
- Scite
- Notepad++
- jEdit

Pour une liste exhaustive, voir ici :
http://scintilla.sourceforge.net/ScintillaRelated.html
Le Souricier Gris
2006-12-20 11:27:58 UTC
Permalink
Post by Le Souricier Gris
Par contre connaitriez vous un moyen simple de supprimer ces 3 octets ?
Pour corriger j'ai utiliser hexeditor sous linux.

Par contre j'utiliser Scite sous Linux et c'est lui qui me mettait ses
3 caractères car il faut lui spécifier Encodage : UTF8 avec cookie !
pour que ceux ci ne soient pas enregistrés.

Mais si l'on fait celà, le fichier ne sera plus ouvert en UTF8 donc il
faut insérer dans les deux premières lignes un commentaire permettant
d'indiquer à scite que le fichier est en UTF8. Pour ma part :
<?php
session_start(); # coding: utf-8

Eric
B***@dino-v.clubint.net
2006-12-24 20:56:13 UTC
Permalink
Bonsoir ;-)
Que dire, ça devrait marcher ?! Je ne connaissais pas !! merci ;-)

SINON

J'utilise Post-It, un note pad amélioré, j'aime bien, a voir si c'est le
note pad ou si c'est windows qui passe le fichier en utf-16.

Joyeux Noel
Bernard
Post by Le Souricier Gris
<?php
session_start(); # coding: utf-8
Eric
Continuer la lecture sur narkive:
Loading...