2011-03-09 4 views
0

J'ai quatre fichiers.Smarty Sesssion Variable Problème

1. index.php 
2. index.tpl 
3. file2.php 
4. file2.tp 

Je suis en train une variable de session dans index.php comme ce

$_SESSION['isVisible'] = true; 

Je suis accès à cette variable dans file2.php comme ce

echo ($_SESSION['isVisible']); 

mais il n'a pas travail.

Je ne démarre pas la session manuellement car je pense que la session est déjà démarrée par Smarty.

Une idée comment puis-je accéder à cette variable?

Répondre

1

Voici un petit extrait pour vous aider à détecter si une session a été commencé ou non,

Ne pas oublier, ainsi qu'une session initialisée avec session_start ne sera disponible aux pages dans l'arborescence des répertoires de la page ce premier l'a créé.

Il pourrait expliquer pourquoi Smarty utilise une autre id_session que votre script en cours ...

function session_is_started() { 
    if (isset($_SESSION)) { 
     return true; 
    } else { 
     return false; 
    } 
} 

if (!session_is_started()){ 
    session_start(); 
    $_SESSION['isVisible'] = true; 
} 

echo $_SESSION['isVisible']; 
+0

Warning: session_start() [function.session-start]: open() a échoué: Aucun fichier ou répertoire (2) in index.php sur la ligne 17 Attention: session_start() [fonction.session-start]: Impossible d'envoyer les cookies de session - les en-têtes déjà envoyés par (sortie démarrée à index.php: 17) dans index.php sur la ligne 17 Attention: session_start() [function.session-start]: Impossible d'envoyer le limiteur de cache de session - les en-têtes déjà envoyés (sortie démarrée à index.php: 17) dans index.php sur la ligne 17 – qwera

+0

@Zahid s index.php autour de la ligne 17 et le fichier où vous démarrez la session. Vous devez exécuter le code session_start avant la ligne 17 dans index.php mais sans voir les fichiers je ne sais pas où vous devriez le mettre. – Belinda

+0

Ne serait-il pas plus simple d'utiliser isset ($ _ SESSION) lors de la vérification de la session au lieu de créer une fonction pour cela? – AntonioCS