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

Langage PHP Discussion :

Script ne fonctionne plus


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2004
    Messages : 37
    Points : 19
    Points
    19
    Par défaut Script ne fonctionne plus
    Bonjour à tous,

    Voilà mon problème :

    J'ai un script que j'utilise depuis longtemps pour insérer des films dans une base de donnée. Les informations sur le films sont :

    Titre
    Genre
    Réalisateur
    Année
    Synopsis
    Affiche

    Il y a systématiquement des apostrophes ( ' ) dans le synopsis du film, du coup, j'utilisais la fonction EREG_REPLACE pour les remplacer par ( \' ) pour éviter de planter la requête SQL.

    Pendant des mois cela fonctionnait parfaitement. Mais depuis quelques semaines, lorsque je tente d'ajouter un film, cela plante, m'indiquant que la requête d'insertion n'a pas pu être effectuée.

    En tentant de comprendre le pourquoi du comment, j'ai remarqué que le apostrophes du champ synopsis de ma requête n'étaient pas simplement backslashés, elles étaient doublement backslashées. Du coup, un backslash en annulant un autre, c'est comme si il n'y avait rien.

    J'ai alors constaté que les apostrophes contenues dans le TEXTAREA 'synopsis' du formulaire d'insertion étaient déjà backslashées, avant même que la fonction EREG_REPLACE n'entre en action. Ce qui explique le double backslashage (est-ce que je suis clair ?)

    Ma question est donc : "Y a-t-il une explication à ce changement ?"
    comment se fait-il que les apostrophes sont automatiquement backslashées alors qu'auparavant il fallait le faire.
    Y a-t-il eu un changement des propriétés des formulaires, des champs TEXTAREA ou d'une autre fonction qui expliquerait cela ?

    J'espère m'être fait comprendre comme il faut. Voici un bout de code pour illustrer.

    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
     
    // Récupération des données
    $titre = $_POST['titre'];
    $realisateur = $_POST['realisateur'];
    $genre = $_POST['genre'];
    $annee = $_POST['annee'];
    $synopsis = $_POST['synopsis'];
    $affiche = $_POST['affiche'];
     
    echo $synopsis."<br>";  // en affichant la variable je me suis rendu compte que les apostrophes étaient déjà backslashées
     
    // Remplacer les apostrophes pour éviter les erreurs
     
    $synopsis1 = addslashes($synopsis); 
    $synopsis2 = ereg_replace("'", "\'", $synopsis); 
     
    echo $synopsis1."<br>"; // avec ADDSLASHES je me retrouvait avec un triple backslash avant l'apostrophe
    echo $synopsis2."<br>";// avec EREG_REPLACE double backslash
     
     
    // requête d'insertion des données dans la bdd
    $requete = "INSERT INTO films (titre, realisateur, genre, annee, synopsis, affiche) VALUES ('".$titre."', '".$realisateur."', '".$genre."', ".$annee.", '".$synopsis."', '".$affiche."')";
     
    echo $requete; // là je constatait les diverses variantes en fonction de la fonction utilisée (addslashes ou ereg_replace)
     
    // exécution de la requête
    mysql_query($requete) or die ("impossible d'exécuter la requête films");
    D'avance un grand merci pour votre aide.
    Meilleures salutations

    Thufir Hawat

  2. #2
    Membre habitué Avatar de daniel61
    Inscrit en
    Décembre 2006
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 139
    Points : 169
    Points
    169
    Par défaut
    Citation Envoyé par ThufirHawat
    Ma question est donc : "Y a-t-il une explication à ce changement ?"
    ton hébergeur à changer magic_quotes_gpc de off à on.
    http://us3.php.net/manual/fr/ref.inf...gic-quotes-gpc

  3. #3
    Membre éclairé Avatar de haltabush
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    726
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 726
    Points : 835
    Points
    835
    Par défaut
    Citation Envoyé par daniel61
    ton hébergeur à changer magic_quotes_gpc de off à on.
    http://us3.php.net/manual/fr/ref.inf...gic-quotes-gpc
    +1
    C'est qui, l'hébergeur? Incroyable de changer ça sans prévenir!!

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2004
    Messages : 37
    Points : 19
    Points
    19
    Par défaut solution
    Bonsoir à tous,

    Merci à Daniel61 pour sa réponse, c'était effectivement la bonne solution.
    Et ce n'est pas que mon hébergeur à modifier cela sans me prévenir. En fait l'hébergement n'est pas à mon nom et le propriétaire n'avait pas jugé utile de transmettre l'information !!!

    Grand merci à vous, bonne fin de semaine.

    Thufir Hawat

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/08/2011, 18h46
  2. Script ne fonctionne plus quand je change une option
    Par beegees dans le forum jQuery
    Réponses: 2
    Dernier message: 05/02/2011, 11h49
  3. Réponses: 12
    Dernier message: 10/06/2010, 14h37
  4. Réponses: 0
    Dernier message: 15/07/2009, 16h02
  5. [AJAX] IE7 : mon script ne fonctionne plus
    Par Oluha dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 24/01/2007, 16h48

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