Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2611 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  UPDATE Fonctionnel sur Easy php en local mais pas en ligne

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

UPDATE Fonctionnel sur Easy php en local mais pas en ligne

n°1831111
mnyware
En vrai YATA !!!
Posté le 24-12-2008 à 10:12:43  profilanswer
 

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]."'" );
  }  
 }
}
 
?>

mood
Publicité
Posté le 24-12-2008 à 10:12:43  profilanswer
 

n°1831125
Profil sup​primé
Posté le 24-12-2008 à 10:26:17  answer
 

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.

n°1831131
mnyware
En vrai YATA !!!
Posté le 24-12-2008 à 10:27:52  profilanswer
 

[ 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]

n°1831133
Profil sup​primé
Posté le 24-12-2008 à 10:28:24  answer
 

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

n°1831135
mnyware
En vrai YATA !!!
Posté le 24-12-2008 à 10:29:32  profilanswer
 

ç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

n°1831137
mnyware
En vrai YATA !!!
Posté le 24-12-2008 à 10:30:50  profilanswer
 

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. ?>

n°1831138
Profil sup​primé
Posté le 24-12-2008 à 10:31:06  answer
 

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


Message édité par Profil supprimé le 24-12-2008 à 10:31:24
n°1831139
mnyware
En vrai YATA !!!
Posté le 24-12-2008 à 10:31:59  profilanswer
 

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. ?>

n°1831141
Profil sup​primé
Posté le 24-12-2008 à 10:32:28  answer
 

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

n°1831155
mnyware
En vrai YATA !!!
Posté le 24-12-2008 à 10:36:39  profilanswer
 

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.

mood
Publicité
Posté le 24-12-2008 à 10:36:39  profilanswer
 

n°1831163
Profil sup​primé
Posté le 24-12-2008 à 10:41:06  answer
 

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 :/

n°1831169
mnyware
En vrai YATA !!!
Posté le 24-12-2008 à 10:43:55  profilanswer
 

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

n°1831189
mnyware
En vrai YATA !!!
Posté le 24-12-2008 à 10:53:52  profilanswer
 

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 ?

n°1831200
Profil sup​primé
Posté le 24-12-2008 à 10:59:55  answer
 

isset ne sert pas à échapper les données

n°1831207
Profil sup​primé
Posté le 24-12-2008 à 11:06:38  answer
 

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

n°1831213
mnyware
En vrai YATA !!!
Posté le 24-12-2008 à 11:15:26  profilanswer
 

Merci :D
 
j'essaye tous ça  ;)

n°1831577
mnyware
En vrai YATA !!!
Posté le 26-12-2008 à 10:13:13  profilanswer
 

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

n°1831583
Profil sup​primé
Posté le 26-12-2008 à 10:28:09  answer
 

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 ?

n°1831584
mnyware
En vrai YATA !!!
Posté le 26-12-2008 à 10:42:35  profilanswer
 

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>

n°1831586
mnyware
En vrai YATA !!!
Posté le 26-12-2008 à 10:45:05  profilanswer
 

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

n°1831587
Profil sup​primé
Posté le 26-12-2008 à 10:54:07  answer
 

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


Message édité par Profil supprimé le 26-12-2008 à 10:56:30
n°1831589
mnyware
En vrai YATA !!!
Posté le 26-12-2008 à 11:00:53  profilanswer
 

oui ça m'affiche phpsessid ...

n°1831590
Profil sup​primé
Posté le 26-12-2008 à 11:09:32  answer
 

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.

n°1831594
mnyware
En vrai YATA !!!
Posté le 26-12-2008 à 11:50:00  profilanswer
 

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. } ?>

n°1831595
mnyware
En vrai YATA !!!
Posté le 26-12-2008 à 11:51:27  profilanswer
 

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

n°1831596
Profil sup​primé
Posté le 26-12-2008 à 11:53:49  answer
 

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:

n°1831597
Profil sup​primé
Posté le 26-12-2008 à 11:58:13  answer
 

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
n°1831603
mnyware
En vrai YATA !!!
Posté le 26-12-2008 à 12:26:57  profilanswer
 

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. ?>

n°1831604
mnyware
En vrai YATA !!!
Posté le 26-12-2008 à 12:29:47  profilanswer
 

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

n°1831605
Profil sup​primé
Posté le 26-12-2008 à 12:32:22  answer
 

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

n°1831607
Profil sup​primé
Posté le 26-12-2008 à 12:39:59  answer
 

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 !

n°1831610
mnyware
En vrai YATA !!!
Posté le 26-12-2008 à 12:55:29  profilanswer
 

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 ...

n°1831613
Profil sup​primé
Posté le 26-12-2008 à 13:02:25  answer
 

quel est le type de Id_Art dans ta table ?

n°1831614
mnyware
En vrai YATA !!!
Posté le 26-12-2008 à 13:05:19  profilanswer
 

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

n°1831615
Profil sup​primé
Posté le 26-12-2008 à 13:08:40  answer
 


n°1831631
mnyware
En vrai YATA !!!
Posté le 26-12-2008 à 14:33:44  profilanswer
 

escuse-moi  
 
le type est int(10)

n°1831632
Profil sup​primé
Posté le 26-12-2008 à 14:35:42  answer
 

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
n°1831655
mnyware
En vrai YATA !!!
Posté le 26-12-2008 à 15:35:28  profilanswer
 

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

n°1831659
mnyware
En vrai YATA !!!
Posté le 26-12-2008 à 16:03:16  profilanswer
 

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 ??

n°1831691
Profil sup​primé
Posté le 26-12-2008 à 18:12:24  answer
 

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

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  UPDATE Fonctionnel sur Easy php en local mais pas en ligne

 

Sujets relatifs
Bloc de ligne indissociableLigne répétée
Formation en Ligne pour Apprendre Comment Créer un Site Web de A à Z !Gestion avancée du stock boutique en ligne
à effacer[C#] Insérer une ligne dans tabeau Excel
Création de ligne/ Tableau Type sous excel[resolu]n'arrive pas a supprimer la bonne ligne de ma bdd
Annuaire en ligneExport requete oracle en CSV via la ligne de commande
Plus de sujets relatifs à : UPDATE Fonctionnel sur Easy php en local mais pas en ligne


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR