Inclusion et sessions... conception à revoir?

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 : Inclusion et sessions... conception à revoir?

par skystef » 24 avr. 2006, 17:06

ou sinon, je pense que tu peux faire autre chose, comme ça:
<?php

  if(!isset($_GET['page'])){
    //pas de session_start() parcequ'il yen a pas besoin (je sais pas j'imagine)
    include('accueil.php');//enlevre le session_start() de ce fichier
    }
   
    else {
      if(file_exists($_GET['page'])){
        //page qui a besoin des sessions
        session_start();
        include($_GET['page']);//enlevre le session_start() de ce fichier
        }
       
        else{
          echo ("<h3>Cette page n'existe pas!</h3>");
          }
      }
      ?>

non car j'ai du html avant... ça ne fonctionne pas. Mais j'ai réussi à me débrouiller en mettant le session_start tout en haut de ma page. c'est un peu du bricolage mais pour ce que je veux faire ça fonctionne et ça suffit.
Cela m'oblige à créer une session à chaque fois que l'on arrive sur ce site, je ne pense pas que cela soit gênant...

par Invité » 24 avr. 2006, 15:16

ou sinon, je pense que tu peux faire autre chose, comme ça:
<?php

  if(!isset($_GET['page'])){
    //pas de session_start() parcequ'il yen a pas besoin (je sais pas j'imagine)
    include('accueil.php');//enlevre le session_start() de ce fichier
    }
   
    else {
      if(file_exists($_GET['page'])){
        //page qui a besoin des sessions
        session_start();
        include($_GET['page']);//enlevre le session_start() de ce fichier
        }
       
        else{
          echo ("<h3>Cette page n'existe pas!</h3>");
          }
      }
      ?>

par skystef » 24 avr. 2006, 14:10

la meilleure solution c'est de changer de place la fonction session_start() ( au moins pour les sessions, pour les cookies je sais pas faire...
moi je ferait comme ça:
<?php
session_start();
 
  if(!isset($_GET['page'])){
    include('accueil.php');//enlevre le session_start() de ce fichier
    }
   
    else {
      if(file_exists($_GET['page'])){
        include($_GET['page']);//enlevre le session_start() de ce fichier
        }
       
        else{
          echo ("<h3>Cette page n'existe pas!</h3>");
          }
      }
      ?> 
En gros j'ai une session en permanence alors?

par jojolapine » 24 avr. 2006, 12:48

la meilleure solution c'est de changer de place la fonction session_start() ( au moins pour les sessions, pour les cookies je sais pas faire...
moi je ferait comme ça:
<?php
session_start();
 
  if(!isset($_GET['page'])){
    include('accueil.php');//enlevre le session_start() de ce fichier
    }
   
    else {
      if(file_exists($_GET['page'])){
        include($_GET['page']);//enlevre le session_start() de ce fichier
        }
       
        else{
          echo ("<h3>Cette page n'existe pas!</h3>");
          }
      }
      ?> 

Inclusion et sessions... conception à revoir?

par skystef » 24 avr. 2006, 10:56

Bonjour,

Encore un problème en ce lundi matin. J'espère le dernier.

Je suis toujours sur mon put*** de site et cette fois-çi c'est l'architecture qui pose problème.

J'ai une page statique qui inclue dans une zone un script qui charge dynamiquement une autre page. Voici le code de la partie "centrale" :

Code : Tout sélectionner

<?php if(!isset($_GET['page'])){ include('accueil.php'); } else { if(file_exists($_GET['page'])){ include($_GET['page']); } else{ echo ("<h3>Cette page n'existe pas!</h3>"); } } ?>
Index.php inclue donc acceuil.php par défaut etc... Pour l'instant aucun problème sauf pour créer des sessions. Comme il y a du code html dans index.php, si toto.php veut créer une session et qu'elle est incluse dans index.php ça ne fonctionne pas. Idem pour les cookies.


Image

Quelle serait la meilleure solution pour résoudre ce problème?
merci,