probleme erreur Undefined offset variables de session

probleme erreur Undefined offset variables de session - PHP - Programmation

Marsh Posté le 23-10-2004 à 01:32:07    

Bonjour à tous, je suis en train de faire un devis en ligne avec des variables de session mais j'ai une erreur qui me bloque completement :  
 
Notice: Undefined offset: 0 in c:\documents and settings\david\bureau\macap\scripts\essai3.php on line 17
 
cela arrive uiniquement quand je veux retirer un produit qui est avant le dernier de la liste du devis, si je supprime le dernier ca marche impeccable
 
voila le script :
 
<? session_start();
 
if (isset($_GET["quantite"])){
$reference = $_GET['reference'];
   $designation = $_GET['designation'];
    $quantite = $_GET['quantite'];
     
    $_SESSION["reference"][] = $reference;
    $_SESSION["designation"][] = $designation;
    $_SESSION["quantite"][] = $quantite;}
if (isset($_GET["refresh"])){
 
    $nb = count ($_SESSION["reference"]);
    echo '<table><tr><td>Référence</td><td>Désignation</td><td>Quantité</td><td></td></tr>';
     
    for ($i=0; $i<$nb;$i++){
    echo '<tr><td>'.$_SESSION["reference"][$i].'</td><td>'.$_SESSION["designation"][$i].'</td><td>'.$_SESSION["quantite"][$i].'</td><td><a href="essai3.php?reference='.$_SESSION["reference"][$i].'&vali='.$i.'">supprimer</a></td></tr>';}?>
    </table><?
    }else{
     
   $i=$_GET["vali"];
    unset($_SESSION["reference"][$i]);
    unset($_SESSION["designation"][$i]);
    unset($_SESSION["quantite"][$i]);
    die('<META HTTP-equiv="refresh" content="1;URL=essai3.php?refresh=1">');}?>
     
 
    <a href="essai.php">retour</a>
 
Voila merci de m'aider et @ bientot
       
 

Reply

Marsh Posté le 23-10-2004 à 01:32:07   

Reply

Marsh Posté le 23-10-2004 à 02:50:58    

revu et corrigé en partie, maintenant vais me coucher :)
 
explication :  
pour ton id de tableau tu commencais tjr a 0, hors si tu vire ton article correspondant a la position 0, tu afficheras toujours la ligne, mais blanche, avec un bouton supprimer.  
j'ai un peu revu ton code, et ai pensé a initialisé tes variables de sessions...ca plante grave sinon. j'ai donc fait un parcours des tableaux via foreach pour tomber a chaque fois sur un id valide :)
 
 
je te certifie que ca fonctionne chez moi :)
 

Code :
  1. <?
  2. session_start();
  3. if (!is_array($_SESSION['reference'])) $_SESSION['reference'] = array();
  4. if (!is_array($_SESSION['designation'])) $_SESSION['designation'] = array();
  5. if (!is_array($_SESSION['quantite'])) $_SESSION['quantite'] = array();
  6. if (isset($_GET['quantite'])){
  7.  
  8.    
  9.     $_SESSION['reference'][] = $_GET['reference'];
  10.     $_SESSION['designation'][] =$_GET['designation'];
  11.     $_SESSION['quantite'][] = $_GET['quantite'];
  12. }   
  13. if (isset($_GET["refresh"])){
  14.  print_r($_SESSION); 
  15.     $nb = count ($_SESSION["reference"]);
  16.    
  17.     echo '<table><tr><td>Référence</td><td>Désignation</td><td>Quantité</td><td></td></tr>';
  18.    
  19.     foreach($_SESSION['reference'] as $cle=>$valeur){
  20.      echo '<tr><td>'.$_SESSION["reference"][$cle].'</td>
  21.       <td>'.$_SESSION["designation"][$cle].'</td>
  22.       <td>'.$_SESSION["quantite"][$cle].'</td>
  23.       <td>
  24.       <a href="essai3.php?reference='.$_SESSION["reference"][$cle].'&vali='.$cle.'">supprimer</a>
  25.       </td>
  26.       </tr>';
  27.     }
  28.     ?>
  29.     </table>
  30.     <?
  31.     }else{
  32.    $i=$_GET["vali"];
  33.     unset($_SESSION["reference"][$i]);
  34.     unset($_SESSION["designation"][$i]);
  35.     unset($_SESSION["quantite"][$i]);
  36.     die('<META HTTP-equiv="refresh" content="1;URL=essai3.php?refresh=1">');
  37.     }
  38.     ?>
  39.    
  40.     <a href="essai.php">retour</a>


Message édité par Profil supprimé le 23-10-2004 à 02:53:41
Reply

Marsh Posté le 23-10-2004 à 12:29:37    

Super Spike, ca marche impeccable effectivement, il suffisait apparemment d'attribuer les variables à un tableau... Merci beaucoup et bonne journée à toi ! @++

Reply

Marsh Posté le 12-05-2014 à 00:25:02    

slt j'ai un petite probleme au niveau de supp de panier et je sais pas ou existe l'erreur tu peux m'aider stp et merci d'avance
 
<?php  
session_start();
$index = $_GET['index'];  
$panier = $_SESSION['panier'];
unset($panier[$index]);  
$_SESSION['panier'] = $panier;
header("location:votre-panier.php?panier=1" );  
?>
 
<?
session_start();
if (!is_array($_SESSION['reference'])) $_SESSION['reference'] = array();
if (!is_array($_SESSION['designation'])) $_SESSION['designation'] = array();
if (!is_array($_SESSION['quantite'])) $_SESSION['quantite'] = array();
if (isset($_GET['quantite'])){
 
   
    $_SESSION['reference'][] = $_GET['reference'];
    $_SESSION['designation'][] =$_GET['designation'];
    $_SESSION['quantite'][] = $_GET['quantite'];
}    
if (isset($_GET["refresh"])){
 print_r($_SESSION);  
    $nb = count ($_SESSION["reference"]);
   
    echo '<table><tr><td>Référence</td><td>Désignation</td><td>Quantité</td><td></td></tr>';
   
    foreach($_SESSION['reference'] as $cle=>$valeur){
     echo '<tr><td>'.$_SESSION["reference"][$cle].'</td>
      <td>'.$_SESSION["designation"][$cle].'</td>
      <td>'.$_SESSION["quantite"][$cle].'</td>
      <td>
      <a href="essai3.php?reference='.$_SESSION["reference"][$cle].'&vali='.$cle.'">supprimer</a>
      </td>
      </tr>';
    }
    ?>
    </table>
    <?
    }else{
   $i=$_GET["vali"];
    unset($_SESSION["reference"][$i]);
    unset($_SESSION["designation"][$i]);
    unset($_SESSION["quantite"][$i]);
    die('<META HTTP-equiv="refresh" content="1;URL=essai3.php?refresh=1">');
    }
    ?>
   
    <a href="essai.php">retour</a>
     
 
l'errreur si  
 
Notice: Undefined offset: 0 in C:\Program Files (x86)\EasyPHP-DevServer-13.1VC9\data\localweb\projects\template2\votre-panier.php on line 30
 
Notice: Undefined offset: 0 in C:\Program Files (x86)\EasyPHP-DevServer-13.1VC9\data\localweb\projects\template2\votre-panier.php on line 30
 
Notice: Undefined offset: 0 in C:\Program Files (x86)\EasyPHP-DevServer-13.1VC9\data\localweb\projects\template2\votre-panier.php on line 31
 
:??:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed