Problème de variables PHP session et session start

Pagou

New Member
#1
Bonjour,
j'utilise des variables de session, de façon très classique, pour mon site web (par exemple
Code:
$_SESSION['pseudo']
. Sur mon ex Hebergeur cela fonctionnait (et fonctionne toujours) mais depuis que j'ai installé mon site sur Planethoster ces variables sont vides et session_start ne fonctionne pas.
J'ai réécris un code très simple pour valider le fonctionnement des variables de session et en fait il s'avère que sur la page cible, les variables sont vides.
Quelqu'un a-t-il déjà eu ce problème ?
 

Pagou

New Member
#3
Bonjour Marc,
Je suis sur une offre gratuite donc pas de support technique. C'est la réponse qui m'a été faite...
 
#5
Bonjour,
j'utilise des variables de session, de façon très classique, pour mon site web (par exemple
Code:
$_SESSION['pseudo']
. Sur mon ex Hebergeur cela fonctionnait (et fonctionne toujours) mais depuis que j'ai installé mon site sur Planethoster ces variables sont vides et session_start ne fonctionne pas.
J'ai réécris un code très simple pour valider le fonctionnement des variables de session et en fait il s'avère que sur la page cible, les variables sont vides.
Quelqu'un a-t-il déjà eu ce problème ?
Je pense aussi que le problème se trouve au niveau de ton code. Les sessions php fonctionnent bien sur WordLite.
 

Pagou

New Member
#6
Bonjour et merci pour votre aide.

Ci-après un premier fichier : "indexpl"

Code:
<?php
session_start();
$_SESSION['nom']=$_POST['nom'];
$_SESSION['prenom']="Pascal";
if(!empty($_SESSION['nom']))
        {
            header('Location:membre/traitpl.php');
                            exit();
        }
?>
<html lang="fr">
    <head>
        <meta http-equiv="Content-Type" content="text/html;charset=utf8" />
        <title>Index session</title>
            
            <style type="text/css">   
            </style>
    </head>       

    <body>   
            <form method="post" action="indexpl.php">   
                Nom :  <input name="nom" value="" placeholder="Nom" required="" type="text"><br>
                        
                        <input name="valider" value="Valider" type="submit">

            </form>
    </body>
</html>
Qui renvoie vers un second : "traitpl" du dossier membre :


Code:
<?php
session_start();
    echo "Nom membre : ",$_SESSION['nom'],"<br>";
    
    echo "Prenom membre : ",$_SESSION['prenom'];
?>
Chez mon ex-hebergeur, ça fonctionne, on obtient ça :

Nom membre : Pagou
Prenom membre : Pascal


Chez Planethoster :

Nom membre :
Prenom membre :


Et en ajoutant un phpinfo(); j'obtiens pour le paragraphe session :

session.png

Que faire ?

A+

Pascal
 
#7
Je n'ai pas encore essayé ton code mais je pense que si tu le modifie un peu, tu trouvera la source du problème.
1- Teste d'abord l'existence des variables avant de les affecter (avant $_SESSION['nom']=$_POST['nom']; par exemple)
2- N'oublie pas de fermer la session avant de ré-exécuter à nouveau tes scripts
 

Pagou

New Member
#8
Bonjour,
J'ai fait une vérification de l'existence de
Code:
$_POST['nom']
. La variable passe bien vers la page de destination.
Par contre le session id est perdu en passant sur la page de destination.
Voici le code et le résultat :

Pour l'index :

Code:
<?php
session_start();
   
    $_SESSION['prenom']="Pascal";
   
    echo 'session_id : ',session_id(),"<br>";
    echo 'session_prenom : ',$_SESSION['prenom'],"<br>";
?>
<!DOCTYPE html>
<html lang="fr">
    <head>
        <meta http-equiv="Content-Type" content="text/html;charset=utf8" />
        <title>Index session</title>
           
            <style type="text/css">  
            </style>
    </head>      

    <body>  
            <form method="post" action="membre/traitpl.php">  
                Nom :  <input name="nom" value="" placeholder="Nom" required="" type="text" ><br>
                       
                        <input name="valider" value="Valider" type="submit">

            </form>
    </body>
</html>
résultat sur Planethoster :
1589208571712.png
sur mon exhébergeur :
1589208627459.png
Chez les deux hébergeurs le session id est bien généré et la variable SESSION prenom prend bien la valeur "Pascal".



Pour le traitement :

Code:
<?php
session_start();

    $_SESSION['nom']=$_POST['nom'];
   
    echo 'Nom membre : ',$_SESSION['nom'],"<br>";
    echo 'session_id : ',session_id(),"<br>";
    echo 'Nom membre : ',$_POST['nom'],"<br>";
    echo 'Prenom membre : ',$_SESSION['prenom'],"<br>";

   
session_destroy();
session_unset();
    echo 'après session_destroy et session_unset',"<br>";
    echo 'Nom membre : ',$_SESSION['nom'],"<br>";
    echo 'session_id : ',session_id(),"<br>";
if (empty(session_id()))
{
    echo 'session_id : VIDE',"<br>";
}  
?>
résultat sur Planethoster :
1589209290643.png

sur mon exhébergeur :
1589208985475.png

On remarque que le session id est perdu sur Planethoster. Mais si je reviens sur l'adresse "indexpl.php" le session id est toujours le même.
Par ailleurs je ne comprend pas pourquoi le session unset ne vide pas toutes les variables de session.

Qu'en pensez-vous ? des idées ?

Merci à vous,

Pascal
PS, je n'ai pas trouvé la coloration syntaxique. Existe-t-elle?
 

Fichiers joints

Haut