Prb pour conserver une session en PHP
themoz
Messages postés
1
Statut
Membre
-
gryzzly Messages postés 5220 Statut Contributeur -
gryzzly Messages postés 5220 Statut Contributeur -
Bonjour,
Je suis en train de finaliser un extranet. Toute l'application fonctionne uniquement sur une page index.php.
Dès le départ, j'initialise une session avec session_start. Je m'identifie et quand je suis reconnu comme membre, on affiche la page d'accueil de l'extranet. Jusque là tout va bien. Puis quand je clique sur un lien pour aller sur une autre page de l'extranet. il revient au formulaire d'inscription. Il faut alors que je me reconnecte pour que la session soit conservée.
J'ai fait afficher l'id de la session tout du long et je retrouve bien le même id sur la page avec le formulaire d'identification, puis sur la page d'accueil. En revanche, dès que je clique sur une page, j'ai un nouvel id de session. je n'arrive pas à comprendre pourquoi la session n'est pas conservée.
Avez-vous une idée ?
Voici le script de ma page index.php
Et ma fonction qui créé les variables de session
Je suis en train de finaliser un extranet. Toute l'application fonctionne uniquement sur une page index.php.
Dès le départ, j'initialise une session avec session_start. Je m'identifie et quand je suis reconnu comme membre, on affiche la page d'accueil de l'extranet. Jusque là tout va bien. Puis quand je clique sur un lien pour aller sur une autre page de l'extranet. il revient au formulaire d'inscription. Il faut alors que je me reconnecte pour que la session soit conservée.
J'ai fait afficher l'id de la session tout du long et je retrouve bien le même id sur la page avec le formulaire d'identification, puis sur la page d'accueil. En revanche, dès que je clique sur une page, j'ai un nouvel id de session. je n'arrive pas à comprendre pourquoi la session n'est pas conservée.
Avez-vous une idée ?
Voici le script de ma page index.php
session_start();
// On intègre tous les fichiers de configuration
define("URL_PARAMETRES","parametres-sm");
require ("fichiers_conf.php");
// On récupère les variables communiquées par l'url
$var_url = parse_str($_SERVER['QUERY_STRING'],$output);
$section = $output['sec'];
$action = $output['act'];
$item = $output['id'];
$affichage = $output['aff'];
$upload_media = $output['upl'];
$action_serveur = $output['ser'];
$media = $output['med'];
/*
On contrôle s'il existe une session d'identification
On contrôle que cette session n'est pas vide
On contrôle que cette session a bien été ouverte
Si tout est ok, on affiche une page intérieure.
*/
if ( isset($_SESSION['ID_USER']) AND $_SESSION['ID_USER'] > 0 )
{
/*
On controle que l'utilsateur est bien autorisé à accéder à cette section.
Si oui, on affiche la page sans souci.
Si non, on revient à la page d'accueil.
*/
if ( !empty($action_serveur) )
{
echo templates_page_upl($upload_media,$action_serveur,$media);
}
else
{
if ( !empty($section) AND $tab_content[$section]['niveau_acces'] <= $_SESSION['NIVEAU_USER'] )
{
echo templates_page_admin($action,$item,$section,$affichage);
}
else
{
echo templates_page_admin("","","","");
}
}
/*
On met à jour le liste des flux RSS du site
Si un problème empèche la création des flux, un email est envoyé à l'administrateur du site
*/
if (!empty($tab_flux) AND generer_liste_flux_rss($tab_flux) == FALSE)
{
$To = EMAIL_ADMIN;
$Sujet = $phrase_gene['SujetEmailPrbRss'];
$Message = $phrase_gene['TextePrbEmailRss'].NOM_SITE;
$From = "From: Arnaud Meunier <arno_job@yahoo.fr>\n";
mail($To,$Sujet,$Message,$From);
}
}
/*
On contrôle que le formulaire d'identification a bien été envoyé
Si oui, on contrôle le login et le mot de passe.
Si l'utilisateur est reconnu, on l'enregistre dans le table "suivilog" et on recharge la page
Si l'utilisateur n'est pas reconnu, on affiche le formulaire d'identification avec le message d'erreur
*/
else if ( isset($_POST['login'])
AND !empty($_POST['login']) )
{
// enregistrement dans suivilog et variables session dans la fonction de controle
if (controle_identification($_POST['login'],$_POST['password']) == TRUE)
{
echo templates_page_admin("","","","");
}
else
{
echo templates_login($phrase_gene['VosIdentifiantsNonReconnus'],$_POST);
}
}
/*
Si on a aucune action en cours et de session ouverte, on affiche le formulaire d'identification
*/
else
{
$valeurs_form = array();
echo templates_login("",$valeurs_form);
exit();
}
Et ma fonction qui créé les variables de session
function controle_identification($login,$password)
{
$val = FALSE;
if ($login != "" AND $password != "")
{
connexion_base(SERVEUR,HOST,PASSWORD,BASE);
$requete = rq_existence_membre($login,$password);
$rs = mysql_query($requete) or die(mysql_error());
connexion_end();
if (mysql_num_rows($rs) > 0)
{
$row = mysql_fetch_array($rs);
$_SESSION['ID_USER'] = $row['ID'];
$_SESSION['LANGUE_USER'] = $row['Langue'];
$_SESSION['NIVEAU_USER'] = $row['Niveau'];
connexion_base(SERVEUR,HOST,PASSWORD,BASE);
$requete = rq_insert_suivilog($_SESSION['ID_USER'],$_SESSION['LANGUE_USER'],$_SESSION['NIVEAU_USER'],$_SERVER['REMOTE_ADDR']);
$rs = mysql_query($requete) or die();
connexion_end();
}
$val = TRUE;
}
return $val;
}
A voir également:
- Prb pour conserver une session en PHP
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Teamviewer code de session expiré ✓ - Forum logiciel systeme
- Www.yahoomail.com ouverture de session - Forum Yahoo mail
- Veuillez ouvrir une session avec les privilèges du gestionnaire ✓ - Forum Windows