Warning Notice: Undefined index

Résolu
roms75001 Messages postés 395 Date d'inscription   Statut Membre Dernière intervention   -  
hharchi9 Messages postés 567 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, j'ai un soucis pour généré mon code barre car j'ai l'erreur suivante :

Notice: Undefined index: in C:\wamp\www\Projet IRIS2\generate_barcode.php on line 75


Voici mon code :

<?php session_start();

for ($i = 1; $i <= ($_SESSION['adultes'] + $_SESSION['enfants']); $i++) // boucle pour faire autant de billet que de passagers
{
//création de l'image temporaire ===============================================
$thumb = imagecreatetruecolor(500, 25);	//retourne une ressource représentant une image noire
$fond = imagecolorallocate($thumb, 255, 0, 255); // fond
imagefill($thumb, 0, 0, $fond);//Effectue un remplissage
$TheString=$_SESSION['numeroBilletID'.$i];
//------------------------------------------------------------------------------

//------------------------------------------------------------------------------

// tableau Char -> Code ========================================================
$TabCode = array(
   '0' =>  '101000111011101',
   '1' =>  '111010001010111',
   '2' =>  '101110001010111',
   '3' =>  '111011100010101',
   '4' =>  '101000111010111',
   '5' =>  '111010001110101',
   '6' =>  '101110001110101',
   '7' =>  '101000101110111',
   '8' =>  '111010001011101',
   '9' =>  '101110001011101',
   
   'A' =>  '111010100010111',
   'B' =>  '101110100010111',
   'C' =>  '111011101000101',
   'D' =>  '101011100010111',
   'E' =>  '111010111000101',
   'F' =>  '101110111000101',
   'G' =>  '101010001110111',
   'H' =>  '111010100011101',
   'I' =>  '101110100011101',
   'J' =>  '101011100011101',
   'K' =>  '111010101000111',
   'L' =>  '101110101000111',
   'M' =>  '111011101010001',
   'N' =>  '101011101000111',
   'O' =>  '111010111010001',
   'P' =>  '101110111010001',
   'Q' =>  '101010111000111',
   'R' =>  '111010101110001',
   'S' =>  '101110101110001',
   'T' =>  '101011101110001',
   'U' =>  '111000101010111',
   'V' =>  '100011101010111',
   'W' =>  '111000111010101',
   'X' =>  '100010111010111',
   'Y' =>  '111000101110101',
   'Z' =>  '100011101110101',
   
   '-' =>  '100010101110111',
   '.' =>  '111000101011101',
   ' ' =>  '100011101011101',
   '$' =>  '100010001000101',
   '/' =>  '100010001010001',
   '+' =>  '100010100010001',
   '%' =>  '101000100010001',
   '*' =>  '100010111011101'
);

//------------------------------------------------------------------------------

// convertir la chaine en code =================================================
$CodeBar = '';

// tableau des caractères seuls
$TabKeys = array_keys($TabCode);

$TotalChar = 0;
for($a = 0; $a < strlen($TheString); $a++)
{
    $CodeBar .= "0" . $TabCode[$TheString[$a]] . "<br>";
    
    //récupération de l'index du caractère + calcul de la somme des indexes
    foreach($TabKeys as $key => $value) {
        if($value === $TheString[$a]){ $TotalChar += $key;}
    }
}
/*------------------------------------------------------------------------------

//calculer le caractère de controle ============================================
$IndexControl = bcmod($TotalChar, 43);
//------------------------------------------------------------------------------

//ajouter le caratère de controle ==============================================
if($AddControl)
{
    $CodeBar.= "0" . $TabCode[$TabKeys[$IndexControl]];
}
------------------------------------------------------------------------------*/

//on rajoute * en début et en fin de code ======================================
$xCodeBar = $TabCode["*"] . $CodeBar . "0" . $TabCode["*"];

//------------------------------------------------------------------------------

// dessiner le code barre ======================================================
$c_w = imagecolorallocate($thumb, 255, 255, 255); // blanc
$c_b = imagecolorallocate($thumb, 0, 0, 0); // noir
$x_ref = 0;
for($x=0; $x < strlen($xCodeBar); $x++)
{
    if($xCodeBar[$x] == "1")
    {
        imageline($thumb, $x_ref, 0, $x_ref, 25, $c_b);
    }
    else
    {
        imageline($thumb, $x_ref, 0, $x_ref, 25, $c_w);
    }
    $x_ref++;
}

//------------------------------------------------------------------------------

// Création de l'image définitive ==============================================
$IMG = imagecreatetruecolor($x_ref, 25);
imagefill($IMG, 0, 0, $fond);
imagecopymerge ($IMG, $thumb, 0, 0, 0, 0, 500, 25, 100 );

//------------------------------------------------------------------------------


$chemin="./codebarre/".$_SESSION['numeroBilletID'.$i].".png"; // chemin de l'image
$monfichier=fopen($chemin,'a+');
fclose($monfichier);
imagepng($IMG,$chemin);
}
header("Location: mail.php"); // on envoi le mail



?>



il faut savoir que $_SESSION['numeroBilletID'.$i] est généré sur ma page précédente et la boucle "for ($i = 1; $i <= ($_SESSION['adultes']......." me sert à généré autant de code barres que de passagers

Quelqu'un serait corriger cette erreur ?

Merci d'avance

1 réponse

hharchi9 Messages postés 567 Date d'inscription   Statut Membre Dernière intervention   24
 
Bonsoir,

Il me semble que votre erreur provient du fait que vous faites comme si $TheString était un array en voulant le parcourir via $TheString[$a]. Cependant, ce n'en est pas un !
0
roms75001 Messages postés 395 Date d'inscription   Statut Membre Dernière intervention   7
 
Bonsoir

$_SESSION['numeroBilletID'.$i] est une chaîne de 10 chiffres généré aleatoirement, il correspond au numéro du billet et je voudrais générer un code barre grâce à cette chaîne

Savez vous comment puis-je faire ?
0
hharchi9 Messages postés 567 Date d'inscription   Statut Membre Dernière intervention   24
 
ajoutez une ligne
print_r($_SESSION['numeroBilletID'.$i]);
pour voir comment sont ordonnées les chiffres
0
roms75001 Messages postés 395 Date d'inscription   Statut Membre Dernière intervention   7 > hharchi9 Messages postés 567 Date d'inscription   Statut Membre Dernière intervention  
 
comme ceci :

1161908760

Sachant que ces chiffres sont alétoires car j'utilise la fonction suivante :

$numeroBilletID = rand ( 1000000000 , 9999999999 );	
$_SESSION['numeroBilletID'.$i] = $numeroBilletID;
0
hharchi9 Messages postés 567 Date d'inscription   Statut Membre Dernière intervention   24
 
Ce que je vous disais est donc vérifié, ce n'est pas un array. Vous ne pouvez pas le parcourir comme un tableau !
0
roms75001 Messages postés 395 Date d'inscription   Statut Membre Dernière intervention   7 > hharchi9 Messages postés 567 Date d'inscription   Statut Membre Dernière intervention  
 
Je comprend... avez-vous une solution pour régler ce problème ?
0