IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

mysql_real_escape_string ne marche pas dans mon cas


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    253
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 253
    Par défaut mysql_real_escape_string ne marche pas dans mon cas
    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'

  2. #2
    Membre éprouvé
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 509
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 509
    Par défaut
    es-tu sur que c'est un apostrophe ? Je sais qu'il y a un caractère sur les claviers anglais qui s'approche de ce caractère. => ` qui est différent de ' .
    Ce caractère (`) est utilisé dans Mysql.

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    tu fais l'echappement sur le code de l'album mais pas sur son nom.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. [Struts Menu] ne marche pas dans mon application
    Par menzlitsh dans le forum Struts 1
    Réponses: 1
    Dernier message: 29/10/2006, 12h07
  2. Outlook ne marche pas dans mon réseau sous linux
    Par Germain123 dans le forum Applications et environnements graphiques
    Réponses: 3
    Dernier message: 25/03/2006, 22h15
  3. Réponses: 2
    Dernier message: 06/06/2005, 15h13
  4. [Débutant][JList] Comment ça marche dans mon cas ?
    Par Invité dans le forum Composants
    Réponses: 31
    Dernier message: 28/06/2004, 10h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo