Votre question

Probleme avec session_start();

Tags :
  • Echo
  • Programmation
Dernière réponse : dans Programmation
26 Septembre 2006 19:15:16

Bonjour,
voila je suis entrain de faire la section admin de mon site.
J'ai donc fait un system de connection , et un system de vérification :
  1. <?
  2. session_start();
  3.  
  4. /*
  5. si la variable de session login n'existe pas cela siginifie que le visiteur
  6. n'a pas de session ouverte, il n'est donc pas logué ni autorisé à
  7. acceder à l'espace membres
  8. */
  9. if(!isset($_SESSION['login'])) {
  10. echo 'Vous n\'êtes pas autoris´ à acceder à cette zone';
  11. echo '<a href="../index.php">Retour</a>';
  12. exit;
  13. }
  14. elseif(isset($_SESSION['login']) AND isset($_SESSION['lvl']))
  15. {
  16. if($_SESSION['lvl'] == 9)
  17. {
  18. echo 'Bienvenu '.$_SESSION['login'].'';
  19. }
  20. }
  21. ?>

Je l'ai incorporé dans mon site (avec la fonction include)
et voila se que j'obtient :
[code]
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:\documents and settings\***********\admin\admin.php:1) in c:\documents and settings\*******************\admin\admin.php on line 2
[code]

Autres pages sur : probleme session start

a c 145 L Programmation
26 Septembre 2006 19:19:28

c'est simplement qu'un affichage est fait avant ton include.
26 Septembre 2006 19:35:23

Ui le code html du kit graphique , sa vien de sa ??
Contenus similaires
26 Septembre 2006 19:38:14

Jai essayer de mettre mon code avant le code du kit mais toujours le meme probleme ?
26 Septembre 2006 19:44:14

Il n'y a pas un moyen d'éviter qu'il affiche l'erreur , car tout marche bien ,il y a juste se message qui s'affiche
a c 145 L Programmation
26 Septembre 2006 22:52:26

il y a moyen avec le error_reporting, mais il vaut mieux corriger à fond: il suffit que ton include soit la première ligne du fichier de plus haut niveau (par exemple index.php)
27 Septembre 2006 00:57:24

si tu ne corrige pas l'erreur, le script ne fonctionera pas quand meme ...

Le header doit etre placé avant tout envoie d'affichage au navigateur.
27 Septembre 2006 13:51:09

Euh et bien mon code fait sa :
  1. 1 <?
  2. 2 session_start();
  3. 3 ?>
  4. 4 [code html]

Donc je pense pas que sa vienne de mon header ?
Merci
27 Septembre 2006 14:08:10

mais si tu inclus ton fichier dans lequel se trouve ton session_start() dans ton index , ca ne sera jamais la première ligne de code :/  .

<? session_start();?> doit se trouver en première ligne de ton index.php
27 Septembre 2006 14:25:58

Euh lol sa peu peu etre venir du faite que je test mon script en local non ? car la je vien de le mettre sur ifrance et ya pas d'erreur ?
a c 145 L Programmation
27 Septembre 2006 15:24:15

je pense plutôt que ifrance n'affiche pas les warning...
27 Septembre 2006 16:29:43

Si tu as un probleme d'header avec :

<?php
session_start ...

?>

verifie qu'entre <?php et la ligne du session_start que tu n'ai pas d'espace.
a c 145 L Programmation
27 Septembre 2006 16:44:24

rien à voir: s'il n'y a pas un echo ou un print, les espaces dans le code ne sont pas interprétés
27 Septembre 2006 17:44:16

la tu te trompe, met un espace apres la balise <?php t un header en dessous ... ché moi ca provoque une erreur ducoup je fais attention
27 Septembre 2006 19:53:01

Ok merci je vais voir sa
a c 145 L Programmation
27 Septembre 2006 21:10:28

okinou a dit :
la tu te trompe, met un espace apres la balise <?php t un header en dessous ... ché moi ca provoque une erreur ducoup je fais attention


