UPDATE Fonctionnel sur Easy php en local mais pas en ligne

UPDATE Fonctionnel sur Easy php en local mais pas en ligne - PHP - Programmation

Marsh Posté le 24-12-2008 à 10:12:43    

Hello à tous
 
J'ai un petit problème d'UPDATE sur un site admin qui gère des articles ( Catalogue )
Ceux-ci marchent très bien en local mais lorsque je charge le site sur le serveur web et que j'essaye de modifier un article
ma ligne s'efface au lieu d'enregistrer les données.
 
un peu de code :
 
 
<?php  
 
if(isset($_GET['enreg'])){
$reket = "UPDATE article SET Nom_Art='".ucfirst($_POST['nomArt'])."' , Ref_Art='".$_POST['ref']."', Prix_Art='".$_POST['prix']."', Designation_Art='".$_POST['description']."', Documentation_Art='".$_POST['docu']."', Image_Art='".$_SESSION['nomFichier']."',Image_Art_large ='".str_replace("_small","",$_SESSION['nomFichier'])."', Id_RubCata_Art='".$_POST['categorie']."' WHERE Id_Art='".$_SESSION['art_modif']."';";
 
$result = mysql_query($reket);
if (!$result) {
    die('Requête invalide : ' . mysql_error());
}
 
if ($result) echo"<script language='javascript'>window.location.href='listCatalogue.php?enreg=ok'</script>";
}  
 
?>
 
 
Pareil pour un autre UPDATE qui me sert à changer l'index d'enregistrement , déplacement vers le bas ou vers le haut  
 
<?php
 
if (isset($_GET['UpId'])){
 
 $rekdep= "SELECT * FROM news where Id_News < " .$_GET['UpId']." order by Id_News Desc limit 1;";
 $row = mysql_fetch_array(mysql_query($rekdep));
 
 if (!isset($row[0])){
  echo "<h3 class='message'>Déplacement impossible</h3>";
 }else{
   
  $exe = mysql_query("UPDATE IGNORE news SET Id_News = ".$row[0]." WHERE Id_News = ".$_GET['UpId']);
  if($exe){  
  //echo"<script language='javascript'>window.location.reload();<script>";  
  mysql_query("UPDATE IGNORE news SET Id_News = ".$_GET['UpId']." WHERE Id_News = ".$row[0]." AND Contenu_News like '".$row[1]."'" );
  }          
 }
}
 
if (isset($_GET['DownId'])){
 
 $rekdep= "SELECT * FROM news where Id_News >" .$_GET['DownId']." order by Id_News limit 1;";
 $row = mysql_fetch_array(mysql_query($rekdep));
 
 if (!isset($row[0])){
  echo "<h3 class='message'>Déplacement impossible</h3>";
 }else{  
  $exe = mysql_query("UPDATE IGNORE news SET Id_News = ".$row[0]." WHERE Id_News = ".$_GET['DownId']);
  if($exe){
  //echo"<script language='javascript'>window.location.reload();<script>";  
   mysql_query("UPDATE IGNORE news SET Id_News = ".$_GET['DownId']." WHERE Id_News = ".$row[0]." AND Contenu_News like '".$row[1]."'" );
  }  
 }
}
 
?>

Reply

Marsh Posté le 24-12-2008 à 10:12:43   

Reply

Marsh Posté le 24-12-2008 à 10:26:17    

Bonjour
Alors déjà colorise ton code parce que là c'est illisible. Pour çà, utilise les balises :
[ code=php] <?php ton code ?> [ /code] sans les espaces
 
Ensuite, tu utilises mysql_error(), et comme on n'est pas des devins, le mieux c'est retourner l'erreur qui s'affiche.

Reply

Marsh Posté le 24-12-2008 à 10:27:52    

[ code=php] <?php  
 
if(isset($_GET['enreg'])){
$reket = "UPDATE article SET Nom_Art='".ucfirst($_POST['nomArt'])."' , Ref_Art='".$_POST['ref']."', Prix_Art='".$_POST['prix']."', Designation_Art='".$_POST['description']."', Documentation_Art='".$_POST['docu']."', Image_Art='".$_SESSION['nomFichier']."',Image_Art_large ='".str_replace("_small","",$_SESSION['nomFichier'])."', Id_RubCata_Art='".$_POST['categorie']."' WHERE Id_Art='".$_SESSION['art_modif']."';";
 
$result = mysql_query($reket);
if (!$result) {
    die('Requête invalide : ' . mysql_error());
}
 
if ($result) echo"<script language='javascript'>window.location.href='listCatalogue.php?enreg=ok'</script>";
}  
 
