Problème avec les sessions !

Résolu
nikoland Messages postés 47 Date d'inscription samedi 17 décembre 2005 Statut Membre Dernière intervention 14 décembre 2006 - 14 févr. 2006 à 22:02
nikoland Messages postés 47 Date d'inscription samedi 17 décembre 2005 Statut Membre Dernière intervention 14 décembre 2006 - 18 févr. 2006 à 23:10





























contenu
Aller à la page [index.php index.php].












[ Authentification ]
























Lorsqu'on appelle la page, j'ai un message :
Warning: session_start(): Cannot send session cache limiter -
headers already sent (output started at c:\program
files\easyphp1-8\www\cms\index.php:1) in c:\program files\easyphp1-8\www\cms\template\purple\body.php on line 4

Je ne vois pas d'où cela peut venir (excepté du session_start() mais je ne comprend pas pourquoi !).

Si quelqu'un pouvait m'aider.

J'en profite également pour demander si quelqu'un sait comment on définit une largeur pour le bouton submit du formulaire.

Merci d'avance.

33 réponses

nikoland Messages postés 47 Date d'inscription samedi 17 décembre 2005 Statut Membre Dernière intervention 14 décembre 2006
16 févr. 2006 à 22:24
J'AI TROUVE !!

L'erreur provient du fait que ma page est encodée en utf-8 ! Si je l'enregistre en ANSI eh bien tout passe !

Y-a-t-il une solution pour faire cohabiter l'utf-8 et le session_start() ??

Nikö
3
nikoland Messages postés 47 Date d'inscription samedi 17 décembre 2005 Statut Membre Dernière intervention 14 décembre 2006
18 févr. 2006 à 23:10
http://forum.alsacreations.com/topic-17-4966-1-Rsolu-Problme-avec-lencodage-UTF8.html
http://forum.alsacreations.com/topic.php?fid=17&tid=766&p=2#p7929

Le problème était bien lié à l'utf-8. Apparement, ce problème apparaît sur certains editeurs de texte.

Voila, ça en dépannera certainement d'autres !

Nikö
3
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 9
14 févr. 2006 à 22:49
Salut,

Headers already sent

a +
<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
0
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 3
14 févr. 2006 à 22:49
Salut!
La fonction session_start, qui utilise les headers, est à appeler avant toute sortie au navigateur. On entend sortie au navigateur des données envoyés au navigateur, donc, notamment: code HTML, print, echo, ...

Donc, faut la mettre avant

@++

R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
0

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

Posez votre question
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 3
14 févr. 2006 à 22:50
Héhé, je me suis fait doubler, :D

www.allpotes.ch: Photos, humour, vidéos, gags, ...

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
0
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 3
14 févr. 2006 à 22:51
<?php

    ob_start();

    echo 'test';

    header('location:page.php'); //le texte "test" a d&#233;j&#224; &#233;t&#233; envoy&#233; au navigateur, il y aura donc une erreur

    ob_end_flush();

?>


Le copier coller, s&#233;mall, il n'y aura justement pas d'erreur, non? :D

@++

R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 9
14 févr. 2006 à 22:53
ah merde je vais corriger lol merci, j'ai fait du copier-coller de ce que j'avais écrit plus haut effectivement ^^ mdr

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 9
14 févr. 2006 à 22:55
C'est corrigé merci :-)

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
0
nikoland Messages postés 47 Date d'inscription samedi 17 décembre 2005 Statut Membre Dernière intervention 14 décembre 2006
14 févr. 2006 à 22:56
Même en mettant :
<?php
    // on ouvre la session
    session_start() ;
    ...
?>


sur ma vraie page index.php (celle qui appelle le code ci-dessus se trouvant dans body.php), eh bien ça merdouille :


Warning: session_start(): Cannot send session cookie - headers
already sent by (output started at c:\program
files\easyphp1-8\www\cms\index.php:1) in c:\program files\easyphp1-8\www\cms\index.php on line 3



Warning: session_start(): Cannot send session cache limiter -
headers already sent (output started at c:\program
files\easyphp1-8\www\cms\index.php:1) in c:\program files\easyphp1-8\www\cms\index.php on line 3

une idée ?
Nikö
0
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 3
14 févr. 2006 à 22:57
Np! J'ai découvert un new site sympa, comme ca, :D

www.allpotes.ch: Photos, humour, vidéos, gags, ...

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
0
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 3
14 févr. 2006 à 22:58
Hum... Ton fichier body.php est inclu par ton fichier index.php qui contient une sortie avant l'inclusion?

@++

R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
0
nikoland Messages postés 47 Date d'inscription samedi 17 décembre 2005 Statut Membre Dernière intervention 14 décembre 2006
14 févr. 2006 à 23:01
bah en fait, mon index.php commence par
<?php
// on ouvre la session
session_start() ;
...

puis fait plusieurs require, dont mon body.php, ainsi que la déclaration doctype xhtml...

Nikö
0
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 3
15 févr. 2006 à 08:58
Bizarre!
Bon aucune sortie ne doit être faite par n'importe quel fichier appelé avant. De plus, il ne faut qu'un seul session_start ( pas un dans index et un dans body )

@++

R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
0
nikoland Messages postés 47 Date d'inscription samedi 17 décembre 2005 Statut Membre Dernière intervention 14 décembre 2006
15 févr. 2006 à 09:04
Aucune idée alors ?

Argh, je viens d'essayer sur mon serveur et ça déconne aussi !

Nikö
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
15 févr. 2006 à 09:28
Je suis certain qu'il y a un saut de ligne, ou un espace, avant ton session_start ().
Utilise un éditeur genre textpad, et affiche les caractères spéciaux.
0
nikoland Messages postés 47 Date d'inscription samedi 17 décembre 2005 Statut Membre Dernière intervention 14 décembre 2006
15 févr. 2006 à 09:30
<?php
    // on ouvre la session
    session_start() ;
    /* inclusion des fichiers n&#233;c&#233;ssaires */
    require('include/config.php') ;
    require('include/fonctions.php') ;
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo($langue) ; ?>" lang="<?php echo($langue) ; ?>">
    <?php
        /* inclusion du fichier contenant le tag <head></head> */
        require('include/head.php') ;
        /* inclusion du fichier model edes pages contenant toute le tag  */
        require('template/'.$template.'/body.php') ;    
    ?>
</html>


Voila à quoi ressemble mon fichier index.php.
Je ne sais pas pourquoi mais je n'ai plus qu'un seul message d'erreur désormais :


Warning: session_start(): Cannot send session cache limiter -
headers already sent (output started at c:\program
files\easyphp1-8\www\cms\index.php:1) in c:\program files\easyphp1-8\www\cms\index.php on line 3

Nikö
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
15 févr. 2006 à 10:37
Je maintiens que tu devrais afficher les caractères spéciaux invisibles dans ce fichier. Tu verrais que tu as un saut de ligne ou un espace, ou une tabulatrion, avec le session_start () quelquepart.
0
nikoland Messages postés 47 Date d'inscription samedi 17 décembre 2005 Statut Membre Dernière intervention 14 décembre 2006
15 févr. 2006 à 12:43
avant la balise php, je n'ai rien ! j'en suis sur parce que le < de
la balise est le premier caractere. si cest bien de ce dont tu parles.
je verifierai chez moi ce soir quand meme.



Merci

Nikö
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
15 févr. 2006 à 12:48
J'ai pas dit avant la balise php, mais avant le session_start ().
vérifie, tu verras ;-) Affiche les caractères invisibles, il y en a 1 qui traîne.
0
nikoland Messages postés 47 Date d'inscription samedi 17 décembre 2005 Statut Membre Dernière intervention 14 décembre 2006
15 févr. 2006 à 18:19
Bon, bah j'ai modifié mon code !!!
Il est exactement comme suit (index.php) donc je n'ai plus de caractères entre la balise php et le session_start excepte le retour à la ligne.

Is it good ?

<?php
session_start() ;
// ouverture de la session
...


J'ai testé en local et j'ai toujours le message d'erreur...
Nikö
0