Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/03/2007, 01h08   #1
Invité de passage
 
Inscription : mars 2004
Messages : 19
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 19
Points : 2
Points : 2
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 :
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
ThufirHawat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2007, 02h06   #2
Membre habitué
 
Avatar de daniel61
 
Inscription : décembre 2006
Messages : 109
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 109
Points : 120
Points : 120
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
daniel61 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2007, 09h31   #3
Membre chevronné
 
Avatar de haltabush
 
Développeur Web
Inscription : avril 2005
Messages : 726
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2005
Messages : 726
Points : 790
Points : 790
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!!
haltabush est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/03/2007, 23h04   #4
Invité de passage
 
Inscription : mars 2004
Messages : 19
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 19
Points : 2
Points : 2
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
ThufirHawat est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h13.


 
 
 
 
Partenaires

Hébergement Web