?>  [ /code]

Reply

Marsh Posté le 24-12-2008 à 10:28:24    

euh relis bien mon message : vite les espaces dans les balises ;)

Reply

Marsh Posté le 24-12-2008 à 10:29:32    

ça ne colorise rien là
 
bon bref  
Il ne me renvoie pas d'erreur, il fait bien une modification de mon enregistrement mais en vidant les données

Reply

Marsh Posté le 24-12-2008 à 10:30:50    

Code :
  1. <?php  
  2.  
  3. if(isset($_GET['enreg'])){
  4. $reket = "UPDATE article SET Nom_Art='".ucfirst($_POST['nomArt'])."' , Ref_Art='".$_POST['ref']."', Prix_Art='".$_POST['prix']."', Designation_Art='".$_POST['description']."', Documentation_Art='".$_POST['docu']."', Image_Art='".$_SESSION['nomFichier']."',Image_Art_large ='".str_replace("_small","",$_SESSION['nomFichier'])."', Id_RubCata_Art='".$_POST['categorie']."' WHERE Id_Art='".$_SESSION['art_modif']."';";
  5.  
  6. $result = mysql_query($reket);
  7. if (!$result) {
  8.    die('Requête invalide : ' . mysql_error());
  9. }
  10.  
  11. if ($result) echo"<script language='javascript'>window.location.href='listCatalogue.php?enreg=ok'</script>";
  12. }  
  13.  
  14. ?>

Reply

Marsh Posté le 24-12-2008 à 10:31:06    

mais tu lis les messages ?
edit : à ça va mieux


Message édité par Profil supprimé le 24-12-2008 à 10:31:24
Reply

Marsh Posté le 24-12-2008 à 10:31:59    

Code :
  1. <?php
  2.  
  3. if (isset($_GET['UpId'])){
  4.  
  5. $rekdep= "SELECT * FROM news where Id_News < " .$_GET['UpId']." order by Id_News Desc limit 1;";
  6. $row = mysql_fetch_array(mysql_query($rekdep));
  7.  
  8. if (!isset($row[0])){
  9.  echo "<h3 class='message'>Déplacement impossible</h3>";
  10. }else{
  11.  
  12.  $exe = mysql_query("UPDATE IGNORE news SET Id_News = ".$row[0]." WHERE Id_News = ".$_GET['UpId']);
  13.  if($exe){  
  14.  //echo"<script language='javascript'>window.location.reload();<script>";  
  15.  mysql_query("UPDATE IGNORE news SET Id_News = ".$_GET['UpId']." WHERE Id_News = ".$row[0]." AND Contenu_News like '".$row[1]."'" );
  16.  }          
  17. }
  18. }
  19.  
  20. if (isset($_GET['DownId'])){
  21.  
  22. $rekdep= "SELECT * FROM news where Id_News >" .$_GET['DownId']." order by Id_News limit 1;";
  23. $row = mysql_fetch_array(mysql_query($rekdep));
  24.  
  25. if (!isset($row[0])){
  26.  echo "<h3 class='message'>Déplacement impossible</h3>";
  27. }else{  
  28.  $exe = mysql_query("UPDATE IGNORE news SET Id_News = ".$row[0]." WHERE Id_News = ".$_GET['DownId']);
  29.  if($exe){
  30.  //echo"<script language='javascript'>window.location.reload();<script>";  
  31.   mysql_query("UPDATE IGNORE news SET Id_News = ".$_GET['DownId']." WHERE Id_News = ".$row[0]." AND Contenu_News like '".$row[1]."'" );
  32.  }  
  33. }
  34. }
  35.  
  36. ?>

Reply

Marsh Posté le 24-12-2008 à 10:32:28    

quand tu dis, ta ligne s'efface, tu veux dire qu'elle se vide ? Attention c'est pas la même chose.

Reply

Marsh Posté le 24-12-2008 à 10:36:39    

mon Udapte ne me renvoie pas d'erreur  
elle fait bien une modification en me vidant les données précédentes et en prenant pas compte des nouvelles données saisies.

Reply

Marsh Posté le 24-12-2008 à 10:36:39   

Reply

Marsh Posté le 24-12-2008 à 10:41:06    

oui, donc elle n'efface pas la ligne comme tu le dis dans ton premier message.
 
As tu mis ton code en entier ?
Si oui, alors :
tu ne mets aucun session_start() : tu ne peux donc pas utiliser les sessions, et les variables sont vides.
Donc les champs sont vidés.  
Ensuite, tu ne testes pas les variables POST et GET, tu mets quand même à jour. Si elles sont vides, tes champs sont vidés.
Enfin, tu n'échappes pas tes données : tu es vulnérable aux injections SQL :/

Reply

Marsh Posté le 24-12-2008 à 10:43:55    

tu n'échappes pas tes données ?_?  (pas compris)

Reply

Marsh Posté le 24-12-2008 à 10:53:52    

c' bon g compris
 
et pour le test de GET et POST
la fonction ISSET n'est pas suffisante ?  
il y en existe d'autre de ce type ?

Reply

Marsh Posté le 24-12-2008 à 10:59:55    

isset ne sert pas à échapper les données

Reply

Marsh Posté le 24-12-2008 à 11:06:38    

mnyware a écrit :

tu n'échappes pas tes données ?_?  (pas compris)


 
c'est assez long à expliquer : recherche des choses sur Google à propos des injections SQL ;)
 
Pour GET et POST, isset n'est pas suffisant : on peut envoyer des champs vides que çà marchera.
Utilise empty : voir la doc

Reply

Marsh Posté le 24-12-2008 à 11:15:26    

Merci :D
 
j'essaye tous ça  ;)

Reply

Marsh Posté le 26-12-2008 à 10:13:13    

Hello !!!
 
Joyeux noel à tous !!!
 
Luc@s j'ai fait tous ce que tu m'as dit ... ça marche nikel en local une fois sur serveur web ça marche une fois sur deux .
j'ai fait afficher la requête que j'envoie , je l'exécute directement dans le phpMyAdmin du site en ligne et là ça marche ...
 
C'est vraiment Chelou

Reply

Marsh Posté le 26-12-2008 à 10:28:09    

que donne mysql_error() ? Quand tu dis çà marche une fois sur deux, c'est avec des données différentes ? Peut-on avoir le nouveau code STP ?

Reply

Marsh Posté le 26-12-2008 à 10:42:35    

Code :
  1. <?php
  2. include("../fonctions.php" );
  3. verif_page();
  4. ?>
  5. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  6. <html xmlns="http://www.w3.org/1999/xhtml">
  7. <head>
  8. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  9. <title>Modifier un article</title>
  10. <link href="adminStyl.css" rel="stylesheet" type="text/css" />
  11.  
  12. </head>
  13.  
  14. <body>
  15. <hr color="#CC9966" />
  16. <hr color="#CC9966" />
  17. <hr  color="#CC9966" />
  18. <h2 align="center">L'article...</h2>
  19. <br />
  20. <?php include("baseMenu.php" ); ?>
  21.  
  22. <?php
  23.     if (isset($_GET['idArt'])){
  24.         $req = "Select * from article where Id_Art = '".$_GET['idArt']."';";
  25.         $_SESSION['art_modif'] = $_GET['idArt'];
  26.     }
  27.     
  28.     $req2 = "Select * from rubriquecatalogue where Id_RubCata not like '1' and Id_RubCata not like '2' order by Nom_RubCata";
  29.     connexion();
  30.     if (isset($req)) $results = mysql_query($req);
  31.     if (isset($results)) $row = mysql_fetch_assoc($results);  
  32.     if (isset ($row)) $image = url_dir."/imagesCatalogue/".$row["Image_Art"] ; ?>
  33. <form action="<?php echo $_SERVER['PHP_SELF']."?enreg=ok"; ?>" method="post" name="modifArt" enctype="multipart/form-data">
  34.  <center>
  35.    <span class="form" style="color:#CC0000">
  36.    <?php if (isset ($row)) $_SESSION['nomFichier'] = $row["Image_Art"]; ?>
  37.    </span>
  38.  </center>
  39.  <br />
  40.  <div style="margin:1%;margin-left:32%;" class="Style4"> <strong>Ins&eacute;rer la balise &lt;br&gt; dans votre texte chaque fois que vous voulez effectuer un saut de ligne.<br />
  41.    Exemple: &nbsp;&nbsp;&nbsp;un&lt;br /&gt;chat <br />
  42.    Affichage :
  43.    <div align="center" style="display:block;width:60px;background-color:#CCCCCC;">&nbsp;&nbsp;&nbsp; un<br />
  44.      chat</div>
  45.    </strong> </div>
  46.  <table align="center" width="60%">
  47.    <tr>
  48.      <td class="form">* Son nom :</td>
  49.      <td class="form"><input type="text" name="nomArt" size="40" value="<?php if(isset ($row)) echo $row["Nom_Art"]; ?>"/></td>
  50.    </tr>
  51.    <tr>
  52.      <td class="form">* Sa référence:</td>
  53.      <td class="form"><input type="text" name="ref" size="30" value="<?php if(isset ($row)) echo $row["Ref_Art"]; ?>"/></td>
  54.    </tr>
  55.    <tr>
  56.      <td class="form">Sa documentation :</td>
  57.      <td class="form"><input type="text" name="docu" size="40" value="<?php if(isset ($row)) echo $row["Documentation_Art"]; ?>"/></td>
  58.    </tr>
  59.    <tr>
  60.    <tr>
  61.      <td class="form">Son prix :</td>
  62.      <td class="form"><input type="text" name="prix" size="15" value="<?php if(isset ($row)) echo $row["Prix_Art"]; ?>"/></td>
  63.    </tr>
  64.    <tr>
  65.      <td class="form">* Sa d&eacute;signation:</td>
  66.      <td class="form"><textarea cols="40" rows="10" name="description"> <?php if (isset ($row)) echo $row["Designation_Art"]; ?>
  67. </textarea></td>
  68.    </tr>
  69.    <tr>
  70.      <td class="form">Son image :</td>
  71.      <td class="form"><img src = "<?php echo $image ;?> " width=130 height=67/></td>
  72.    </tr>
  73.    <tr>
  74.      <td class="form">Changer l'image :</td>
  75.      <td class="form"><input type="file" name="image" size="40"/></td>
  76.    </tr>
  77.    <tr>
  78.      <td class="form">* Sa catégorie :</td>
  79.      <td class="form"><select name="categorie">
  80.          <?php $resultsRub=mysql_query($req2);
  81.                                                                     while ($row2= mysql_fetch_assoc($resultsRub)){
  82.                                                                         if ($row2["Id_RubCata"] === $row['Id_RubCata_Art'])                                                                        
  83.                                                     echo"<option selected id=".$row2["Nom_RubCata"]." value=".$row2['Id_RubCata'].">".$row2['Nom_RubCata']."</option>";
  84.                                                                         else
  85.                                                     echo"<option id=".$row2["Nom_RubCata"]." value=".$row2['Id_RubCata'].">".$row2['Nom_RubCata']."</option>";
  86.                                                                     } ?>
  87.        </select></td>
  88.    </tr>
  89.  </table>
  90.  <br />
  91.  <center>
  92.    <input type="submit" name="validerModif" value="Enregistrer"/>
  93.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  94.    <input type="reset" name="annulerModif" value="Annuler" onclick="location.href='listCatalogue.php';" />
  95.  </center>
  96.  <br />
  97. </form>
  98. <?php
  99. if(isset($_GET['enreg']) && !empty($_GET['enreg'])){
  100.  
  101. if(!empty($_FILES["image"]["name"]))
  102.  
  103. {
  104.     //nom du fichier choisi:
  105.     $nomFichier    = $_FILES["image"]["name"];
  106.     //nom temporaire sur le serveur:
  107.     $nomTemporaire = $_FILES["image"]["tmp_name"] ;
  108.     //type du fichier choisi:
  109.     $typeFichier   = $_FILES["image"]["type"] ;
  110.     //poids en octets du fichier choisit:
  111.     $poidsFichier  = $_FILES["image"]["size"] ;
  112.     //code de l'erreur si jamais il y en a une:
  113.     $codeErreur    = $_FILES["image"]["error"] ;
  114.     
  115.     //chemin qui mène au dossier qui va contenir les fichiers uplaod:
  116.     $chemin = "./imagesCatalogue/" ;
  117.  
  118.     if(move_uploaded_file($nomTemporaire, $chemin.$nomFichier)){
  119.     $_SESSION['nomFichier'] =$nomFichier;}
  120.     
  121. }
  122.  
  123.     $reket = "UPDATE article SET Nom_Art = '".ucfirst($_POST['nomArt'])."' , Ref_Art = '".$_POST['ref']."', Prix_Art = '".$_POST['prix']."', Designation_Art = '".$_POST['description']."', Documentation_Art = '".$_POST['docu']."', Image_Art = '".$_SESSION['nomFichier']."',Image_Art_large = '".str_replace("_small","",$_SESSION['nomFichier'])."', Id_RubCata_Art = '".$_POST['categorie']."' WHERE Id_Art = '".$_SESSION['art_modif']."';";
  124.  
  125. $result = mysql_query($reket);
  126. if (!$result) {
  127.    die('Requête invalide : ' . mysql_error());
  128. }
  129. if ($result) echo "<script language='javascript'>window.location.href='listCatalogue.php?enreg=ok'</script>";
  130.  
  131. } ?>
  132.  
  133.  
  134. </body>
  135. </html>

Reply

Marsh Posté le 26-12-2008 à 10:45:05    

C'est toute ma page là  pour la modification d'un article  
et je n'ai toujours pas de mysql_error , que je teste sans la redirection finale bien entendu

Reply

Marsh Posté le 26-12-2008 à 10:54:07    

Code :
  1. </textarea>
  2. <script>
  3. alert(document.cookie);
  4. </script>


Message édité par Profil supprimé le 26-12-2008 à 10:56:30
Reply

Marsh Posté le 26-12-2008 à 11:00:53    

oui ça m'affiche phpsessid ...

Reply

Marsh Posté le 26-12-2008 à 11:09:32    

non c'est juste un test, ne t'inquiète pas...
 
A part çà, avant tout, t'es-tu renseigné à propos des injections SQL ?
On dirait que non, ton code est vraiment truffé de failles.
 
Il faut parser tes chaines de caractères avec mysql_real_escape_string, et pour tes données numériques, vérifiez qu'il s'agisse bien de nombres, ou forcer leur type.

Reply

Marsh Posté le 26-12-2008 à 11:50:00    

Code :
  1. <?php session_start();
  2. include("../fonctions.php" );
  3. verif_page();
  4. ?>
  5. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  6. <html xmlns="http://www.w3.org/1999/xhtml">
  7. <head>
  8. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  9. <title>Modifier un article</title>
  10. <link href="adminStyl.css" rel="stylesheet" type="text/css" />
  11. <style type="text/css">
  12. <!--
  13. .Style4 {
  14.     color: #006699;
  15.     font-size: 12px;
  16. }
  17. -->
  18. </style>
  19. </head>
  20.  
  21. <body>
  22. <hr color="#CC9966" />
  23. <hr color="#CC9966" />
  24. <hr  color="#CC9966" />
  25. <h2 align="center">L'article...</h2>
  26. <br />
  27. <?php include("baseMenu.php" ); ?>
  28.  
  29. <?php
  30.     if (isset($_GET['idArt']) && !empty($_GET['idArt'])){
  31.         $req = "Select * from article where Id_Art = ".intval($_GET['idArt']).";";
  32.         $_SESSION['art_modif'] = intval($_GET['idArt']);
  33.     }
  34.     
  35.     $req2 = "Select * from rubriquecatalogue where Id_RubCata not like '1' and Id_RubCata not like '2' order by Nom_RubCata";
  36.     connexion();
  37.     if (isset($req) && !empty($req)) $results = mysql_query($req);
  38.     if (isset($results) && !empty($results)) $row = mysql_fetch_assoc($results);  
  39.     if (isset($row) && !empty($row)) {
  40.     $image = url_dir."/imagesCatalogue/".$row["Image_Art"] ;
  41.     $_SESSION['nomFichier'] = mysql_real_escape_string($row["Image_Art"]);
  42.     } ?>
  43.     
  44. <form action="<?php echo $_SERVER['PHP_SELF']."?enreg=ok"; ?>" method="post" name="modifArt" enctype="multipart/form-data">
  45.  
  46.  <div style="margin:1%;margin-left:32%;" class="Style4"> <strong>Ins&eacute;rer la balise &lt;br&gt; dans votre texte chaque fois que vous voulez effectuer un saut de ligne.<br />
  47.    Exemple: &nbsp;&nbsp;&nbsp;un&lt;br /&gt;chat <br />
  48.    Affichage :
  49.    <div align="center" style="display:block;width:60px;background-color:#CCCCCC;">&nbsp;&nbsp;&nbsp; un<br />
  50.      chat</div>
  51.    </strong> </div>
  52.  <table align="center" width="60%">
  53.    <tr>
  54.      <td class="form">* Son nom :</td>
  55.      <td class="form"><input type="text" name="nomArt" size="40" value="<?php if(isset ($row)) echo $row["Nom_Art"]; ?>"/></td>
  56.    </tr>
  57.    <tr>
  58.      <td class="form">* Sa référence:</td>
  59.      <td class="form"><input type="text" name="ref" size="30" value="<?php if(isset ($row)) echo $row["Ref_Art"]; ?>"/></td>
  60.    </tr>
  61.    <tr>
  62.      <td class="form">Sa documentation :</td>
  63.      <td class="form"><input type="text" name="docu" size="40" value="<?php if(isset ($row)) echo $row["Documentation_Art"]; ?>"/></td>
  64.    </tr>
  65.    <tr>
  66.    <tr>
  67.      <td class="form">Son prix :</td>
  68.      <td class="form"><input type="text" name="prix" size="15" value="<?php if(isset ($row)) echo $row["Prix_Art"]; ?>"/></td>
  69.    </tr>
  70.    <tr>
  71.      <td class="form">* Sa d&eacute;signation:</td>
  72.      <td class="form"><textarea cols="40" rows="10" name="description"> <?php if (isset ($row)) echo $row["Designation_Art"]; ?>
  73. </textarea></td>
  74.    </tr>
  75.    <tr>
  76.      <td class="form">Son image :</td>
  77.      <td class="form"><img src = "<?php echo $image ;?> " width=130 height=67/></td>
  78.    </tr>
  79.    <tr>
  80.      <td class="form">Changer l'image :</td>
  81.      <td class="form"><input type="file" name="image" size="40"/></td>
  82.    </tr>
  83.    <tr>
  84.      <td class="form">* Sa catégorie :</td>
  85.      <td class="form"><select name="categorie">
  86.          <?php $resultsRub=mysql_query($req2);
  87.                                                                     while ($row2= mysql_fetch_assoc($resultsRub)){
  88.                                                                         if ($row2["Id_RubCata"] === $row['Id_RubCata_Art'])                                                                        
  89.                                                     echo"<option selected id=".$row2["Nom_RubCata"]." value=".$row2['Id_RubCata'].">".$row2['Nom_RubCata']."</option>";
  90.                                                                         else
  91.                                                     echo"<option id=".$row2["Nom_RubCata"]." value=".$row2['Id_RubCata'].">".$row2['Nom_RubCata']."</option>";
  92.                                                                     } ?>
  93.        </select></td>
  94.    </tr>
  95.  </table>
  96.  <br />
  97.  <center>
  98.    <input type="submit" name="validerModif" value="Enregistrer"/>
  99.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  100.    <input type="reset" name="annulerModif" value="Annuler" onclick="location.href='listCatalogue.php';" />
  101.  </center>
  102.  <br />
  103. </form>
  104. <?php
  105. if(isset($_GET['enreg']) && !empty($_GET['enreg'])){
  106.  
  107. if(!empty($_FILES["image"]["name"]))
  108.  
  109. {
  110.     //nom du fichier choisi:
  111.     $nomFichier    = $_FILES["image"]["name"];
  112.     //nom temporaire sur le serveur:
  113.     $nomTemporaire = $_FILES["image"]["tmp_name"] ;
  114.     //type du fichier choisi:
  115.     $typeFichier   = $_FILES["image"]["type"] ;
  116.     //poids en octets du fichier choisit:
  117.     $poidsFichier  = $_FILES["image"]["size"] ;
  118.     //code de l'erreur si jamais il y en a une:
  119.     $codeErreur    = $_FILES["image"]["error"] ;
  120.     
  121.     //chemin qui mène au dossier qui va contenir les fichiers uplaod:
  122.     $chemin = "./imagesCatalogue/" ;
  123.  
  124.     if(move_uploaded_file($nomTemporaire, $chemin.$nomFichier)){
  125.     $_SESSION['nomFichier'] =$nomFichier;}
  126.     
  127. }
  128.  
  129.     $reket = "UPDATE article SET
  130.     Nom_Art = ".mysql_real_escape_string(ucfirst($_POST['nomArt']))." ,
  131.     Ref_Art = ".mysql_real_escape_string($_POST['ref']).",
  132.     Prix_Art = ".mysql_real_escape_string($_POST['prix']).",
  133.      Designation_Art = ".mysql_real_escape_string($_POST['description']).",
  134.       Documentation_Art = ".mysql_real_escape_string($_POST['docu']).",
  135.       Image_Art = ".mysql_real_escape_string($_SESSION['nomFichier']).",
  136.       Image_Art_large = ".str_replace("_small","",$_SESSION['nomFichier']).",
  137.        Id_RubCata_Art = ".intval($_POST['categorie'])."
  138.        WHERE Id_Art = ".$_SESSION['art_modif'].";";
  139.  
  140. $result = mysql_query($reket);
  141. if (!$result) {
  142.    die('Requête invalide : ' . mysql_error());
  143. }
  144. if ($result) echo "<script language='javascript'>window.location.href='listCatalogue.php?enreg=ok'</script>";
  145.  
  146. } ?>

Reply

Marsh Posté le 26-12-2008 à 11:51:27    

Voilà est ce que ça te parait correct now ??
ai je bien suivi les règles ? ... Je demande avant de remettre en ligne  
 
merci

Reply

Marsh Posté le 26-12-2008 à 11:53:49    

Nop regarde :
$_SESSION['art_modif'] = $_GET['idArt'];
 
$_GET['idArt'] contient peut être du code malveillant !
Tu vérifier que cette variable soit bien un entier.
Il est primordial que tu comprennes le fonctionnement des injections SQL, il ne faut pas utiliser mysql_real_escape_string sans comprendre son utilité.
:jap:

Reply

Marsh Posté le 26-12-2008 à 11:58:13    

ah autre chose :
 

Code :
  1. SELECT * FROM unetable WHERE unchamp NOT LIKE '1'


 
C'est pareil que
 

Code :
  1. SELECT * FROM unetable WHERE unchamp != '1'


 
qui est plus simple à lire et à écrire. Et peut être plus rapide :??:


Message édité par Profil supprimé le 26-12-2008 à 11:58:32
Reply

Marsh Posté le 26-12-2008 à 12:26:57    

Code :
  1. <?php
  2. if (isset($_GET['idArt']) && !empty($_GET['idArt']) && is_numeric($_GET['idArt'])){
  3.         $req = "Select * from article where Id_Art = ".intval($_GET['idArt']).";";
  4.         $_SESSION['art_modif'] = intval($_GET['idArt']);
  5.     }else echo "<script language='javascript'>window.location.href='listCatalogue.php'</script>";
  6.     
  7.     $req2 = "Select * from rubriquecatalogue where Id_RubCata != '1' and Id_RubCata != '2' order by Nom_RubCata";
  8. ?>

Reply

Marsh Posté le 26-12-2008 à 12:29:47    

En je crois avoir compris  
ce n'est pas seulement à travers les formulaire que l'on peut injecter des bout de requêtes mais aussi par l'adresse URL du navigateur ...
 
me reste plus qu'à refaire mes autres pages sur ce modèle et tout re-tester  
 
Merci bien  
je te tiens au courant :P :D

Reply

Marsh Posté le 26-12-2008 à 12:32:22    

Ok, c'est mieux...
qu'est ce qui ne marche pas ? La requête d'affichage ou d'enregistrement ?
Peux-tu afficher la requête (echo $req) et nous donner celle qui s'affiche quand çà marche, et celle qui s'affiche quand çà ne fonctionne pas ?
Merci

Reply

Marsh Posté le 26-12-2008 à 12:39:59    

mnyware a écrit :

En je crois avoir compris  
ce n'est pas seulement à travers les formulaire que l'on peut injecter des bout de requêtes mais aussi par l'adresse URL du navigateur ...
 
me reste plus qu'à refaire mes autres pages sur ce modèle et tout re-tester  
 
Merci bien  
je te tiens au courant :P :D


 
tout à fait ! Même, tout ce qui provient du client (de l'utilisateur) doit être surveillé ! Données de formulaire POST, GET, et même les COOKIES !

Reply

Marsh Posté le 26-12-2008 à 12:55:29    

c'est la requête d'enregistrement update qui ne marche pas elle celle de l'enregistrement
 

Code :
  1. $reket = "UPDATE article SET
  2.     Nom_Art = '".mysql_real_escape_string(ucfirst($_POST['nomArt']))."' ,
  3.     Ref_Art = '".mysql_real_escape_string($_POST['ref'])."',
  4.     Prix_Art = '".mysql_real_escape_string($_POST['prix'])."',
  5.      Designation_Art = '".mysql_real_escape_string($_POST['description'])."',
  6.       Documentation_Art = '".mysql_real_escape_string($_POST['docu'])."',
  7.       Image_Art = '".mysql_real_escape_string($_SESSION['nomFichier'])."',
  8.       Image_Art_large = '".mysql_real_escape_string(str_replace("_small","",$_SESSION['nomFichier']))."',
  9.        Id_RubCata_Art = ".intval($_POST['categorie'])."
  10.        WHERE Id_Art = '".$_SESSION['art_modif']."';";


 
cela m'efface les données même après plusieurs essais successifs (100% d'échec de la requête) :
 
