PHP problème session start ()
zatox
Messages postés
663
Statut
Membre
-
zatox Messages postés 663 Statut Membre -
zatox Messages postés 663 Statut Membre -
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.
<?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:
- PHP problème session start ()
- Easy php - Télécharger - Divers Web & Internet
- One start c'est quoi ✓ - Forum Navigateur
- Www.yahoomail.com ouverture de session ✓ - Forum Yahoo mail
- Expert php pinterest - Télécharger - Langages
- Start pxe over ipv4 - Forum Windows 10
2 réponses
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 !
C'est juste une suggestion, ça ne changera ptet rien !
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.
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.