Bonjour,

J'ai un problème avec $_SESSION.

J'utilise le principe de pagination que j'ai appris sur GrafikArt.fr, à savoir mettre un <?php echo $content; ?> au centre de mon template.php

Je tente de réaliser un système de language, Français / Anglais.

La session est lancée sur mon fichier template, tout marche.

<?php 
session_start(); 
if(isset($_GET'langue']) && $_GET'langue']!=''){ 
 $_SESSION'langue'] = $_GET'langue']; // S'il y a un langage définit, alors on le récupère
} 
if( !isset($_SESSION'langue']) || $_SESSION'langue']==''){ 
 $_SESSION'langue'] = "fr"; // S'il n'y a pas de langage définit, alors c'est en francais
}
$FR = $_SESSION'langue'] == 'fr';
?>

Ensuite je n'ai plus qu'a faire:

<?php if($FR){echo 'Accueil';} else{echo 'Home';} ?>

Et ainsi de suite...

Maintenant quand je veux faire un changement de langue sur une page qui est en include sur mon fichier template, il y'a un problème. En faite, le truc marche mais j'ai un message d'erreur.

Soit:

  • Je refait un session_start(); sur mon index.php par exemple(compris dans le template.php) et alors il m'affiche : Notice: A session had already been started - ignoring session_start() in C:\wamp\www\agence\template.php on line 2

Soit:

  • Je l'enlève et alors il m'est affiché: Notice: Undefined variable: _SESSION in C:\wamp\www\agence\pages\index.php on line 7

Je vous met le début de mon code sur mon fichier index.php:

<?php 
if(isset($_GET'langue']) && $_GET'langue']!=''){ 
 $_SESSION'langue'] = $_GET'langue']; // S'il y a un langage définit, alors on le récupère
} 
$FR = $_SESSION'langue'] == 'fr';
?>

Mais sinon le truc marche à part l'erreur, je ne comprend pas ...

3 réponses


Kboirel
Auteur
Réponse acceptée

Désolé d'avoir dérangé, j'ai trouvé la solution.

En faite cela était du au fichier index.php à la racine de mon site, le template.php est include après la page courante, du coup la session était définie après que la page courante soie affiché et ca ne peut donc évidement pas marcher...

Par contre ce serait pas mieux les cookies dans ton cas?

Kboirel
Auteur

Mouai ça revient au même ou presque ...Au pire l'utilisateur n'a qu'a cliquer sur un bouton et il perd 2 secondes...
Et puis s'il n'accepte pas les cookies ca peut poser plus de problème ... ^^