Se connecter avec
S'enregistrer | Connectez-vous

Probleme avec session_start();

Dernière réponse : dans Programmation

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

Lassé par la pub ? Créez un compte

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 
Expert Programmation

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.

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
Expert Programmation

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 

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.
Lassé par la pub ? Créez un compte
Tom's guide dans le monde