IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Dysfonctionnement suite à mise à jour de mySQL vers mySQLi


Sujet :

Langage PHP

  1. #1
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 089
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 089
    Points : 1 055
    Points
    1 055
    Par défaut Dysfonctionnement suite à mise à jour de mySQL vers mySQLi
    Bonjour à toutes et à tous,

    J'ai développé une application serveur servant à montrer des photos,

    Auparavant, celle-ci tournait sans problème avec PHP 5.x

    Je cherche à la faire tourner avec PHP 7.

    j'ai alors remplacé tous les appels à mySQL par des appels à MySQLi. Je me trouve confronté à un problème dont je n'arrive pas à comprendre la résolution.

    Dans une fenêtre, j'ai deux options sélectionnées par des boutons radio.

    Nom : Adm01.jpg
Affichages : 162
Taille : 10,9 Ko

    • Si je clique sur le bouton radio de l'option "Paramétrer …" cela fonctionne au sens où cela me renvoie à la ligne 25 du fichier ci-après (Admin.php) qui est acceptée.
    • Si je clique sur le bouton radio de l'option "Ajouter …" avec un nom vide ou comportant des caractères inacceptables, cela me renvoie aussi à la ligne 25 du fichier ci-après (Admin.php) qui est acceptée.
    • Par contre, si je clique sur le bouton radio de l'option "Ajouter …" avec un nom valide, il ne se passe rien, comme si je n'était pas renvoyé à la ligne 25.

    Les lignes concernées sont : 246 à 252.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    333
    334
    335
    336
    337
    338
    339
    340
    341
    342
    343
    344
    345
    346
    347
    348
    349
    350
    351
    352
    353
    354
    355
    356
    357
    358
    359
    360
    361
    362
    363
    364
    365
    366
    367
    368
    369
    370
    371
    372
    373
    374
    375
    376
    377
    378
    379
    380
    381
    382
    383
    384
    385
    386
    387
    388
    389
    390
    391
    392
    393
    394
    395
    396
    397
    398
    399
    400
    401
    402
    403
    404
    405
    406
    407
    408
    409
    410
    411
    412
    413
    414
    415
    416
    417
    418
    419
    420
    421
    422
    423
    424
    425
    426
    427
    <?php
      session_start();
      if (isset($_GET['VisuGl']))
        header("Location: index.php");
      include 'FctUtils.php';
      PrmSession(); //Fonction récupérant les paramètres du fichier "indexini.txt"
      MaJTable('Albums'); // Ajoute l'attribut "NoOrdre" s'il n'existait pas
      $Formule = 0;
      $Action = '';
      if (_t($_GET['ValidID'], 'Valider')) // Test des résultats du formulaire d'identification  // Test de non injection SQL
      {                            // quand le bouton "Valider" a été appuyé.
        if ((_tt($_GET['NomAdm']) == $_SESSION['IdAdmin'] and _tt($_GET['MtPAdm']) == $_SESSION['PassBase'])  // Test de non injection SQL
            or ($_SERVER['SERVER_NAME'] == '127.0.0.1'))
        { // Si on est en local ou si les identifiants sont corrects ...
          $_SESSION['IDMP'] = 1; // on valide la suite
        }
        else
        { // sinon, on redemande les identifiants. Astuce : "alert" renvoie faux quand on appuie sur sa touche OK
          echo "<script language=\"JavaScript\"> 
                  if(!alert('L\'identifiant et/ou le mot de passe ne sont pas corrects.'))
                    document.location.href='Admin.php';
                </script>";
        }
      }
      if (_t($_GET['ValidGl'], '')) // Si le choix d'action sur les galeries est validé  // Test de non injection SQL
      {     
        echo 'Ouverture base <br>';	
        $link = CnxBase();
        $base = $_SESSION['NomBase']; 
        $db = mysqli_select_db($link, $base);// Sélection de la base de données
        $Action = _tt($_GET['G']);  // Test de non injection SQL
        $_SESSION['NouvGal'] = 1; // Validation d'une nouvelle galerie pour affichage des galeries
        switch ($Action)
        {
         case 'P':  // Formulaire de paramétrage de "Galerie Photo"
            $Formule = 2;
            break;
          case 'A': // Ajout d'un nouvelle galerie
            $Gal = $_GET['NomGal'];
    				echo 'Y a-t-il un nom<br>';
            if (!TestMot($Gal))
            {
              echo "<script language=\"JavaScript\"> 
                      if(!alert('Nom de table absent ou incorrect.'))
                        document.location.href='Admin.php';
                    </script>";
            }
            else
            { // Mise à jour de la table "Albums" et création d'une table pour la galerie
              $enrg = "INSERT INTO Albums(NomTable) VALUES('$Gal')";
              mysqli_query($link, $enrg);
              $NbGal = NbEnrgTable($link, 'Albums');
              mysqli_query($link, "UPDATE Albums SET NoOrdre=\"".$NbGal."\" WHERE NomTable=\"".$Gal."\"");
              $tbl = "CREATE TABLE $Gal(id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
                                        NomImg VARCHAR(64) UNIQUE,
                                        Titre TEXT,
                                        Commentaire TEXT,
                                        Date DATE,
                                        Categorie TINYINT DEFAULT '1',
                                        NoOrdre INT UNSIGNED UNIQUE)";
              mysqli_query($link, $tbl);
              $_SESSION['Gal'] = $Gal;
              header('Location:ModifGal.php?G=I&ValidMod=Valider');
            }
            break;
          case 'S': // Suppression d'un galerie existante
            $Gal = _tt($_GET['Galerie']); // Test de non injection SQL
            echo "<script language=\"JavaScript\">
                    if(confirm('Voulez-vous vraiment supprimer la galerie : \"".$Gal."\" ?'))
                      document.location.href='Admin.php?SupprGal=Oui&Gal=".$Gal."'
                    else
                      document.location.href='Admin.php';
                  </script>";
            break;
          case 'M':  // Modification d'une galerie existante
            $Gal = _tt($_GET['Galerie']); // Test de non injection SQL
            MaJTable($Gal); // MàJ de la galerie s'il elle n'a pas l'attribut "NoOrdre"
            echo "<script language=\"JavaScript\">
                    document.location.href='ModifGal.php?Galerie=".$Gal."';
                  </script>";
            break;
          case 'V':  // Consultation du nombre de visites des galeries
            $Formule = 3;      
            break;  
          case 'O1':  // Ordonnancement des galeries (présentation)
            $Formule = 0;      
            break;  
          case 'O2':  // Ordonnancement des galeries (Action)
            $Gal1 = _tt($_GET['T1']);
            $Gal2 = _tt($_GET['T2']);
            $Tables = OuvrirTable('Albums'); // Ouvrir la table 'Albums'
            $Result = mysqli_query($link, "SELECT NoOrdre FROM $Tables WHERE NomTable = \"".$Gal1."\"");
            $No1 = mysqli_fetch_row($Result); // NoOrdre de la première sélection
            mysqli_query($link, "UPDATE Albums SET NoOrdre=\"0\" WHERE NomTable=\"".$Gal1."\"");
            $Result = mysqli_query($link, "SELECT NoOrdre FROM $Tables WHERE NomTable = \"".$Gal2."\"");
            $No2 = mysqli_fetch_row($Result); // NoOrdre de la deuxième sélection
            if ($No1[0] > $No2[0]) // Dans ce cas, on décale de +1 l'ordre des galeries ...
            { // ... comprises entre No1 et No2
              for ($i = $No1[0]-1; $i >= $No2[0]; $i--)
              {
                $j = $i+1;
                mysqli_query($link, "UPDATE Albums SET NoOrdre=\"".$j."\" WHERE NoOrdre=\"".$i."\"");
              }
              mysqli_query($link, "UPDATE Albums SET NoOrdre=\"".$No2[0]."\" WHERE NomTable=\"".$Gal1."\"");
            }
            if ($No1[0] < $No2[0]) // Dans ce cas, on décale de -1 l'ordre des galeries ...
            { // ... comprises entre No1 et No2
              for ($i = $No1[0]+1; $i < $No2[0]; $i++)
              {
                $j = $i-1;
                mysqli_query($link, "UPDATE Albums SET NoOrdre=\"".$j."\" WHERE NoOrdre=\"".$i."\"");
              }
              $j = $No2[0]-1;
              mysqli_query($link, "UPDATE Albums SET NoOrdre=\"".$j."\" WHERE NomTable=\"".$Gal1."\"");
            } 
            $Formule = 0;  
            $Action = 'O1';    
            break;  
        }
      }
      if (isset($_GET['SupprGal']))
        if ($_GET['SupprGal'] == 'Oui') //Suppression de la galerie "Gal"
        {
          $Gal = $_GET['Gal'];
          $link = CnxBase();
          $base = $_SESSION['NomBase']; 
          $db = mysqli_select_db($link, $base);// Sélection de la base de données
          $Result = mysqli_query($link, "SELECT NoOrdre FROM Albums WHERE NomTable=\"".$Gal."\"");
          $NoId = mysqli_fetch_row($Result); // On récupère le NoOrdre de la galerie que l'on supprime
          $enrg = "DELETE FROM Albums WHERE NomTable = '$Gal'";
          mysqli_query($link, $enrg, $link); // Mise à jour de la table "Albums"
          mysqli_query($link, "ALTER TABLE Albums ORDER BY NoOrdre"); // On ordonne la table 'Albums' selon NoOrdre
          $NbGal = NbEnrgTable($link, 'Albums'); // On récupère le nombre de galeries restantes
          for ($i = $NoId[0]+1; $i <= $NbGal+1; $i++)
          { // On décremente tous les NoOrdre qui était au-dessus de "$NoId" pour éviter les trous de numéros
            $j = $i-1;
            mysqli_query($link, "UPDATE Albums SET NoOrdre=\"".$j."\" WHERE NoOrdre=\"".$i."\"");
          }
          $tbl = "DROP TABLE $Gal";
          mysqli_query($link, $tbl, $link); // Suppression de la table propre à la galerie
        }
      if (_t($_GET['ValidPrm'], 'Valider')) // Si le choix paramétrage de "Galerie Photo" est validé  // Test de non injection SQL 
      {
    		echo 'Paramétrage <br>';
        $Titre = $_GET['TitreGal'];
        $STitre = $_GET['STitreGal'];
        $ImgAdm = $_GET['ImgAdm'];
        $ImgMail = $_GET['ImgMail'];
        if (file_exists('indexini.txt'))
        {
          $Info = file('indexini.txt');
          $Info = ModifIni($Info, '[Titre]', $Titre);
          $Info = ModifIni($Info, '[Sous-titre]', $STitre);
          $Info = ModifIni($Info, '[PhotoId]', $ImgAdm);
          $Info = ModifIni($Info, '[ImgAdrEmail]', $ImgMail);
          $N = count($Info);
          $Inf = '';
          for ($i = 0; $i < $N; $i++)
          { // Transformation du tableau $Info en une chaîne $Inf
            $Inf = $Inf.$Info[$i];
          }
          $Hnd = fopen('indexini.txt', 'w'); // ouverture du fichier d'ini
          fwrite($Hnd, $Inf); // Enregistrement dans le fichier d'ini
          fclose($Hnd); // Fermeture du fichier d'ini
        }  
      }                            
    ?>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <meta content="text/html; charset=ISO-8859-1"  http-equiv="content-type">
        <title>
          Administration
        </title>
        <link href="Images/GlPhot.ico" rel="SHORTCUT ICON">
    <script type="text/javaScript">
    function Aide(Ancre)
    {
      document.location.href='Aide/AideGlPhot.html#'+Ancre;
    }
     
    MemItem = '';
     
    function ChgtOrd(Item)
    {
      if (MemItem == '')
      {
        Item.style.color = '#0000FF';
        Item.style.fontWeight = "bold";
        MemItem = Item.innerHTML;
      }
      else
      {
        if (MemItem == Item.innerHTML)
        {
          Item.style.color = '#000000';
          Item.style.fontWeight = "normal";
          MemItem = '';
        }
        else
         document.location.href='Admin.php?ValidGl=Oui&G=O2&T1='+MemItem+'&T2='+Item.innerHTML;
      }
    }
     
    </script>
      </head>
      <body style="font-family: Verdana; font-size: 10pt; background-color: rgb(204, 204, 204); color: rgb(0, 0, 0);" alink="#ee0000" link="#0000ee" vlink="#551a8b">
        <center>
          <table border="1" cellpadding="0" cellspacing="0">
            <tr>
              <td>
                <img src="Images/GlPAdm.jpg" alt="">
              </td>
            </tr>
          </table>
          <br>
          <?php
            if (!isset($_SESSION['IDMP']))
            { // Formulaire d'identification
              echo '<form style="width: 640px;" method="GET" action="Admin.php"  name="PrmAdmin">';
                echo '&nbsp;Identifiant : &nbsp;';
                echo ' <input size="32" name="NomAdm">';
                echo '&nbsp; &nbsp;Mot de passe : &nbsp;';
                echo '<input maxlength="8" size="10" name="MtPAdm"  type="password">';
                echo '&nbsp; &nbsp;&nbsp;';
                echo '<input name="ValidID" value="Valider" type="submit">';
              echo '</form>';
              if ($_SESSION['TEST'] == 0)
              {
                echo '<br><span style="font-weight: bold; color: rgb(204, 0, 0);">';
                echo "ATTENTION : Les données du fichier d'initalisation sont certainement corrompues.</span>";
              }  
            }
            else
            { 
              switch ($Formule)
              {
                case 0:  // Formulaire de gestion des galeries
    						  $link = CnxBase();
                  $Tables = OuvrirTable_Mod('Albums', $link); // Ouvrir la table des différentes galeries
                 $Result = mysqli_query($link, "SELECT * FROM $Tables ORDER BY NoOrdre");
                  $NbTbl = mysqli_num_rows($Result); // Le nombre de galeries dans la table "Albums"
     
                  echo '<br><br><table style="font-size: 10pt;" border="1" cellpadding="0" cellspacing="0"><tr><td>';
                  echo '<form style="width: 660px;" method="GET" action="Admin.php" name="GalAdmin">';
                    echo '<input name="ValidGl" type="hidden">';
                    echo '<br>&nbsp;&nbsp;&nbsp;&nbsp;<input onclick="this.form.submit()" name="G" value="P" type="radio">';
                    echo ' Paramétrer la présentation de "<span style="font-weight: bold; color: rgb(204, 0, 0);">Galerie Photo</span>".';
                    echo '<br><br>&nbsp;&nbsp;&nbsp;&nbsp;<input onclick="this.form.submit()" name="G" value="A" type="radio"> Ajouter une galerie : ';
                    echo '<input size="32" name="NomGal"> <small>(nom de la table sans accents ni espaces)</small>';
                    echo '<br><br>';
                    if ($NbTbl > 0)
                    { // Les options Ordonner, Supprimer et Modifier n'existent que si des galeries existent
                      echo '&nbsp;&nbsp;&nbsp;&nbsp;';
                      if ($Action == 'O1')
                        echo '<input onclick="this.form.submit()" name="G" value="O1" checked="checked" type="radio"> Ordonner les galeries. ';
                      else  
                        echo '<input onclick="this.form.submit()" name="G" value="O1" type="radio"> Ordonner les galeries. ';
                      echo '<br><br><table style="text-align: left; margin-left: 14px; width: 630px;" border="1" cellpadding="0" cellspacing="0">';
                      echo '<tr><td>';
                        echo '<table style="text-align: left; width: 100%;" border="0" cellpadding="4" cellspacing="0">';
                        echo '<tr><td style="width: 200px;"><small>';
                        echo '<input onclick="this.form.submit()" name="G" value="S" type="radio"> Supprimer une galerie :<br><br>';
                        echo '<input onclick="this.form.submit()" name="G" value="M" type="radio"> Modifier une galerie :</small></td>';
                        echo '<td style="text-align: center;">';
                        echo '<select name="Galerie">';
                        while($Album = mysqli_fetch_row($Result)) // Listage des différentes galeries
                        {
                          echo "<option>".$Album[1]."</option>";
                        }
                        echo '</select>';
                        echo '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input name="VisuGl" value="Voir les galeries" type="submit">';
                      echo '</td></tr></table>';
                      echo '</td></tr></table>';
                    echo '<br>&nbsp;&nbsp;&nbsp;&nbsp;<input onclick="this.form.submit()" name="G" value="V" type="radio">';
                    echo ' Consulter le nombre de visites des galeries.';
                    }
                  echo '</form>';
                  echo '</td></tr></table>';
                  echo '<br><center><table style="text-align: left; width: 660px;" border="0" cellpadding="0" cellspacing="0">';
                  echo '<tr><td style="text-align: right;">';
                  if ($NbTbl > 0)
                    $Aide = 'AdmP';
                  else
                    $Aide = 'Adm'  ;
                  echo "<input onclick=\"Aide('".$Aide."')\" value=\"Aide\" type=\"button\">";
                  echo '</td></tr></table></center>';
     
                  if ($Action == 'O1') // Ordonnancement des galeries
                  {
                    echo '<br><center><table style="width: 300px;" border="1" cellpadding="4" cellspacing="0">';
                    echo '<tbody style="font-size: 10pt;">';
                    echo '<tr style="text-align: center; font-weight: bold; font-size: 10pt; background-color: rgb(204, 255, 255);">';
                    echo '<td style="width: 20px;">N°</td><td>Nom de table des galeries</td></tr>';
                    $Result = mysqli_query($link, "SELECT * FROM Albums ORDER BY NoOrdre");
                    while($Album = mysqli_fetch_row($Result)) // Listage des différentes galeries
                    {
                      echo '<tr style="background-color: rgb(255, 255, 204);">';
                      echo '<td style="text-align: right;">'.$Album[15].'</td>';
                      echo '<td style="text-align: left;" onclick="ChgtOrd(this)">'.$Album[1].'</td></tr>';
                    }
                    echo '</tbody></table></center>';
                  }
     
                  break;
                case 2:  // Formulaire de paramétrage de "Galerie Photo"
                  echo '<big><span style="font-weight: bold; color: rgb(204, 0, 0);">Paramétrage de "Galerie Photo"</span></big>';
                  echo '<br><br><table border="1" cellpadding="0" cellspacing="0"><tr><td>';
                  echo '<form style="width: 540px;" method="GET" action="Admin.php" name="GalInstall">';
                    echo '<br><center><table style="width: 520px;" border="0" cellpadding="5" cellspacing="0">';
                    echo '<tr>';
                      echo '<td><small>Titre principal de la galerie : </small></td>';
                      echo "<td><input size=\"32\" name=\"TitreGal\" value=\"".$_SESSION['TitrePrinc']."\"></td>";
                    echo '</tr>';
                    echo '<tr>';
                      echo '<td><small>Titre secondaire de la galerie : </small></td>';
                      echo "<td><input size=\"32\" name=\"STitreGal\" value=\"".$_SESSION['STitrePrinc']."\"></td>";
                    echo '</tr>';
                    echo '<tr>';
                      echo '<td><small>Image de l\'administrateur : <br>';
                      echo '<small>&nbsp;Taille maxi (64 x 64 pixels)</small></small></td>';
                      echo '<td><select name="ImgAdm">'; // Liste déroulante des images ...
                      if ($handle = opendir('Images/')) // ... contenues dans le répertoire "/Images"
                      {  
                        while (false !== ($file = readdir($handle))) // Listage des images
                          if ($file != "." && $file != "..")
                          {
                            if ($file == $_SESSION['PhotoId']) // prévisualisation sur l'image du fichier "indexini.txt"
                              echo "<option selected=\"selected\">".$file."</option>";
                            else
                              echo "<option>".$file."</option>";
                          }
                        closedir($handle);
                      }  
                      echo '</select></td>';
                    echo '</tr>';
                    echo '<tr>';
                      echo '<td><small>Image de l\'adresse e-mail : <br>';
                      echo '<small>&nbsp;Taille maxi (180 x 100 pixels)</small></small></td>';
                      echo '<td><select name="ImgMail">'; // Liste déroulante des images ...
                      if ($handle = opendir('Images/')) // ... contenues dans le répertoire "/Images" 
                      {
                        while (false !== ($file = readdir($handle))) // Listage des images
                          if ($file != "." && $file != "..")
                          {
                            if ($file == $_SESSION['AdrEmail']) // prévisualisation sur l'image du fichier "indexini.txt"
                              echo "<option selected=\"selected\">".$file."</option>";
                            else
                              echo "<option>".$file."</option>";
                          }
                        closedir($handle);
                      }  
                      echo '</select></td>';
                    echo '</tr>';
                    echo '</table></center>';
                    echo '<br><center><table border="0" cellpadding="0" cellspacing="0">';
                    echo '<tr><td>';
                    echo '<input name="ValidPrm" value="Valider" type="submit">';
                    echo '&nbsp; &nbsp; &nbsp;';
                    echo '<input name="AnnulPrm" value="Annuler" type="reset">';
                    echo '&nbsp; &nbsp; &nbsp;';
                    echo '<input name="RetourPrm" value="Retour à la page précédente" type="submit">';
                    echo '&nbsp; &nbsp; &nbsp;<input onclick="Aide(\'PrmPres\')" value="Aide" type="button">';
                    echo '</td></tr></table></center>';
                  echo '</form>';
                  echo '</td></tr></table>';
                  $Formule = 0;
                  break;
                case 3: // Consultation des visites des galeries
                  echo '<big><span style="font-weight: bold; font-family: Verdana; color: rgb(204, 0, 0);">';
                  echo 'Statistiques des visites des GALERIES';
                  echo '<br><br>';
                  echo '<small style="color: rgb(0, 0, 255);">';
                  $jour = date("d/m/Y");
                  $heure = date("H:i:s");
                  echo "au $jour à $heure";
                  echo '</small></span><br><br><br></big>';
                  echo '<table style="text-align: left;" border="1"  cellpadding="2" cellspacing="1">';
                    echo '<tbody style="font-family: Verdana;">'; // Ecriture des titres des colonnes
                      echo '<tr style="text-align: center; font-weight: bold; background-color: rgb(204, 255, 255);">';
                        echo '<td  style="width: 25px;"><small>N°</small></td>';
                        echo '<td style="width: 150px;"><small>Nom de la galerie</small></td>';
                        echo '<td style="width: 54px;"><small>Nb Cnx</small></td>';
                        echo '<td style="width: 154px;"><small>Dernière connexion</small></td>';
                      echo '</tr>';
                  $link = CnxBase();                // On se connecte à la base 
                  $Tables = OuvrirTable('Albums');  // Ouvrir la table des différentes galeries
                  $Result = mysqli_query($link, "SELECT NomTable FROM $Tables");
                  $NbTbl = mysqli_num_rows($Result); // Le nombre de galeries dans la table
                  $NoLigne = 0;
                  $Aujourd = date("d/m/Y");
                  while ($row = mysqli_fetch_row($Result))
                  {                                 // Balayage de toutes les galeries
                    $NoLigne++;
                    $Galerie = 'Nb_'.$row[0];       // Nom de la galerie recherchée (= Préfixe "Nb_" + nom de la table de la galerie)
                    $result = mysqli_query($link, "SELECT id,ipClient,dh FROM $Galerie");
                    if ($result)
                    { // Vrai seulement si la structure de la table est "id,ipClient,dh"
                      $num_rows = mysqli_num_rows($result); // Nombre de lignes (de visites) de la galerie concernée
                      $LgIdMax = mysqli_query($link, "SELECT max(id) FROM $Galerie", $link); // Pointeur sur l'id max
                      $IDMax = mysqli_fetch_row($LgIdMax); // Exploitation de ce pointeur
                      $LgMax = mysqli_query($link, "SELECT dh FROM $Galerie WHERE id = $IDMax[0]", $link); // Pointeur sur la ligne ou id est max
                      $ValMax = mysqli_fetch_row($LgMax);  // Exploitation de ce pointeur
                      if ($Aujourd == substr($ValMax[0], 0, 10))
                        echo '<tr style="background-color: rgb(255, 204, 255);">';
                      else
                        echo '<tr style="background-color: rgb(255, 255, 204);">';
                      echo '<td style="text-align: center;"><small>'.$NoLigne.'</small></td>';     // Numéro de la ligne
                      echo '<td><small>'.$row[0].'</small></td>';                                  // Nom de la galerie
                      echo '<td style="text-align: right;"><small>'.$num_rows.'</small></td>';     // Nombre de visites
                      echo '<td style="text-align: right;"><small>'.$ValMax[0].'</small></td>';    // Date de la dernière visite
                    }
                  }
                  echo '</tbody>';
                  echo '</table>';
                  echo '<br>';
                  echo '<form action="Admin.php">';
                    echo '<input value="Retour à la page précédente" type="submit">';
                  echo '</form>';
                  break;  
              }
            }
          ?>
        </center>
      </body>
    </html>
    Si vous avez une idée de ce qui cloche.

    Désolé pour la longueur du propos.

    Cordialement.

    Pierre

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1- ajoute :
    Tu verras bien ce que tu récupères.

    2- Par contre....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
              $enrg = "INSERT INTO Albums(NomTable) VALUES('$Gal')";
    OK, tu fais des "// Test de non injection SQL"...

    mais là, il y a un GROSSE FAILLE DE SECURITE !!

    On ne mets JAMAIS directement dans une requête une données provenant de l'extérieur ! ($_POST, $_GET ou autre)

  3. #3
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 089
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 089
    Points : 1 055
    Points
    1 055
    Par défaut
    Merci jreaux62 pour ces précisions.

    Citation Envoyé par jreaux62 Voir le message
    ... 1- ajoute :
    Tu verras bien ce que tu récupères. ...
    Je le mets où ?

    Je l'ai placé après la ligne 3 et lorsque j'ai un réponse (2 premiers cas), je vois des données, mais dans le 3ème cas, celui où le nom est correct, je ne vois rien. C'est comme si je ne revenais pas au code PHP d'analyse des actions lignes 10 à 167.

    Pour ce qui est de la sécurité, je me doute que ce que j'avais écrit il y a maintenant plus de 15 ans n'est pas au top et il va falloir que j'y remédie (je n'ai plus fait de PHP de puis cette date ).

    Cordialement.

    Pierre

  4. #4
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 089
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 089
    Points : 1 055
    Points
    1 055
    Par défaut
    Bon, je m'y perds. Quand le nom est valide, je suis renvoyé à une autre page (autre fichier *.php) et c'est donc ce dernier qui ne fonctionne pas ...

    Désolé.

    Cordialement.

    Pierre

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bizarre... Bizarre... (vous avez dit Bizarre... ?)

    Peux-tu montrer le code HTML généré du formulaire ? -> "Ctrl"+"U"

  6. #6
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 089
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 089
    Points : 1 055
    Points
    1 055
    Par défaut
    Le voilà, mais comme je l'ai dit précédemment, le problème ne vient pas de là, il vient d'une autre page dans laquelle, d'ailleurs, j'ai résolu le problème (des remplacement de mySQL par mySQLi mal réalisés).

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <meta content="text/html; charset=ISO-8859-1"  http-equiv="content-type">
        <title>
          Administration
        </title>
        <link href="Images/GlPhot.ico" rel="SHORTCUT ICON">
    <script type="text/javaScript">
    function Aide(Ancre)
    {
      document.location.href='Aide/AideGlPhot.html#'+Ancre;
    }
     
    MemItem = '';
     
    function ChgtOrd(Item)
    {
      if (MemItem == '')
      {
        Item.style.color = '#0000FF';
        Item.style.fontWeight = "bold";
        MemItem = Item.innerHTML;
      }
      else
      {
        if (MemItem == Item.innerHTML)
        {
          Item.style.color = '#000000';
          Item.style.fontWeight = "normal";
          MemItem = '';
        }
        else
         document.location.href='Admin.php?ValidGl=Oui&G=O2&T1='+MemItem+'&T2='+Item.innerHTML;
      }
    }
     
    </script>
      </head>
      <body style="font-family: Verdana; font-size: 10pt; background-color: rgb(204, 204, 204); color: rgb(0, 0, 0);" alink="#ee0000" link="#0000ee" vlink="#551a8b">
        <center>
          <table border="1" cellpadding="0" cellspacing="0">
            <tr>
              <td>
                <img src="Images/GlPAdm.jpg" alt="">
              </td>
            </tr>
          </table>
          <br>
          HoteBase = localhost<br>NomBase = Photos<br>Mdp = XXXXX<br>link E pas OK<br><br><br><table style="font-size: 10pt;" border="1" cellpadding="0" cellspacing="0"><tr><td><form style="width: 660px;" method="GET" action="Admin.php" name="GalAdmin"><input name="ValidGl" type="hidden"><br>&nbsp;&nbsp;&nbsp;&nbsp;<input onclick="this.form.submit()" name="G" value="P" type="radio"> Paramétrer la présentation de "<span style="font-weight: bold; color: rgb(204, 0, 0);">Galerie Photo</span>".<br><br>&nbsp;&nbsp;&nbsp;&nbsp;<input onclick="this.form.submit()" name="G" value="A" type="radio"> Ajouter une galerie : <input size="32" name="NomGal"> <small>(nom de la table sans accents ni espaces)</small><br><br></form></td></tr></table><br><center><table style="text-align: left; width: 660px;" border="0" cellpadding="0" cellspacing="0"><tr><td style="text-align: right;"><input onclick="Aide('Adm')" value="Aide" type="button"></td></tr></table></center>    </center>
      </body>
    </html>

    Cordialement.

    Pierre

Discussions similaires

  1. Erreurs suite mise à jour vers Apache Tomcat 6
    Par levalp dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 06/06/2011, 15h34
  2. Pb suite mise à jour vers Postgresql 9 (bis)
    Par levalp dans le forum Administration
    Réponses: 4
    Dernier message: 18/05/2011, 14h47
  3. Pb suite mise à jour vers Postgresql 9
    Par levalp dans le forum Administration
    Réponses: 1
    Dernier message: 17/05/2011, 16h27
  4. [phpMyAdmin] Problème suite à mise à jour vers phpMyAdmin 2.8.1
    Par inginfodz dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 24/05/2006, 10h31
  5. [Mise à jour] Personnel SP3 vers Standard
    Par frodon dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 06/07/2005, 08h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo