Session _start sur toutes les pages?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Session _start sur toutes les pages?

par speccy666 » 15 janv. 2008, 00:56

J'ai trouvé... c'était l'horreur!

un simple espace après <?php sans doute interprété comme une sortie placée avant le session_start....

Je vous jure des fois???!!!!

Merci à vous.

par Xenon_54 » 15 janv. 2008, 00:14

par Genova » 15 janv. 2008, 00:13

Bonsoir,
ton session_start() doit être exécuté tout en haut du script, avant les envoies de HTML au navigateur (avant les echo ou print par exemple).

par speccy666 » 15 janv. 2008, 00:01

par contre, gros pb! il me semble que mon code est bon mais j'obtiens l'erreur suivante qui s'affiche 2 fois ?? :

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at F:\MesApplications\SOFTS WEB\wamp\www\TESTS\QuestarOnline\index.php:2) in F:\MesApplications\SOFTS WEB\wamp\www\TESTS\QuestarOnline\index.php on line 3

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at F:\MesApplications\SOFTS WEB\wamp\www\TESTS\QuestarOnline\index.php:2) in F:\MesApplications\SOFTS WEB\wamp\www\TESTS\QuestarOnline\index.php on line 3


C'est la page d'accueil de mon site dont le fichier est nommé index.php.
J'ai désactivé mes INCLUDE pour vérifier l'erreur, donc le pb semble venir de ce code uniquement.
Qui a une idée?
<?php 
session_start();
//include("page de base HAUT.php")
?>
      <!-- Le corps -->
 
       <div id="corps">
           <h1>Aidez moi à poursuivre ce site par un don</h1>
       
           <p>
               Bienvenue sur mon super site !<br />
               Vous allez adorer ici, c'est un site génial qui va parler de... heu... Je cherche encore un peu le thème de mon site :-D
           </p>
       
           <h2>A qui s'adresse ce site ?</h2>    
           <p>
               A tout le monde ! Si je commence à privilégier certaines personnes, on va m'accuser de discrimination ;o)<br />
               Que vous soyez fans de fusils à pulsion plasma ou de Barbie et Ken, ce site est fait pour vous ! Si si !
           </p>
           
           <h2>L'auteur</h2>    
           <p>
               L'auteur du site ? Bah, c'est moi, quelle question :-p<br />
               Je vais essayer de faire le meilleur site du monde (ça doit pas être bien compliqué). Mon objectif est d'attirer un maximum de visiteurs, de les rendre accros à mon site, puis de les mettre en mon pouvoir.<br />
               Je prendrai ensuite le contrôle du Monde. Une fois que ce sera fait, j'irai explorer les confins de l'Univers à la recherche de nouveaux peuples à soumettre à ma terrible puissance. MooUUuUuuUAhahHaaAhAAaaah !!! (rire diabolique).
           </p>
       </div>
<?php //include("page de base BAS.php") ?>
[/b]

par AB » 14 janv. 2008, 23:55

Merci! c'est clair! donc il vaut mieux faire un session_start sur toutes les pages alors si j'ai bien compris.
Excepté sur les pages où tu n'utilises pas de variables de sessions. En reprenant l'exemple plus haut, après avoir utilisé ou modifié la variable de session dans la page B tu pourras la retrouver dans toutes les pages qui ont session_start() même si entre temps tu es passé sur des pages sans session_start().

Tu peux donc mélanger sans problème des pages purement html avec des pages PHP sans session_star() et des pages PHP avec session_star(). Mais seules les pages avec session_start() pourront récupérer les variables de sessions.

par speccy666 » 14 janv. 2008, 23:39

Merci! c'est clair! donc il vaut mieux faire un session_start sur toutes les pages alors si j'ai bien compris.

par AB » 14 janv. 2008, 23:27

Tu dois mettre session_start(); sur toutes les pages où tu veux pouvoir utiliser tes variables de session.

En d'autres termes, si tu définis une variable de session ex
$_SESSION['ma_variable'] = 'test';
dans une page A tu dois faire session_start() sur la page B pour pouvoir accéder à cette valeur depuis la page B

Session _start sur toutes les pages?

par speccy666 » 14 janv. 2008, 23:13

Une petite question de fond : dois je faire un session_start en début de chaque page de mon site si j'ai 3 pages sur mon site ...?

sous entendu, est que le deuxième session start ne va pas écraser les variables éventuellement déclarées sur une autre page?

Puis je faire un session start sur une page annexe(inscrip.php) après validation de mon formulaire d'inscription (avant le code HTML bien sur) et retourner à la page d'accueil ensuite(index.php) ?

Merci.