Effet Accordéon

Section 1

Mauris mauris ante, blandit et, ultrices a, suscipit eget. Integer ut neque. Vivamus nisi metus, molestie vel, gravida in, condimentum sit amet, nunc. Nam a nibh. Donec suscipit eros. Nam mi. Proin viverra leo ut odio.

Section 2

Sed non urna. Phasellus eu ligula. Vestibulum sit amet purus. Vivamus hendrerit, dolor aliquet laoreet, mauris turpis velit, faucibus interdum tellus libero ac justo.

Section 3

Nam enim risus, molestie et, porta ac, aliquam ac, risus. Quisque lobortis.Phasellus pellentesque purus in massa.

  • List item one
  • List item two
  • List item three

vendredi 19 avril 2013

Sauvegarder ses objets
 Cas d'une session
Les informations indiquées ici fonctionnent aussi bien en PHP 4 qu'en PHP 5. Il faut distinguer le
cas des sessions où il faut passer un objet d'une page à l'autre et le cas d'une sauvegarde d'un objet
sur disque.
Dans le premier cas, si les sessions sont utilisées les objets peuvent être passés directement d'une
page à une autre en respectant quelques règles :
• La session doit être ouverte sur chaque page par la fonction « session_start() » avant l'utilisation
de l'objet
• Les classes  doivent  être définies  avant   l'ouverture de  session par   session_start()  et   l'appel  à
l'objet, ce qui implique soit de répéter cette déclaration dans chaque page, soit de la placer dans
un fichier à inclure avec « require() » ou « require_once() » en début de script.
• L'objet doit être une variable de session stockée soit par la fonction « session_register() », soit à
l'aide du tableau global « $_SESSION[] ».
Voici un exemple :
objet.inc :
<?
class Panier {
      // Eléments de notre panier
      var $contenu;
      // Ajout de $qte articles de type $code au panier
      function ajout_article ($code, $qte) {
               if(isset($this->contenu[$code])) $this->contenu[$code] += $qte;
               else $this->contenu[$code] = $qte;
      }
      // Suppression de $num articles du type $artnr du panier
      function suppr_article ($code, $qte) {
               if ($this->contenu[$code] > $qte) {
                  $this->contenu[$code] -= $qte;
                  return TRUE;
               } else {
                 return FALSE;
               }
      }
      function liste_article() {
               foreach($this->contenu as $ref => $qte) echo "$ref=$qte <br />";
      }
}
class Panier_nomme extends Panier {
   var $proprietaire;
   function nom_proprietaire ($nom) {
       $this->proprietaire = $nom;
   }
}
S. ROHAUT Cours Programmation PHP Page 91/93?>
objet.php :
<?php
require_once("objet.inc");
session_start();
?>
<html>
<head>
<title>Page 1</title>
</head>
<body>
<?
$_SESSION['objet']=new Panier_nomme;
$_SESSION['objet']->nom_proprietaire("seb");
$_SESSION['objet']->ajout_article("ref01",3);
$_SESSION['objet']->suppr_article("ref01",1);
$_SESSION['objet']->ajout_article("ref02",3);
echo "{$_SESSION['objet']->proprietaire}<br />";
?>
<a href="objet2.php">Page 2</a>
</body>
</html>
objet2.php :
<?php
require_once("objet.inc");
session_start();
?>
<html>
<head>
<title>Page 2</title>
</head>
<body>
<?
echo $_SESSION['objet']->proprietaire."<br />";
$_SESSION['objet']->liste_article();
?>
</body>
</html>
 Autres cas
Rien n'empêche de conserver  un objet  pour   le récupérer  plus  tard,  même après avoir   fermé une
session. Pour ça on peut le stocker dans un fichier ou en base de données. Pour récupérer un format
correct de données pour stockage, il faut utiliser les fonctions « serialize() » et « unserialize() ».
La première fonction retourne une chaîne de texte représentant la variable (pas forcément un objet)
passée en paramètre. Ce format de donnée peut ainsi être stocké dans la manière qui vous convient.
Le seconde fonction prend comme paramètre  la chaîne de  texte  issue de serialize et  retourne  la
variable du type originel, dans notre cas un objet.
classa.inc:
<?php
  class A {
   var $one = 1;
   function show_one() {
     echo $this->one;
S. ROHAUT Cours Programmation PHP Page 92/93

Aucun commentaire:

Enregistrer un commentaire