begin process at 2012 05 30 17:03:41
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

mysql_real_escape_string ne marche pas dans mon cas :'(


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

mysql_real_escape_string ne marche pas dans mon cas :'(

mardi 31 août 2010 à 15:18:57 | mysql_real_escape_string ne marche pas dans mon cas :'(

ju0123456789

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 PHP :
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);
        [b]$PostCodeAlbum = mysql_real_escape_string( $PostCodeAlbum );[/b]

        $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'
mardi 31 août 2010 à 16:38:34 | Re : mysql_real_escape_string ne marche pas dans mon cas :'(

47

Réponse acceptée !
Bonjour,

vérifie si tu n'as pas magic_quotes_gpc activé (voir la fonction get_magic_quotes_gpc() ou dans ton php.ini)
s'il est activé le problème est ici:
$_POST['nom_album'] = explode("\\", $_POST['nom_album']);

à remplacer par:
$_POST['nom_album'] = explode("\\", stripslashes($_POST['nom_album']));

car le ' est remplacer par \' donc quand tu fais ton explode tu te retrouve avec la 1ère partie de ta chaine

bonne soirée


mardi 31 août 2010 à 17:10:30 | Re : mysql_real_escape_string ne marche pas dans mon cas :'(

ju0123456789

Bonjour,
Merci pour ta réponse!
Dans phpinfo j'ai effectivement :

magic_quotes_gpc On On
magic_quotes_runtime Off Off
magic_quotes_sybase Off Off


je dois donc rajouter dans mon php.ini (je suis chez 1&1, et c'est vraiment naz !) :
magic_quotes_gpc = off; ?
mardi 31 août 2010 à 17:50:12 | Re : mysql_real_escape_string ne marche pas dans mon cas :'(

ju0123456789

Probleme corrigé en partie. Ma page ne saute plus, et certains programmes se mettent à marcher.
Mais là mon dossier se créé sous "test\'test" quand je tappe "test'test", mais aucune insertion dans la base ne se fait :/
jeudi 2 septembre 2010 à 12:01:47 | Re : mysql_real_escape_string ne marche pas dans mon cas :'(

narkos2

Réponse acceptée !
Hello,

Si l'enregistrement ressemble à ça "test\'test" sur mysql c'est oki.
Après quand tu l'affiche tu fais:

<?php
print stripslashes($res['ton_champ_sql_contenant_test_test']);
?>

stripslashes() (Supprime les \ dans la chaine donnée en paramètre)

Bonne continuation
jeudi 2 septembre 2010 à 15:45:21 | Re : mysql_real_escape_string ne marche pas dans mon cas :'(

ju0123456789

Bon le dossier s'est bien copié, mais l'enregistrement ne se faisait pas car ça marquait :
Code PHP :
$SQL = "INSERT INTO matable (dossier) values ('test'test')";


J'ai rajouté mysql_real_escape_string dans ma variable qui contenait "test'test" et je n'ai plus de probleme.

Souci résolu merci beaucoup.

Bonne fin de journée.

Ju'


Cette discussion est classée dans : code, mysql, dossier, post, album


Répondre à ce message

Sujets en rapport avec ce message

Impossible de faire un update de ma base???? [ par pimpa4real ] Bonjour à tous, j'ai un gros proble et ce serait sympa que quelqu'un puisse m'aider. Voici le code avec lequel j'aimerai faire un update de ma base:[c [PHP & SQL] Création de compte (Ajout d'un champ) [ par Zobaree ] Salut à tous...J'ai fait un site simple où les gens peuvent se créer un compte, cependant j'ai ajouté une nouvelle colonne dans la table des comptes d Vérification formulaire livre d'or [ par Danamel ] Bonjour à tous J'ai actuellement sur mon site un livre d'or qui fonctionne mais désirant le modifier afin de changer sa présentation je fait un s probleme d'insertion avec ma requette [ par cyrilherve ] bonjour,voici un bout de code qui me permet d'enregistrer un utilisateur dans ma table 'UTILISATEURS' à partire du fichier 'enregistreruser.php'[CODE] Code page php , sql injection? file injection? je ne comprends plus [ par Chazius ] Bonjour a tous Je m'adresse a vous car je suis dans la detresse. Cela fait quelques années que je fais des codes php et derniérement je n'arrete pas d probleme insertion dans table mysql a partir de données formulaire [ par LaTatadu91 ] Bonjour,Voici un bon moment que je n'ai pas utilisé ni PHP ni MySQLet je me retrouver eprdu pour un truc tout simple: insérer des champs dans une tabl Valeur formulaires dans une boucle [ par nanti ] Bonsoir, Je souhaite concevoir un back-office et pour cela, j'ai généré un formulaire récupérant les valeurs de ma bdd dans les différents champs et Espace Membre [ par jackdaniel9 ] J'ai ce code pour commencer la session d'un membre : [code=php] Allo-money.com <!-- body,td,th { font-family: A php [ par sheryl22 ] voila c est page d insertion qui peut lire depius une autre table aussi je pense q u il lui manque klk chose j arrive pas a trouve le prob help me p calcul par annee [ par tchaw ] bonjour, bonjour je veux calculer la total d'un somme d'un champs(MTTC) du table (vente) à chaque année dans MYSQL et je veux afficher le résultat dan


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,420 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales