RE-bonjour,

Autre plantade dont je viens de m'apercevoir de la part d'un indélicat personnage soi-disant compétent et parti avec mon pognon, et les solutions... Grrrrrr...

C'est encore un pb de javascript. Je vous soumets la chose sans trop y croire, parce que là ça me semble plus grave. Mais comme j'y pige que dalle, on ne sait jamais ! Je suis optimiste de nature !

J'ai fait un modèle de page publicitaire dans lequel chaque annonceur pourra modifier et supprimer ses textes et ses images à volonté.
Pour modifier sa page, il se connecte avec son nom et son mot de passe, il choisit modifier les textes (modif.php) ou modifier les images(modif-images.php), fait ses modifs, enregistre et un lien l'emmène sur sa page pour voir les changements. Ensuite, soit il continue les modifs, soit il se déconnecte.
C'est sur modif-images.php que ça coince. Sous chacune des images de la page de l'annonceur, il y a un lien Supprimer cette image.
Quand on cliquait dessus, un petit pop-up s'ouvrait, demandait si on était sûr, on confirmait, et on arrivait sur la page de confirmation.
Maintenant, quand je clique sur Supprimer cette image, j'arrive sur une page blanche, et l'adresse est celle-ci : http://www.cz.com/pub/commerces/01/
c'est-à-dire à la racine du dossier dans lequel se trouve tous les fichiers.
Et quand je vérifie dans la bdd, l'image est toujours là.