on va dire ça, je me trompe...
pour info, je suis développeur web, je me sert fréquemment des sessions, alors je pense que tous mes serveurs sont mal configurés, j'ai du compiler chaque fois php avec l'option --ignore-stupid-spaces sans m'en rendre compte... la force de l'habitude je présume :p 
28 Septembre 2006 00:05:48

cher Crazy ...
Ne prend pas la grosse tete et à te croire supérieur aux propos des autres.

Bien que ce que tu dis, et je le confirme, n'en est pas la cause, l'affirmation que j'ai faite à tout simplement été vécue de mon coté, bien que cela ne soit pas du tout récent et que la configuration serveur à du y joué. De plus, je n'avais pas re-testé juste avant de poster cette remarque, tu es entierement libre de croire ce que tu veux et de me juger sur mon propos ( pour info j'en ai rien à foutre) mais je peux t'assuré que je n'ai pas perdu mon temps à poster une réponse fausse et debil, mais qui à eu pour but uniquement de l'aider.

alors merci de t'abstenir avec ce genre de remarque ou tu prend les personne de haut car pour info tu n'es pas le seul dev web.

a bon entendeur.
a c 145 L Programmation
28 Septembre 2006 09:02:01

tout d'abord je ne t'ai pas jugé (ou alors même en relisant je n'arrive pas à voir où) et je ne prend pas la grosse tête, je signale juste que ce que tu dis est un cas qui à environ 0.1% de chances d'arriver et que je n'ai jamais rencontré, sachant qu'il m'arrive de lancer des session_start() très profondémment dans le code et que jamais le code précédent cet appel n'a provoqué d'erreur, ni même les espaces.

Le seul risque réel est un (ou des) espace(s) *avant* la balise <?php
28 Septembre 2006 12:33:44

exact, et je n'ai pas voulu "réagir" dans le sens ou ce que tu disais était faux loin de la, puisque tu as entierement raison, mais ce que j'ai évoqué m'est arrivé, je suis generalement attiré par toute les bizarerie en tout genre sur lesquels on ne devrait pas tombé, meme si les probabilité sont de 0,001% :p 
28 Septembre 2006 12:38:53

okinou a dit :
[snip]je suis generalement attiré par toute les bizarerie en tout genre sur lesquels on ne devrait pas tombé, meme si les probabilité sont de 0,001% :p 

Ca, c'est l'informatique...
Ca marche jamais...
a c 145 L Programmation
28 Septembre 2006 15:20:28

Loi de murphy appliquée à l'informatique:
L'erreur est humaine, il faut un ordinateur pour provoquer une catastrophe
28 Septembre 2006 15:30:49

Si tu utilises la fonction include et que tu as déja démarer ta session
dans index.php par exemple
et que tu inclues page1.php et qu'au début de celle-ci il y a également un
session_start(), je pense que ça fait tout sauter.

Alors ce que je ferais à ta place dans le doute, c'est que tu mettes session_start();// au début de ton index et
un @ devant

soit @session_start();// dans page1.php

Je suis pas sur que cette solution plaise à tout le monde mais au moins elle fonctionneras, en plus ça te permettras non seulement de l'inclure dans ta page sans erreurs, mais en plus de pouvoir accéder à cette page sans l'inclure mais directement en l'affichant et de pouvoir garder tes variables sessions.
28 Septembre 2006 18:00:39

Ok merci je vai essayer ^^
29 Septembre 2006 20:58:10

J'ai trouvé ! lol , fallai que je mette
  1. <?php
  2. session_tart();

et pas
  1. <?
  2. sesssion_start

^^
Merci
a c 145 L Programmation
29 Septembre 2006 22:00:09

je pense qu'il veut dire que les short_tags ne sont pas activés...
29 Septembre 2006 22:00:56

si tu oublie les () et le ; c'est normal !!!
30 Septembre 2006 09:11:41

j'avai oublier php après <?
30 Septembre 2006 09:12:24

et pas le () ,sa c'est une erreur dans mon post ^^
1 Octobre 2006 14:21:18

tu peux te passer du php si les short-tag sont activé
4 Octobre 2006 13:17:54

Ok enfin avec php sa marche et sans php sa marche pas donc les short_tag doivent pas etre activés ^^
Merci
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS