Warning Notice: Undefined index [Résolu/Fermé]

Signaler
Messages postés
390
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
9 juillet 2017
-
Messages postés
567
Date d'inscription
mercredi 18 décembre 2013
Statut
Membre
Dernière intervention
1 juillet 2015
-
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

Messages postés
567
Date d'inscription
mercredi 18 décembre 2013
Statut
Membre
Dernière intervention
1 juillet 2015
22
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 !
Messages postés
567
Date d'inscription
mercredi 18 décembre 2013
Statut
Membre
Dernière intervention
1 juillet 2015
22
Ce que je vous disais est donc vérifié, ce n'est pas un array. Vous ne pouvez pas le parcourir comme un tableau !
Messages postés
390
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
9 juillet 2017
6 >
Messages postés
567
Date d'inscription
mercredi 18 décembre 2013
Statut
Membre
Dernière intervention
1 juillet 2015

Je comprend... avez-vous une solution pour régler ce problème ?
Messages postés
567
Date d'inscription
mercredi 18 décembre 2013
Statut
Membre
Dernière intervention
1 juillet 2015
22
Il faut convertir votre chaine en chaine de caractère
par exemple comme ceci :

$TheString2= (string) $TheString;


Cette variable pourra elle être parcourue comme un tableau
Messages postés
390
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
9 juillet 2017
6 >
Messages postés
567
Date d'inscription
mercredi 18 décembre 2013
Statut
Membre
Dernière intervention
1 juillet 2015

Super ça marche !

Merci beaucoup !! :)
Messages postés
567
Date d'inscription
mercredi 18 décembre 2013
Statut
Membre
Dernière intervention
1 juillet 2015
22
De rien,

Bonne continuation !