session_register DEPRECATED ok mais $_SESSION marche pas

Mammouth du PHP | 804 Messages

01 sept. 2011, 13:48

Bonjour à tous

voilà...

J'ai décidé de changer les session_register dans mes codes, problème $_SESSION ne fonctionne pas, y a t il une déclaration ou autre ?, les doc de PHP ne sont pas très explicite à ce sujet et quand je me réfère à leurs explications je n'avance pas du tout.

Voici un exemple de code que j'utilise pour un caddie, donc si j'ai bien compris je dois remplacer:

session_register("article_commande"); par $_SESSION["article_commande"];
session_unregister($article_commande); par Unset($article_commande);

et biensure plus de déclaration name session donc je vire:
$num_commande = session_id();
session_register("num_commande");

seulement ca marche pas et je ne comprends pas pourquoi ?


code avant
session_start(); 

// code supprimé
//if(!$num_commande) {
 //   $num_commande = session_id();
  //  session_register("num_commande");
   // } 



if(is_array($article_commande)) {
   $liste_num_commande = array_keys($article_commande);
   $ncommande = @max($liste_num_commande);
   }

switch($caddie) {
       case "add":
                  $query = mysql_query("SELECT * FROM source_produits WHERE ID=\"$ID\"");
                  $row = mysql_fetch_array($query);
                  $DB_pdt_libelle = $row[pdt_libelle];
                  $DB_pdt_ref = $row[pdt_ref];
                  $DB_prix = $row[prix];
                  $ncommande++;
                  $article_commande[$ncommande][id] = "$ID";
                  $article_commande[$ncommande][nom] = "$DB_nompro";
                  $article_commande[$ncommande][ref] = "$DB_pdt_ref";
                  $article_commande[$ncommande][prix] = "$DB_prix";
                  $article_commande[$ncommande][qte] = "$n_qts";
                  $article_commande[$ncommande][couleur] = "$couleur";
                  $article_commande[$ncommande][taille] = "$taille";                  
                  $article_commande[$ncommande][volume] = "$volume";
                  $_SESSION["article_commande"];// code Modifier
                  break;

       case "del":
                  unset($article_commande[$n]);
                  $_SESSION["article_commande"];// code Modifier
                  break;

       case "purge":
                  $article_commande = "";
                  $_SESSION["article_commande"];// code Modifier
                  break;

       case "actu":
                  foreach($q as $n_commande => $nbre) {
                          $article_commande[$n_commande][qte] = $nbre;
                          }
                  $_SESSION["article_commande"];// code Modifier
                  break;

       case "valide":
                  if($effacecaddie=="ok") { 
                     $article_commande = "";
                     unset($article_commande); // code Modifier
                     }
                  break;

       default:
}

$nbart_caddie = (is_array($article_commande))? sizeof($article_commande) : 0;

if($nbart_caddie>0) {
        unset($list_ids_commande);
        foreach($article_commande as $n_commande => $info_commande) {
                $caddie_id = $article_commande[$n_commande][id];
                $caddie_QTE = $article_commande[$n_commande][qte];
                $caddie_nompro = $article_commande[$n_commande][nom];
                $caddie_couleur = $article_commande[$n_commande][couleur];				
                $caddie_taille = $article_commande[$n_commande][taille];
                $caddie_pointure = $article_commande[$n_commande][pointure];
				
                $info_couleur = ($caddie_couleur!="")? "+couleur: $caddie_couleur" : "";
                $info_taille = ($caddie_taille!="")? "+taille: $caddie_taille" : "";
                $info_volume = ($caddie_volume!="")? "+volume: $caddie_volume" : "";
                $LIST_CADDIE .= "• $caddie_QTE* $caddie_nompro $info_couleur $info_taille $info_volume<br>";
                }

         $S = ($nbart_caddie>1)? "s" : "";

$MSG_caddie = "<a href=\"commande.php\">Mon panier contient <br>$nbart_caddie article$S</a>";


}else{

$MSG_caddie = "Mon panier";

}
code après qui ne fonctionne pas
session_start(); 

if(!$num_commande) {
    $num_commande = session_id();
    session_register("num_commande");
    } 

if(is_array($article_commande)) {
   $liste_num_commande = array_keys($article_commande);
   $ncommande = @max($liste_num_commande);
   }

switch($caddie) {
       case "add":
                  $query = mysql_query("SELECT * FROM source_produits WHERE ID=\"$ID\"");
                  $row = mysql_fetch_array($query);
                  $DB_pdt_libelle = $row[pdt_libelle];
                  $DB_pdt_ref = $row[pdt_ref];
                  $DB_prix = $row[prix];
                  $ncommande++;
                  $article_commande[$ncommande][id] = "$ID";
                  $article_commande[$ncommande][nom] = "$DB_nompro";
                  $article_commande[$ncommande][ref] = "$DB_pdt_ref";
                  $article_commande[$ncommande][prix] = "$DB_prix";
                  $article_commande[$ncommande][qte] = "$n_qts";
                  $article_commande[$ncommande][couleur] = "$couleur";
                  $article_commande[$ncommande][taille] = "$taille";                  
                  $article_commande[$ncommande][volume] = "$volume";
                  session_register("article_commande");
                  break;

       case "del":
                  unset($article_commande[$n]);
                  session_register("article_commande");
                  break;

       case "purge":
                  $article_commande = "";
                  session_unregister($article_commande);
                  break;

       case "actu":
                  foreach($q as $n_commande => $nbre) {
                          $article_commande[$n_commande][qte] = $nbre;
                          }
                  session_register("article_commande");
                  break;

       case "valide":
                  if($effacecaddie=="ok") { 
                     $article_commande = "";
                     //session_unregister($article_commande);

                     }
                  break;

       default:
}

$nbart_caddie = (is_array($article_commande))? sizeof($article_commande) : 0;

if($nbart_caddie>0) {
        unset($list_ids_commande);
        foreach($article_commande as $n_commande => $info_commande) {
                $caddie_id = $article_commande[$n_commande][id];
                $caddie_QTE = $article_commande[$n_commande][qte];
                $caddie_nompro = $article_commande[$n_commande][nom];
                $caddie_couleur = $article_commande[$n_commande][couleur];				
                $caddie_taille = $article_commande[$n_commande][taille];
                $caddie_pointure = $article_commande[$n_commande][pointure];
				
                $info_couleur = ($caddie_couleur!="")? "+couleur: $caddie_couleur" : "";
                $info_taille = ($caddie_taille!="")? "+taille: $caddie_taille" : "";
                $info_volume = ($caddie_volume!="")? "+volume: $caddie_volume" : "";
                $LIST_CADDIE .= "• $caddie_QTE* $caddie_nompro $info_couleur $info_taille $info_volume<br>";
                }

         $S = ($nbart_caddie>1)? "s" : "";

$MSG_caddie = "<a href=\"commande.php\">Mon panier contient <br>$nbart_caddie article$S</a>";


}else{

$MSG_caddie = "Mon panier";

}


Merci d'avance

ViPHP
xTG
ViPHP | 7331 Messages

01 sept. 2011, 14:07

C'est ton utilisation qui n'est pas correcte.
$_SESSION est une variable, non une fonction comme session_register(), il faut donc lui affecter la valeur explicitement.
//avant
session_register("num_commande");
//après
$_SESSION['num_commande'] = $num_commande;

Mammouth du PHP | 804 Messages

01 sept. 2011, 15:34

tout simplement ?

ViPHP
xTG
ViPHP | 7331 Messages

01 sept. 2011, 16:58

Bah oui. ;)
Je te conseillerai de lire cette page afin d'approfondir tes connaissances : http://www.php.net/manual/en/language.v ... basics.php

Mammouth du PHP | 804 Messages

02 sept. 2011, 09:29

bein écoute je ne comprends pas pourquoi ca a pas marché la première fois ou j'ai fais la même chose, mais la ca semble bien tourner :D, pour le lien c'est très utile :wink:
merci à toi