PHP problème session start ()

Fermé
zatox Messages postés 640 Date d'inscription samedi 17 février 2007 Statut Membre Dernière intervention 26 juin 2020 - 17 mars 2009 à 00:09
zatox Messages postés 640 Date d'inscription samedi 17 février 2007 Statut Membre Dernière intervention 26 juin 2020 - 17 mars 2009 à 09:41
Bonjour, sur toutes les pages de mon site je commence par un session start comme ceci:
<?php
session_start();
?>
Sur index.php l'utilisateur a le choix de plusieurs thèmes. J'ai écris plusieurs fichiers css et en fonction du choix de l'utilisateur on utilise tel ou tel theme.
<style type="text/css">
<?php
include "css/" . $choix_theme . ".css";
?>

Une fois que l'utilisateur a choisi son thème il peut aller sur n'importe quelle page, il utilise sur toutes les pages le thème choisi au départ. Quand il revient sur la page de départ (index.php) il utilise le thème choisi précédemment et peut s'il le désire changer de thème. Tout ceci marche très bien en local, je récupère le choix du thèeme par $_SESSION['choix_theme'] sur n'importe quelle page. Par contre sur mon hébergeur (free espace perso) tout marche bien également sauf quand je reviens sur index.php là j'ai perdu le thème choisi au départ, il réagit comme si $_SESSION['choix_theme'] n'exixtait plus et comme par défault je positionne le choix numéro 1 lorsque je retourne de n'importe quelle page à index.php, ça ne marche pas $_SESSION['choix_theme'] n'est plus présent et j'utilise le theme par défault. Quelqu'un aurait-il une idée ? le start session étant décleché sur chaque page, je devrais pouvoir récupérer toutes les variables $_SESSION et en l'occurence $_SESSION['choix_theme'], comment expliquer que ça marche en local sur mon disque et pas chez mon hébergeur ? uniquement le passage d'une page quelconque vers index.php ne fonctionne pas. Merci pour vos réponses.
A voir également:

2 réponses

IpIpIpIpOne Messages postés 436 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 24 mai 2009 116
17 mars 2009 à 00:14
Ami Terrien, tente peut-être de mettre " session_name('nom_de_ton_site'); " avant tes " session_start(); " ?

C'est juste une suggestion, ça ne changera ptet rien !
0
zatox Messages postés 640 Date d'inscription samedi 17 février 2007 Statut Membre Dernière intervention 26 juin 2020 66
17 mars 2009 à 09:41
Bonjour et merci pour ta réponse, j'ai essayé de mettre session_name comme tu me le dis mais ça ne change rien. Par contre j'ai un autre élément à savoir que j'ai transféré mon site chez un autre hébergeur (en l'occurrence sur les pages perso de mon FAI qui est neuf) et là ça marche !!!!! j'en conclu donc qu'il s'agit d'un problème au niveau de l'hébergeur, chez free quand je reviens sur ma page index.php je pense que je dois me retrouver dans une nouvelle session et je repars avec le thème par défault. Par contre j'aurai bien aimé résoudre ce problème quel que soit l'hébergeur car pour le moment mon site se trouve chez des hébergeur gratuits afin de le tester mais si on doit coder du php en fonction de l'hébergeur chez qui on met le site, ça devient un peu compliqué. Qu'en pensez-vous ?
De plus, hier soir après avoir monté mon site sur les pages perso de neuf, je me suis aperçu d'un autre problème concernant l'accès aux bases de données. En effet, dans mon php voici ce que j'avais codé:

if ($_SERVER["SERVER_NAME"] == "localhost")
{
mysql_connect("localhost", "root", "");
}
else
{
mysql_connect("localhost", "nom_de_ma_base_sur_free", "mot_de_passe");
}
mysql_select_db("nom_de_ma_base_sur_free");

Comme à priori sur neuf je ne peux pas donner le nom de ma base, j'ai un nom imposé donc là aussi ça plante, et je dois faire un codage particulier pour chaque hébergeur. Quand je vais monter mon site chez un hébergeur (disons définitif), je vais encore peut-être devoir recoder si toutefois le nom de la base est imposé. Qu'en pensez-vous ? y-a-t-il un moyen plus souple ? peut-on coder avec une variable dans
mysql_connect("localhost", variable_contenant_nom_de_la_base , "mot_de_passe"); et dans ce cas il faut récupérer le sever_name afin de mettre ce qu'il faut dans cette variable suivant qu'on est sur free sur neuf ou autre !!!!
Merci pour vosréponses.
0