Pendant qu'il mettait en place tout ça, j'avais eu le même problème (enfin je crois me souvenir que c'était le même...) et il m'avait dit : "ça y est, c'est réparé, la fonction javascript avait tout simplement disparu !"
Est-ce que ce serait à nouveau qui s'est passé ?
Ce que je ne comprends pas, c'est qu'il n'y avait pas de fichier .js dans ce dossier. J'ai fouillé partout. Et puis je ne vois pas pourquoi je l'aurais supprimé ! (j'ai encore à peu près toute ma tête). Alors comment ça peut "disparaître" ?
Les seuls changements que j'ai fait sont un changement de dossier, et puis après j'ai tout remis dans ce dossier initial. Les changements de liens suivent normalement (je me sers de DW, et il n'y a aucun autre problème sur la page), mais là y'a peut-être eu un os...
Autre chose qui m'étonne : impossible de retrouver dans le code des pages, le texte du pop-up... ce qui tenderait à prouver que quelque chose a bien disparu. Mais quoi, et où ?

Bref.
Ça vous dit quelque chose ?
Je peux vous donner un login/mp en mp si vous voulez...
Merci à celui/celle qui a lu jusque là et m'aidera peut-être !

La page modif-images.php :

Code php : 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
<?php 
session_start();
require_once('../../../../Connections/conncz.php');
if(!isset($_SESSION['ID_pub']) && $_SESSION['ID_pub'] == "")
{       
    //echo "ici 1";
    $_SESSION['pageToRedirect'] = 'modif-images.php';
    $_SESSION['erreur'] = "Vous ne pouvez pas accéder à ce fichier.";
    $errorGoTo = "identification-maj.php";
    if (isset($_SERVER['QUERY_STRING'])) {
      //$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
      $errorGoTo .= $_SERVER['QUERY_STRING'];
    }
    header(sprintf("Location: %s", $errorGoTo));     
}
else
{
  if(isset($_POST['test']) && $_POST['test'] <> "")
  {     
      $_SESSION['erreur'] = '';
      $_SESSION['ErreurTaille'] = '';
      $_SESSION['ErreurXT'] = '';
      mysql_select_db($database_conncz, $conncz) or die("erreur connection bdd");   
      $idPub = $_SESSION['ID_pub'];
      $erreur = false;
 
      //for ( $n = 1; $n < (count($_POST['txtCount']) + 1);$n++ )
      for ( $n=1; $n < (count($_POST['txtCount']) + 1) ;$n++ )
	    {	  
          $nom = 'images'.$n;    
          $dossier = '../../../images/pub/img-clients/';
          $fichier = basename($_FILES[$nom]['name']);
          //echo "<br/>nom fichier TMP : ".$_FILES['txtEmplacement']['tmp_name'][$n]."<Br/>" ;
 
          $taille_maxi = 10000000;
          //$taille_maxi = 100;                  
          $taille = filesize($_FILES[$nom]['tmp_name']);
          if(isset($taille) && $taille != "")
          {
            //echo $nom.' -> '.$taille;
            $extensions = array('.png', '.gif', '.Png', '.jpg', '.jpeg', '.PNG', '.GIF', '.JPG', '.JPEG');
            $extension = strrchr($_FILES[$nom]['name'], '.'); 
 
            //Début des vérifications de sécurité...
            if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
            {
                 //echo 'test pas bonne extensions';
                 $_SESSION['ErreurXT'] = ' Une erreur s\'est produite.<br /><br /> Vérifiez que la photo que vous nous envoyez est bien de type "image", son nom complet doit donc se terminer par .png ou .PNG ou .gif ou .GIF ou .jpg ou .JPG ou .jpeg ou .JPEG <br /><br />Si, malgré tout, l\'erreur se reproduit, prenez contact avec nous. Merci !';
                 $_SESSION['erreur'] = $_SESSION['erreur'] . ' Une erreur s\'est produite.<br /><br /> Vérifiez que la photo que vous nous envoyez est bien de type "image", son nom complet doit donc se terminer par .png ou .PNG ou .gif ou .GIF ou .jpg ou .JPG ou .jpeg ou .JPEG <br /><br />Si, malgré tout, l\'erreur se reproduit, prenez contact avec nous. Merci !';
                 $erreur = true;
            }
            if($taille>$taille_maxi)
            {
                 //echo 'trop gros';
                 $_SESSION['ErreurTaille'] =  ' L\'image est trop grande, vous devez la redimensionner. Voyez nos conseils en bas de la page de modification des images. <br />';
                 $_SESSION['erreur'] = $_SESSION['erreur'] . ' L\'image est trop grande, vous devez la redimensionner. Voyez nos conseils en bas de la page de modification des images. <br />';
                 $erreur = true;
            }
            if(!isset($erreur)|| $erreur == false) //S'il n'y a pas d'erreur, on upload
            {
                 //On formate le nom du fichier ici...
                 $fichier = strtr($fichier, 
                      'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
                      'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
                 $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
                 $fichier = $idPub."-".$fichier; 
                 // echo 'avant upload !';
                 if(move_uploaded_file($_FILES[$nom]['tmp_name'], $dossier.$fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
                 {
                      //echo 'Upload effectué avec succès !';  
                      // On récupère les valeurs.  
            	        $sqlInsertPhoto = "Update pub SET img".$n." = '".$fichier."' WHERE ID_pub = ".$idPub.";"; 
 
                      //echo "sql -> " . $sqlInsertPhoto;    
                      $retour_requeteInsert = mysql_query($sqlInsertPhoto, $conncz) or die("erreur requète :". $sqlInsertPhoto); 
 
                      //echo $cptPhotoBDD." -> ".$sqlInsertPhoto ."<br />";   
                      //$cptPhotoBDD++;  
                 }
                 else //Sinon (la fonction renvoie FALSE).
                 {
                      $_SESSION['erreur'] = $_SESSION['erreur'] . 'Echec de l\'upload ! <br />';
                      $erreur = true;
                 }
            }
            else
            {
                //echo $erreur;
                //$_SESSION['erreur'] = $erreur;
                $erreur = true;   
            }  
          }
                  	    }
 
 
	    if(!isset($erreur) || $erreur == false) //S'il n'y a pas d'erreur, on upload
      {
          $insertGoTo = "confirmation.php";          
          if (isset($_SERVER['QUERY_STRING'])) {
            //$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
            $insertGoTo .= $_SERVER['QUERY_STRING'];
          }
          header(sprintf("Location: %s", $insertGoTo));
      }
      else
      {
          $_SESSION['redirect'] = $_SERVER['PHP_SELF'];       
 
          $errorGoTo = "erreur.php";
          if (isset($_SERVER['QUERY_STRING'])) {
 
            //$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
            $errorGoTo .= $_SERVER['QUERY_STRING'];
          }
          header(sprintf("Location: %s", $errorGoTo));
      }    
 
//      mysql_select_db($database_conncz, $conncz);
//      $Result1 = mysql_query($updateSQL, $conncz) or die(mysql_error());  
 
//      if(isset($_POST['ID_pub']))
//      {
//          $_SESSION['pubID'] =  $_POST['ID_pub'];
//      }
//      else
//      {
//          $_SESSION['pubID'] =  "erreur"; 
//      }
//      $updateGoTo = "confirmation.php";
//      if (isset($_SERVER['QUERY_STRING'])) {
//        $updateGoTo .= (strpos($updateGoTo, '?')) ? "&" : "?";
//        $updateGoTo .= $_SERVER['QUERY_STRING'];
//      }
//      header(sprintf("Location: %s", $updateGoTo));
//    }
 
  }
  else
  {
    if($_SESSION['ID_pub'] == "")
    {
          $_SESSION['erreur'] = "Vous ne pouvez pas accéder à ce fichier.";
          $errorGoTo = "identification-maj.php";
          if (isset($_SERVER['QUERY_STRING'])) {
            //$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
            $errorGoTo .= $_SERVER['QUERY_STRING'];
          }
          header(sprintf("Location: %s", $errorGoTo));
    }
    else
    {
        //echo "ici 3";
    $colname_Recordset1 = "-1";
    if (isset($_GET['ID_pub'])) {
      $colname_Recordset1 = $_GET['ID_pub'];
    }   
 
    $idPub =   $_SESSION['ID_pub'];
    //$_SESSION['ID_pub'] = "";    
 
    mysql_select_db($database_conncz, $conncz);
 
    //$query_Recordset1 = sprintf("SELECT * FROM pub WHERE ID_pub = %s", GetSQLValueString($colname_Recordset1, "int"));
    $query_Recordset1 = "SELECT * FROM pub WHERE ID_pub = ". $idPub;
    $Recordset1 = mysql_query($query_Recordset1, $conncz) or die(mysql_error());
    $row_Recordset1 = mysql_fetch_assoc($Recordset1);
    $totalRows_Recordset1 = mysql_num_rows($Recordset1);$colname_Recordset1 = "-1";
      if (isset($_POST['nom'])) {
        $colname_Recordset1 = $_POST['nom'];
      }   
 
    //mysql_select_db($database_conncz, $conncz);
    //$query_Recordset1 = sprintf("SELECT * FROM pub WHERE client = %s", GetSQLValueString($colname_Recordset1, "text"));
    //$Recordset1 = mysql_query($query_Recordset1, $conncz) or die(mysql_error());
    //$row_Recordset1 = mysql_fetch_assoc($Recordset1);
    //$totalRows_Recordset1 = mysql_num_rows($Recordset1);
 
function afficherPhoto($nomFoto)
{
  $result = true;
  $debut = substr($nomFoto,0,2);
  if($debut == "")
  {
    $result = false;  
  } 
  return $result;
}
function redimimage($urlimg,$maxX,$maxY)
{
   if (file_exists($urlimg)) {
    $size = getimagesize($urlimg);
    list($width, $height) = $size;
    $ratiox=$width/$maxX;
    $ratioy=$height/$maxY;
    if($ratiox>$ratioy){$ratio=$ratiox;}else{$ratio=$ratioy;}
    if($ratio<1){$ratio=1;}
    echo "<img border=0 src=".$urlimg." width=".(int)($width/$ratio)." height=".(int)($height/$ratio)." />";
   }
}
?>

..............
et ça s'affiche comme ça :


Code php : 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
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
                                <tr>
                                  <td width="310" height="50" align="center" valign="middle" style="background-image:url(../../../images/pub/images/img2.jpg); background-position:center; background-repeat:no-repeat;"><?php
                                if(afficherPhoto($row_Recordset1['img2']) == true) {
 
                                  echo redimimage("../../../images/pub/img-clients/".$row_Recordset1['img2'],300,300); } ?>
                                    <input type="hidden" name="txtCount[]" />
                                    </td>
                                  <td rowspan="2" valign="middle" class="txtflou11" ><?php echo htmlentities($row_Recordset1['texte2'], ENT_COMPAT, 'iso-8859-1'); ?></td>
                                  </tr>
                                <tr>
                                  <td align="center" bgcolor="#FFE16C"><?php
                                if(afficherPhoto($row_Recordset1['img2']) == true) { ?>
                                    <a href="" class="verdana11seul" onclick="javascript:confirme(2);return false;">Supprimer&nbsp;l'image ci-dessus</a>
                                    <?php  }  ?>
                                <input name="images2" type="file" class="parcourir" /></td>
                                  </tr>
                              </table>


Toujours dans le même dossier, il y a une page supp-photo.php qui doit être nécessaire pour l'opération :

Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
session_start();
require_once('../../../../Connections/conncz.php');
mysql_select_db($database_conncz, $conncz) or die("erreur connection bdd");
 
$idPub = $_SESSION['ID_pub'];
$idImg = $_GET['idImg'];
 
if ($idImg >= 1 && $idImg <= 6)
{
  $sqlInsertPhoto = "Update pub SET img".$idImg." = '' WHERE ID_pub = ".$idPub.";";  
  $retour_requeteInsert = mysql_query($sqlInsertPhoto, $conncz) or die("erreur requète :". $sqlInsertPhoto);
}
header(sprintf("Location: %s", 'confirmation.php'));
?>