Bonjour,

Sur mon site, il y a possibilité d'ajouter des albums photos, ça fonctionne très bien, jusqu'à ce qu'un membre ajoute un album contenu une apostrophe. J'ai pourtant utilisé mysql_real_escape_string mais ça ne fait rien.

Voici mon code :

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
if( isset( $_POST['ajout_album'] ) )
{ 
  $_POST['nom_album'] = explode("\\", $_POST['nom_album']);
  $_POST['nom_album'] = $_POST['nom_album'][0];
  if( isset( $_POST['nom_album'] ) && $_POST['nom_album'] == "" )
  {
    $ErreurAlbum = "<font face='arial' size='1' color='red'>Il faut que tu remplisses ce champs !</font>";
  }
  if( isset( $_POST['sorties'] ) && $_POST['sorties'] == "rien" )
  {
    $ErreurSortie = "<font face='arial' size='1' color='red'>Il faut que tu s&eacute;lectionne ce champs !</font>";
  }
  if( ( isset( $_POST['sorties'] ) && $_POST['sorties'] != "rien" ) && ( isset( $_POST['nom_album'] ) && $_POST['nom_album'] != "" ) )
  {
    $PostCodeSortie = $_POST['sorties'];
    $PostAlbum = $_POST['nom_album'];

    // Verifie si l'utilisateur a rentre des caracteres speciaux, si c'est le cas, le programme renvoie une erreur
    if( VerifAlphanumerique($PostAlbum) == false )
    {
      $ErreurAlbum = "<font face='arial' size='1' color='red'>Erreur de caract&egrave;re ! Caract&egrave;res accept&eacute;s : <br />";
      $ErreurAlbum.= "<strong>abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789_-+()*%/.!?</strong><br />";
      $ErreurAlbum.= "(ATTENTION ! les accents ne sont pas accept&egrave;s</font>"; 
    }
    else
    {
      $PostCodeAlbum = str_replace(" ", "_", $PostAlbum );

      $Conn = mysql_connect($host,$user,$pwd);
      mysql_select_db($bdd,$Conn);
      mysql_query("SET NAMES 'UTF-8'");

      // Verification de doublon
      $sql = "select CODE_DOSSIER from albums where CODE_DOSSIER = '".$PostCodeAlbum."' ";
      $res = mysql_query($sql);
      $num = mysql_num_rows($res); 
      if( $num > 0 )
      {
        $ErreurAlbum = "<font face='arial' size='1' color='red'>Un album porte d&eacute;j&agrave; ce nom. Utilise en un autre stp.</font>";
      }
      else
      {
        //$PostCodeAlbum = str_replace("'", "", $PostCodeAlbum);
        $PostCodeAlbum = mysql_real_escape_string( $PostCodeAlbum );

        $AlbumFolder = "..".$CheminPhotos.$PostCodeSortie."/".$PostCodeAlbum;

        $sql = "insert into albums (CODE_DOSSIER,DOSSIER,CODE_SORTIE,AJOUTE_PAR,DATE_AJOUT,IP_AJOUT) values ";
        $sql.= "('".strtolower($PostCodeAlbum)."','".$PostAlbum."','$PostCodeSortie','$SessionLogin','$date','$ip') ";
        mysql_query("SET NAMES 'UTF-8'");
        $res = mysql_query($sql);
        //echo $sql;

        // traitement de copie du dossier de l'album, dans le dossier du type de sortie correspondante
        // Apres Insertion du dossier dans la BDD, copie physique de ce dossier sur le serveur
        if(!is_dir(strtolower($AlbumFolder))) 
        {
          echo "[".$AlbumFolder."]";
          mkdir(strtolower($AlbumFolder));
          $FolderCreated = "<font size=2 color='green' face='arial'><center><b>Dossier copi&eacute; et enregistr&eacute; avec succ&egrave;s.</b></center></font>";
        }
      }
      mysql_close($Conn);
    }
  }
}
Je veux essayer d'inserer "salut' sa va" en tant que nom d'albums, mais ma base ne prend en compte que "salut" et donc la suite du code ne s'execute pas.

Merci d'avance.
Ju'