UPDATE article SET Nom_Art = 'Adaptateur2' , Ref_Art = 'ICAD100', Prix_Art = '0', Designation_Art = ' Adaptateur chargeur rapide.\r\nessai marny', Documentation_Art = '', Image_Art = 'default_small.jpg', Image_Art_large = 'default.jpg', Id_RubCata_Art = 12 WHERE Id_Art = '16';  
 
UPDATE article SET Nom_Art = 'Frrr' , Ref_Art = 'rrrr', Prix_Art = '0', Designation_Art = ' rrrrrr', Documentation_Art = '', Image_Art = 'default_small.jpg', Image_Art_large = 'default.jpg', Id_RubCata_Art = 3 WHERE Id_Art = '16';  
 
etc ...

Reply

Marsh Posté le 26-12-2008 à 13:02:25    

quel est le type de Id_Art dans ta table ?

Reply

Marsh Posté le 26-12-2008 à 13:05:19    

ce que je comprend pas surtout c'est que j'ai 100% de succès d'exécution de mes requêtes avec easyPHP ...
il y aurait-il des choses à configurer sur mon serveur web pour que ça marche nikel en ligne ....
 
?_? Totally largued

Reply

Marsh Posté le 26-12-2008 à 13:08:40    


Reply

Marsh Posté le 26-12-2008 à 14:33:44    

escuse-moi  
 
le type est int(10)

Reply

Marsh Posté le 26-12-2008 à 14:35:42    

alors il ne faut pas entourer $_SESSION de guillemets dans :
WHERE Id_Art = '".$_SESSION['art_modif']."';";
mais faire :
WHERE Id_Art = ".$_SESSION['art_modif'].";";
 
Sinon, MySQL comparera une chaine à un entier et ce ne sera pas bon. Et cela est valable pour tous les champs qui contiennent des nombres numériques ;)
 
edit  [:aloy]


Message édité par Profil supprimé le 26-12-2008 à 14:36:22
Reply

Marsh Posté le 26-12-2008 à 15:35:28    

j'ai modifié et même sans quotes ça ne marche pas, je n'ai que deux champs de type int (les deux derniers)  
 
dernière requête exécuté :
UPDATE article SET Nom_Art = 'Essa' , Ref_Art = 'seee', Prix_Art = '', Designation_Art = ' eeeeeeeeeeeeeeeeeeeeeeeeeeeee', Documentation_Art = '', Image_Art = 'default_small.jpg', Image_Art_large = 'default.jpg', Id_RubCata_Art = 8 WHERE Id_Art = 16;  
 
quand je colle cette requête directement dans phpMyAdmin ça me fait l'update .
Je suis sure que mes requêtes sont loin d'être nikel mais là je pense qu'il y a forcément un problème sur le serveur d'acheminement des requêtes ... enfin même pas puisque je n'ai pas de message d'erreur de non exécution des requêtes ...
Priz de tête ..pffff

Reply

Marsh Posté le 26-12-2008 à 16:03:16    

Bon je viens de me rendre compte que cela dépendait du navigateur  
 
sur firefox et Chrome mes requêtes d'UPDATE ne s'exécute pas mais sur IE oui  
 
it's the mess ...pfff
 
any Solutions ??

Reply

Marsh Posté le 26-12-2008 à 18:12:24    

çà vient surement des sessions. Affiche les pour voir ce qui cloche

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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