Médiaforma

All posts tagged sessions

Définissez un formulaire dans lequel l’utilisateur pourra saisir son prénom et son nom. Créez des variables de session avec les valeurs entrées lorsque l’utilisateur clique sur le bouton Envoyer et vérifiez que ces variables de session sont bien accessibles dans une autre page.

Solution

Faites une pause dans la vidéo et écrivez les trois pages demandées. Vous pourrez reprendre la lecture de la vidéo pour avoir des explications détaillées sur ces trois pages.

Voici le code responsable de la saisie des données :

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>Transission de données par un formulaire</title>
  </head>
  <body>
    <form name="MonFormulaire" method="post" action="traitement.php">
    <table><tr><td><label>Prénom</label></td>
      <td><input type="text" name="prenom"></td></tr>
      <tr><td><label>Nom</label></td>
      <td><input type="text" name="nom"></td></tr>
      <tr><td><input type="submit" name="Nom" value="Envoyer"></td>
      <td></td></tr>
    </table>
    </form>
  </body>
</html>

Ce formulaire est très simple. Il permet de saisir le prénom et le nom de l’utilisateur à l’aide de champs input de type text nommés prenom et nom. Lorsque l’utilisateur clique sur le bouton Envoyer, ces données sont transmises au script traitement.php.

 

Voici le code exécuté lorsque l’utilisateur clique sur le bouton Envoyer :

<?php
  session_start();
?>
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>Traitement des données envoyées par formulaire</title>
  </head>
  <body>
    <?php
      $prenom = htmlspecialchars($_POST["prenom"]);
      $nom = htmlspecialchars($_POST["nom"]);
      $_SESSION["prenom"] = $prenom;
      $_SESSION["nom"] = $nom;
      echo "Les données du formulaire ont été mémorisées.<br>";
      echo "<a href=\"lecture-session.php\">Cliquez sur ce lien pour vérifier.</a>";
    ?>
  </body>
</html>

La fonction session_start est exécutée au début du script, avant la déclaration du doctype. Les données prenom et nom sont récupérées dans le tableau superglobal $_POST et stockées dans les variables prenom et nom.

Ces variables sont mémorisées dans les variables de session prenom et nom en utilisant le tableau superglobal $_SESSION.

Un message indique que les données de session ont été mémorisées, puis un lien hypertexte est affiché. Le but de ce lien est de montrer que les variables de session existent et sont toujours pertinentes sur une autre page.

 

Voici le code de la page annexe, affichée lorsque l’utilisateur clique sur le lien de la page traitement.php :

<?php
  session_start();
?>
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>Lecture des variables de session prenom et nom</title>
  </head>
  <body>
  <?php
    $prenom = $_SESSION["prenom"];
    $nom = $_SESSION["nom"];
    echo "Les données mémorisées dans les variables de session sont bien accessibles :<br><ul>";
    echo "<li>\$_SESSION[\"prenom\"] vaut ".$_SESSION["prenom"]."</li>";
    echo "<li>\$_SESSION[\"nom\"] vaut ".$_SESSION["nom"]."</li></ul>";
  ?>
  </body>
</html>

Ici également, la première instruction du script est session_start. Cette instruction apparaît avant le doctype du document.

Les variables $prenom et $nom sont initialisées en lisant le contenu du tableau superglobal $_SESSION. Elles sont alors affichées sur l’écran avec deux instructions echo.

Exécutons la première page dans Wamp server.

Un prénom et un nom sont saisis dans le formulaire puis le bouton Envoyer est cliqué.

La page traitement.php est exécutée. Un message indique que les données du foirmulaire ont été sauvegardées dans des variables de session.

Pour vérifier cela, nous cliquons sur le lien hypertexte pour afficher la page lecture-session.php. Effectivement, les deux variables de session contiennent les valeurs saisies dans le formulaire.

 


Les sessions sont très pratiques pour mémoriser des données relatives à une session utilisateur. Ces données pourront être librement utilisées tant que l’utilisateur est connecté. Elles seront automatiquement supprimées du serveur à la déconnexion de l’utilisateur ou au bout d’un certain temps d’inactivité (time-out).

Le principe d’utilisation des sessions est simple :

  • Que ce soit pour mémoriser ou pour lire des variables de session, vous devez appeler la fonction session_start() au début de chaque page, avant la déclaration du DOCTYPE !
  • Pour mémoriser une donnée dans une variable de session, utilisez une instruction du type suivant : $_SESSION[“nomVariable”] = valeur;
  • Pour lire le contenu d’une variable de session, il suffit de consulter la superglobale $_SESSION[] en précisant le nom de la variable entre les crochets et entre guillemets. Par exemple : echo $_SESSION[“nomVariable”];

Vous avez déjà utilisé des variables superglobales dans les sections précédentes : $_GET[], $_POST[], $_FILES[]. Ces variables sont dites superglobales car elles sont disponibles partout dans le script : dans le corps du script, mais aussi dans les fonctions sans qu’il soit nécessaire d’utiliser l’instruction global pour y accéder.

Vous utiliserez également les variables superglobales suivantes :

Superglobale Signification
$GLOBALS Tableau associatif de toutes les variables globales du script (les noms des variables sont les index du tableau)
$_SERVER Tableau associatif créé par le serveur et contenant différentes informations comme les en-têtes, dossiers et chemins du script. Reportez-vous à la page http://www.php.net/manual/fr/reserved.variables.server.php pour avoir le détail des entrées de ce tableau.
$_COOKIE Tableau associatif des cookies enregistrés sur l’ordinateur client.
$_SESSION Tableau associatif des valeurs stockées sur le serveur pour la session d’un utilisateur.
$_ENV Tableau associatif de variables d’environnement du serveur. Cette superglobale n’est que très peu utile.

 

Pour afficher le contenu d’une superglobale, le plus simple consiste à utiliser la fonction var_dump(). Par exemple, pour afficher le contenu de la variable $_SERVER, utilisez cette instruction :

var_dump($_SERVER);

Exécutons ce code dans WAMP Server. Voici le résultat. Chacune des données du tableau superglobal est affichée sur une ligne qui lui est propre, ce qui facilite la lecture.


Java – Sessions

Categories: java
Comments: No

Les variables de session sont accessibles :

  • en écriture, avec la méthode session.putValue(nom, valeur);
  • en lecture, avec la méthode session.getValue(nom);

nom est le nom de la variable de session et valeur est la valeur à y stocker.

Voici une petite servlet qui indique le nombre de fois qu’une page a été vue :

<html>
  <head>
    <title>Traitement du formulaire</title>
  </head>
  <body>
    <%
      Integer nombre = (Integer) session.getValue("session.compteur");
      if (nombre == null) nombre = new Integer(1);
      else nombre = new Integer(nombre.intValue()+ 1);
      session.putValue("session.compteur", nombre);
      out.println("Cette page a été vue " + nombre + " fois.");
    %>
  </body>
</html>

Si vous avez fait une mise à niveau vers Windows 10 depuis Windows 7, vous devez accorder une attention particulière à la façon dont vous vous identifiez au démarrage de l’ordinateur. Depuis la sortie de Windows 8, Microsoft encourage les utilisateurs à se connecter en utilisant un compte Microsoft et non un compte local. Certaines fonctionnalités de Windows 8 et de Windows 10 nécessitent un accès au cloud de Microsoft. Pour profiter de ces fonctionnalités, vous devez vous connecter à Windows en utilisant un compte Microsoft. En particulier, l’accès à OneDrive et au Windows Store n’est possible qu’aux utilisateurs connectés avec un compte Microsoft. D’autre part, pour pouvoir répercuter automatiquement les modifications effectuées dans l’interface de Windows sur tous vos appareils, la seule alternative est l’utilisation d’un compte Microsoft. Ces modifications vont de l’allure et du contenu du menu Démarrer jusqu’aux applications installées via le Windows Store en passant par les paramètres de Windows et des applications installées, et aussi les données manipulées par ces applications si elles ont été stockées dans OneDrive. Enfin, en utilisant un compte Microsoft, vous pouvez le restaurer en ligne.

Certains d’entre vous sont peut-être soucieux de leur intimité sur Internet. Si vous vous connectez à Windows avec un identifiant Microsoft, vous vous connectez également à la solution cloud de Microsoft. Cela signifie donc que le géant de Redmond sait quand vous vous connectez et d’où vous vous connectez. Si cela est vraiment insupportable pour vous, il est possible de créer un compte d’utilisateur local, en définissant un nom d’utilisateur et le mot de passe associé. Si vous optez pour cette alternative, les modifications effectuées dans l’interface de Windows ainsi que vos données personnelles ne seront pas synchronisées sur vos différents matériels. A vous de peser le pour et le contre et de choisir la meilleure solution en ce qui vous concerne …