[RESOLU] PHP 7 Utilisation de sessions

Eléphanteau du PHP | 16 Messages

12 déc. 2016, 12:27

Bonjour,

Afin de me familiariser avec l'utilisation de sessions j'ai créé un fichier page1.php et un fichier page2.php.
Dans le fichier page1.php, définition d’une session et affichage de celle-ci comme suivant :

page1.php
<?php
header('Content-type:text/html; charset=UTF-8');	// encodage UTF-8
session_start();
/*
if( session_id()=='' ){ session_start(); $message = 'session fonctionne'; }
else
{ $message = 'session ne fonctionne pas'; }
*/

// echo phpinfo(); // Vérification du fichier ini
//error_reporting(E_ALL); 	// en TEST !!
?>

<!DOCTYPE HTML>

<html>

<head>
    <!-- <meta http-equiv="content-type" content="text/html; charset=utf-8" /> -->
    <meta charset="utf-8">
    <meta name="author" content="" />
    <meta name="copyright" content="Le contenu de ce site est protégé par les droits d'auteur." />
    <meta name="description" content="Description complete"> 	<meta name="keywords" content="" />

    <title>CESSION page 1</title>
	
</head>


<body>
 <?php

echo 'Page numéro 1    ' . '</br>';

$_SESSION['favcolor'] = 'vert';

echo 'Couleur : ' . $_SESSION['favcolor'];

echo '<br /><a href="page2.php?' . SID . '">page 2</a>';

?>

</body>
</html>
page2.php
<?php
header('Content-type:text/html; charset=UTF-8');	// encodage UTF-8
session_start()

//error_reporting(E_ALL); 	// en TEST !!

?>

<!DOCTYPE HTML>

<html>

<head>
<!-- <meta http-equiv="content-type" content="text/html; charset=utf-8" /> -->
    <meta charset="utf-8">
    <meta name="author" content="" />
    <meta name="copyright" content="Le contenu de ce site est protégé par les droits d'auteur." />
    <meta name="description" content="Description complete"> 	<meta name="keywords" content="" />

    <title>CESSION page 2</title>
	
</head>


<body>
<?php

echo 'Page numéro 2    ' .  '</br>';


if(isset($_SESSION['favcolor'])) // si la variable de session est définie
{
//echo 'Couleur : ' . $_SESSION['favcolor'];	
echo 'Couleur : ', htmlspecialchars($_SESSION['favcolor'], ENT_QUOTES, 'UTF-8');
}
else
{
echo '$_SESSION favcolor non indexé';
// header('Location: page1.php'); // si la variable de session favcolor n'est pas définie, on renvoie sur la page1.php (placer la condition en début de page)
}


/*
foreach($_SESSION as $cle => $_SESSION['favcolor'])
{
echo "  <li><strong>".ucfirst($cle)." : </strong><em>". "Couleur : " . $_SESSION['favcolor']."</em></li>\n";
}
*/


echo '<br /><a href="page1.php?' . SID . '">page 1</a>';

?>

</body>
</html>
Le problème $_SESSION['favcolor'] dans la page2.php ne s’affiche pas en ligne mais fonctionne en local .
$_SESSION['favcolor'] n'est pas reconnu (non indexé) dans la page2.php.

Mes configurations :
- Poste de travail : Windows 10
- PHP 7
- Création des pages PHP 1 et 2 en UFT8 sous notepad++
- Hébergeur 1 & 1

Cordialement.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

12 déc. 2016, 12:55

salut,

ton code fonctionne même chez 1and1 :-)

Attention à la constante SID qui est inutile dans tes lien, le SID de la session php est passé par cookie (coté sucurité c'est mieux). Regarde les cookies avec les outils développeur de ton navigateur préféré (F12).

tu peux tester ici : http://phpjungle.info/phpfrance/dd78/page1.php
j'y ai ajouter un petit formulaire pour jouer avec les couleurs.

si tu veux voir le source ajoute source=true en paramètre d'url
http://phpjungle.info/phpfrance/dd78/pa ... ource=true (idem pour page2).

@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 16 Messages

12 déc. 2016, 13:11

Bonjour moogli,

Merci pour ta réponse.

Voici mon lien :
http://arousseau-contact.fr/sessions/page1.php

Toujours chez 1 & 1

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

12 déc. 2016, 14:11

hum il n'y a pas de cookie de session, c'est étonnant.
que ce passe t'il si tu créer un fichier avec dedans <?php phpinfo(); ?> ?

@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 16 Messages

12 déc. 2016, 16:00

Moogli, je me suis mis en relation avec mon hébergeur 1 & 1.
On en est arrivé à en déduire que mon contrat actuel serait à la base du problème.

Il me propose un contrat cloud mais me demande de te poser la question si cela ne te gêne pas de me communiquer quel est ton type de contrat.

Si j'opte pour un contrat cloud, toutes les configurations serveur serait à ma charge.
Et là je n'ai pas de formation pour cela !

Sais-tu s’ils sont déjà préconfiguré car il a été incapable de me répondre à cette question !
En espérant une réponse de ta part.

Cordialement.

Eléphanteau du PHP | 16 Messages

12 déc. 2016, 16:06

Pour répondre à ta question voici le lien :
http://arousseau-contact.fr/sessions/php-info.php

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

12 déc. 2016, 17:28

alors je ne conseil pas de passer sur autre chose que les contrats où ils font tout si tu n'as pas les compétences. L'admin c'est métier :-)

mon contrat, je ne sais plus comment il s'appel, il a plus de 10 ans coute plus chère que le premier moins que le second et ce que j'ai je le trouve mieux que les deux :-) (et petit à petit ils ajoutent des trucs suffit d'être patient).

a partir de ton phpinfo tu as une section session
Session Support enabled
session.use_cookies On
session.use_only_cookies On

du coup j'en conclu que les sessions sont actives et qu'elle utilise les cookie et seulement cela.

les sessions c'est mécanisme de base de php tout leurs hébergements devraient le supporter.

Par contre ils devrait pouvoir te dire pourquoi cela ne fonctionne pas.
Moi de ce que je vois c'est par ce que je n'ais pas de PHPSESSID et donc pas de suivis de la valeur.

il y a une solution la https://openclassrooms.com/forum/sujet/ ... and1-13739
à voir
1 fichier avec que du php (ou qui fait des echo du html).

ce qui est étonnant ce que si tu reprends le code des pages sur mon site tu devrais avoir le même comportement.
si ce n'est pas le cas c'est que tu as un problème de configuration quelque part :s


@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 16 Messages

12 déc. 2016, 18:59

J’ai effectué avec 1 fichier avec que du PHP mais cela ne fonctionne pas.
Si tu penses à un problème de configuration sur mon PC je ne pense pas car j’ai effectué les mêmes opérations sur un autre et le résultat est le même.

J’ai de forts doutes sur les compétences sur le technicien de chez 1 & 1.

En effet le PHP avec les sessions devraient fonctionner avec toutes sortes de contrats.

Eléphanteau du PHP | 16 Messages

13 déc. 2016, 12:04

Bonjour,

J’attends encore un peu pour changer d'hébergeur car j’ai réussi à croiser ce matin un voisin informaticien qui va passer ce soir chez moi au cas où
cela proviendrait d’une configuration PC ou autres ce dont je doute fort maintenant.

Je vous tiendrais informé du résultat et encore un grand merci Moogli pour toutes les aides que tu m’as apporté.

Cordialement.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

13 déc. 2016, 13:55

hum configuration ordi, j'ai un doute

a voir

@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 16 Messages

14 déc. 2016, 12:11

Bonjour,

Pour faire suite à mon problème de variable $_SESSION, j’ai vu avec mon voisin informaticien pourquoi cela ne fonctionné pas sur serveur 1 & 1.
Alors lui est spécialiste Windows. Néanmoins il à regarder mon code et confirme qu’il n’y a pas d’erreur.
Et effectivement ce n'est pas un problème de configuration de mon PC.

La question qu’il soulève sait savoir si l’une de mes lignes de code ne seraient pas obsolète pour la version PHP 7.

Ce matin j’ai recontacté mon hébergeur 1 & 1 en leurs expliquant à nouveau la situation.
Ils me donneront réponse sous 24/48h, leur technicien serveur n’étant pas joignable sur le moment.

Cordialement.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

14 déc. 2016, 15:31

tous ce que je peux te dire c'est que tu peux prendre tel quel le code des exemples des liens ci dessus qui sont fonctionnels (source en ajoutant le ?debug=true dans l'url).
S'il ne fonctionnent sur ton site c'est qu'i y a un problème de conf coté serveur.

@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 16 Messages

14 déc. 2016, 18:01

Merci Moogli.

Eléphanteau du PHP | 16 Messages

14 déc. 2016, 18:18

Je vais changer d'hébergeur, trop de problèmes avec 1 & 1.

En cherchant à droite et à gauche je me suis aperçus que je n'étais pas seul dans ce cas là!

Je pense opter pour OVH.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

16 déc. 2016, 09:42

de rien, bon courage.

Perso je n'ai jamais de problème, c'est dommage :s
Il en faut peu pour être heureux ......