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 :

[Conception] Problèmes après apostrophe


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti

    Inscrit en
    Avril 2006
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 32
    Par défaut [Conception] Problèmes après apostrophe
    Salut à tous,
    J'ai un code sur lequel pendant 3 jours je me prend la tete... espérons que l'on puisse m'aider..

    je vous le donne :

    $artiste = str_replace("'", "''", $_POST['artiste']);
    $support = str_replace("'", "''", $_POST['support']);
    $album = str_replace("'", "''", $_POST['album']);
    $pec = $_POST['pec'];
    $nbr = $_POST['nbr'];

    for($i=1; $i<=$nbr; $i++)
    {

    $j = $i;
    $titre = $_POST[$i];

    if ($pec == "album")
    {
    $reqstyle = "SELECT nom_artist, style
    FROM artistes
    WHERE nom_artist='$artiste'";
    $demandestyle = mysql_query($reqstyle);

    //Vérification du programme MODE WARNED
    if (!$verif2=mysql_query($reqstyle))
    {
    $_SESSION['errormod'] = 'probalbumstyle';
    header ("Location: errormod.php");
    exit;
    }
    $tablestyle = mysql_fetch_array($demandestyle);
    $style = $tablestyle['style'];
    }
    elseif ( $pec == "compil")
    {

    $reqstyle = "SELECT nom, style
    FROM inclassables
    WHERE nom='$album'";

    $compstyle = mysql_query($reqstyle);

    //Vérification du programme MODE WARNED
    if (!$verif3 = mysql_query($reqstyle))
    {
    $_SESSION['errormod'] = 'probcompilstyle';
    header ("Location: errormod.php");
    exit;
    }
    $comptable = mysql_fetch_array($compstyle);
    $style = $comptable['style'];
    }

    $reqveriftitr = "SELECT titre, num_piste, album, artiste
    FROM titres
    WHERE artiste='$artiste'
    AND titre='$titre'
    AND album='$album'
    AND num_piste='$j'";

    $demande = mysql_query($reqveriftitr);
    //Vérification du programme MODE WARNED
    if (!$verif4 = mysql_query($reqveriftitr))
    {
    $_SESSION['errormod'] = 'probveriftitre';
    header ("Location: errormod.php");
    exit;
    }

    if ( mysql_fetch_assoc($demande) == true)
    {
    $_SESSION['errormod'] = "titresexistants";
    header ("Location: errormod.php");
    exit;
    }
    echo "Titre : $titre<br>
    Artiste : $artiste<br>
    Album : $album<br>
    numéro de piste : $j<br>
    style : $style<br>
    support : $support<br>";
    }

    Voilà pour le code de la page. Le souci se produit avec un album contenant un slash comme par exemple "l'album"
    ce qui efface tous les caractéres suivant l'apostrophe...
    j'ai essayé d'y palier avec une fonction de ce style :

    function getval($var, $type=0, $bdd=0, $filtre_url=0)
    {
    ///anti XSS
    if ($filtre_url == 0)
    {
    $value = ($type == 0) ? htmlspecialchars($var, ENT_NOQUOTES) : intval($var);
    }
    else
    {
    $value = ($type == 0) ? str_replace(array(':','/','.'), '', htmlspecialchars($var, ENT_NOQUOTES)) : intval($var);
    }

    ///anti injection SQL
    if ($bdd != 0)
    {
    if (get_magic_quotes_gpc())
    {
    $value = stripslashes($value);
    }

    if (function_exists('mysql_real_escape_string'))
    {
    $value = mysql_real_escape_string($value);
    }
    //pour version de PHP < 4.3.0 on utilise addslashes
    else
    {
    $value = addslashes($value);
    }
    }

    ///on retourne une valeur filtrée
    return $value;
    }
    mais rien n'y fait...

    Comment dois je faire?
    Merci à vous!

  2. #2
    Membre averti

    Inscrit en
    Avril 2006
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 32
    Par défaut
    désolé, je me suis trompé dans mon post, le problème survient dans une chaine de caractére contenant un apostrophe...

    voila le résultat sur le navigateur

    Titre : first
    Artiste : compil
    Album : nom de l
    numéro de piste : 1
    style :
    support : cd

    Titre : second
    Artiste : compil
    Album : nom de l
    numéro de piste : 2
    style :
    support : cd

  3. #3
    Membre averti

    Inscrit en
    Avril 2006
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 32
    Par défaut
    et ce résultat pour un album au nom de
    "nom de l'album"

    Merci de vos réponses

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Par défaut
    Soit tu echappe els carctere soit au lieu de ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     echo "Titre : $titre<br>
    Artiste : $artiste<br>
    Album : $album<br>
    numéro de piste : $j<br>
    style : $style<br>
    support : $support<br>";
    tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     echo 'Titre : '.$titre.'<br>
    Artiste : '.$artiste.'<br>
    Album : '.$album.'<br>
    numéro de piste : '.$j.'<br>
    style : '.$style.'<br>
    support : '.$support.'<br>';

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Conception] problème de sauvegarde d'un texte contenant des apostrophes
    Par etud_ini dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 23/09/2007, 18h11
  2. Réponses: 18
    Dernier message: 10/07/2006, 13h42
  3. problèmes après conversion d'access 97 à 2000
    Par david-lars dans le forum Access
    Réponses: 7
    Dernier message: 19/12/2005, 16h16
  4. Réponses: 3
    Dernier message: 03/10/2005, 10h01
  5. [JTable] problème après suppression d'une ligne
    Par fredo3500 dans le forum Composants
    Réponses: 7
    Dernier message: 17/03/2005, 10h01

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