Probleme de syntaxe php

Probleme de syntaxe php - PHP - Programmation

Marsh Posté le 13-08-2008 à 17:45:46    

Bonjour,
 
je développe actuellement une liste qui lorsque l'on clique sur un titre, fait apparaitre sa jaquette sur sa droite.
Les jaquettes ne se trouvant pas sur le serveur, je suis obliger de passer par du PHP.
 
Voici le code qui possède la liste et l'image de la jaquette :(je passe par du ajax pour rafraichir uniquement l'image)
Requête ajax

Code :
  1. <script language="javascript" type="text/javascript">
  2. var xhr = null;
  3. function getXhr()
  4. {
  5.      if(window.XMLHttpRequest)xhr = new XMLHttpRequest();
  6. else if(window.ActiveXObject)
  7.   {
  8.   try{
  9.      xhr = new ActiveXObject("Msxml2.XMLHTTP" );
  10.      } catch (e)
  11.      {
  12.      xhr = new ActiveXObject("Microsoft.XMLHTTP" );
  13.      }
  14.   }
  15. else
  16.   {
  17.   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..." );
  18.   xhr = false;
  19.   }
  20. }
  21. function change()
  22. {
  23. var titre = document.form1.select.options[document.form1.select.selectedIndex].value;
  24. if(titre == ''){
  25.  document.form1.img_1.src='images/logo.png';
  26.  return;
  27. }
  28. getXhr();
  29. xhr.onreadystatechange = function(){
  30.  if(xhr.readyState == 4 && xhr.status == 200){
  31.        document.getElementById('test').innerHTML=xhr.responseText;
  32.  }
  33.     }
  34. xhr.open("GET","image1.php?nom="+titre,true);
  35. xhr.send(null);
  36. }
  37. </script>


 
Code de la liste et de l'image

Code :
  1. <form name="form1" method="post" action="">
  2.  <table width="900" border="0" align="center">
  3.       <tr>
  4.          <td width="445" align="center" valign="middle">
  5.    <?php
  6.     $file = fopen($path, "r" );
  7.     echo '<center><select name="select" size="19" class="largeur" onClick="change();">';
  8.     while(!feof($file)){ //Tant que l'on est pas a la fin du fichier
  9.      $buffer = fgets($file);
  10.      $buffer = substr($buffer, 4);
  11.      $buffer = trim($buffer);
  12.      $buffer1 = str_replace(" ","_",$buffer);
  13.      $titre = $dir.$buffer1.".dtf";
  14.      if (file_exists($titre)){
  15.       $type = type_film($titre);
  16.       if ($type == 1){
  17.        echo '<option value="'.utf8_encode($buffer1).'">'.utf8_encode($buffer).'</option>';
  18.       }elseif ($type == 2){
  19.        $nbr_film_adultes += 1;
  20.       }
  21.      }
  22.     }
  23.     echo '</select></center>';
  24.     fclose($file);
  25.    ?>
  26.    </td>
  27.         <td width="445" style="background:url(images/fond.png) no-repeat center center; vertical-align:middle;text-align:center;">
  28.     <div id="test">
  29.        <img src="images/logo.png" alt="" name="img_1" width="185" height="240" id="yyy">
  30.     </div>
  31.    </td>
  32.   </tr>
  33.  </table>
  34.  </form>


Voici le code du fichier image1.php

Code :
  1. <?php
  2. <?php
  3. $nom=$_GET['nom'];
  4. echo '<img src="image.php?nom='.$nom.'" alt="" name="img_1" width="185" height="240" id="yyy"/>';
  5. ?>
  6. ?>


Voici le code du fichier image.php

Code :
  1. <?php
  2. readfile("/usr/local/".$_GET['nom'].".png" );
  3. ?>


Mon probleme survient lorsque je clique sur un titre avec un accent ça ne fonctionne pas...
image1.php réceptionne le titre correctement mais lorsqu'on fait appel à image.php ca ne fonctionne plus...
 
Voyez vous une erreur ?
 
Merci


Message édité par johnson950 le 13-08-2008 à 17:47:46
Reply

Marsh Posté le 13-08-2008 à 17:45:46   

Reply

Marsh Posté le 13-08-2008 à 17:59:36    

A la place de passer le nom passe un identifiant les accents doivent etre traité il foute la merde. De plus sur un serveur unix, les accents en nom de fichiers c'est pas recommandé.

Reply

Marsh Posté le 13-08-2008 à 18:18:27    

Avec des virgules, c'est mieux :
A la place de passer le nom, passes un identifiant, les accents doivent être traité et transformé, ils foutent la merde. De plus, sur un serveur unix, les accents en nom de fichiers, c'est pas recommandé.

Reply

Sujets relatifs:

Leave a Replay

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