Page 1 sur 2

problème apostrophe euh non cest l'ID qui merde

Posté : 24 mai 2005, 11:12
par Stratus
Bonjour,

j'ai posé ma question dans le post traitant de ce sujet, mais vu qu'il est indiqué résolu à ce post, je pense que personne va me répondre. Je repose donc ma question dans un nouveau post.
http://www.phpfrance.com/forums/voir_sujet-2181.php

Pourriez-vous expliquer le rôle de ENT_QUOTES, de addslashes, stripslashes, htmlspecialchars, magic_quotes_gpc ?

Quelle est la différence entre ces différentes fonctions ?

Merci

Posté : 24 mai 2005, 11:15
par zeus
http://www.php.net/manual/fr/

A cette adresse tu peux trouver la description de chaque fonction PHP.

En hat à droite, tu peux trouver un moteur de recherche, tu tappes la fonction que tu cherche et il te la trouve !!!

Magic 8)

Posté : 24 mai 2005, 11:36
par Stratus
C'est ce que j'ai fait et je suis tombé sur le post "résolu" comme je l'ai expliqué dans mon message.

Merci pour ton lien

Posté : 24 mai 2005, 11:44
par zeus
je parlais pas de en haut à doite du forum mais de la page dont je t'ai donné le lien !!! :lol:

Posté : 24 mai 2005, 11:52
par Cyrano
À défaut d'explications du manuel, voici un tuto ici-même sur PHPFrance.

Posté : 24 mai 2005, 11:59
par Stratus
J'ai utilisé le moteur :lol: du lien aussi

j'ai utilisé $nom = htmlspecialchars($nom,ENT_QUOTES);

et ca bug toujours car l'apostrophe est toujours là. Je vais donc essayer les autres fonctions qui double l'apostrophe

---------------
Erreur SQL !
INSERT INTO T_Broch(Broch_Civilite,Broch_Prenom,Broch_Nom,Broch_Adresse,Broch_Cp,Broch
_Ville,Broch_Tel,Broch_Fax,Broch_Mobile,Broch_Email,Broch_Niveau ,
Broch_Dernier,Broch_Etablissement,Broch_Comment,Broch_Preciser,
Broch_Question,Broch_Doc,Broch_Date) VALUES ('Mr.','t\'est','r','r','r','r','','','','[email protected]
','e','e','e','','','','Cycle BTS','24-05-2005')
Duplicate entry '127' for key 1
--------------

Je vais manger, puis je lit le tuto sur PHPFrance et je test les autres fonctions

Merci pour les infos

Posté : 24 mai 2005, 13:50
par Elie
Et stripslashes ne resoud pas ton probleme ?

Posté : 24 mai 2005, 14:11
par Stratus
Avec cette syntaxe

avec $ nom = t'est2

$nom = addslashes($nom);

Voci ce que j'obtients
Erreur SQL !
INSERT INTO T_Broch(Broch_Nom,) VALUES ('t\\\'est2')
Duplicate entry '127' for key 1

Est-ce que je fais une erreur de syntaxe

avec
$nom = stripslashes($nom);

voici ce que j'obtients

Erreur SQL !
INSERT INTO T_Broch(Broch_Nom,) VALUES ('t'est3')
You have an error in your SQL syntax near 'est3','e','12','95','d','','','','[email protected]','e','e','e','',' at line 1

Là je comprend pas du tout

Posté : 24 mai 2005, 14:16
par zeus
Il y a quelquechose que tu as dû oublié d'enlever !!!

addslashes ne rejoute pas 3 \ toute seule !!!

Donne nous le bout de code concerné, mais en entier

Posté : 24 mai 2005, 14:24
par Stratus
Ben si justement et c'est là que ca commence à devenir drôle.

voici le code

Code : Tout sélectionner

echo $nom; $nom = addslashes($nom); $insertion = "INSERT INTO T_Broch(Broch_Civilite,Broch_Prenom,Broch_Nom,Broch_Adresse,Broch_Cp,Broch_Ville," ."Broch_Tel,Broch_Fax,Broch_Mobile,Broch_Email,Broch_Niveau,Broch_Dernier,Broch_Etablissement,Broch_Comment," ."Broch_Preciser,Broch_Question,Broch_Doc,Broch_Date)" ." VALUES ('$civilite','$nom','$prenom','$adresse','$cp','$ville','$tel','$fax','$mobile'," ."'$email','$niveau','$dernier','$etablissement','$comment','$preciser','$question','$doc2','$date')"; mysql_query($insertion) or die("Erreur SQL !<br>".$insertion."<br>".mysql_error());
et le résultat

t\'est5Erreur SQL !
INSERT INTO T_Broch(Broch_Civilite,Broch_Prenom,Broch_Nom,Broch_Adresse,Broch_Cp,Broch_Ville,Broch_Tel,Broch_Fax,Broch_Mobile,Broch_Email,Broch_Niveau,Broch_Dernier,Broch_Etablissement,Broch_Comment,Broch_Preciser,Broch_Question,Broch_Doc,Broch_Date) VALUES ('Mr.','t\\\'est5','e','e','e','e','','','','[email protected]','e','e','e','','','','Cycle BTS','24-05-2005')
Duplicate entry '127' for key 1

A remarquer que j'ai fait un echo de la variable pour bien montré qu'elle est bien égale à t'est5 et qu'ensuite elle est égale à t\\\'est5'[/code]

Posté : 24 mai 2005, 14:27
par zeus
Si je regarde ton erreur, je n'ai pas l'impression que l'erreur vienne de l'apostrophe, essaye avec test5 au lien de t'est5 et regarde si tu as encore l'erreur

Posté : 24 mai 2005, 14:32
par zeus
Je ne veux pas remttre en cause ta parole, mais chez moi, ton code me retourne une 't\'est5'

Tu es sûr que ton addslashes n'est pas dans une boucle ou un truc de ce genre !!!

Posté : 24 mai 2005, 14:34
par Stratus
Mince effectivement, j'ai le même problème.

Pourtant, il marchait parfaitement ce formulaire. La preuve est que j'ai 36 insertion dans la base !!

Bon, je vais chercher dans une autre direction

Merci pour votre aide

Posté : 24 mai 2005, 14:36
par Stratus
Que veut dire

Duplicate entry '127' for key 1

mon premier réflexe a été de chercher si je n'avais pas un Id 127. Or mes Id s'arrête à 36 ??

Posté : 24 mai 2005, 14:48
par zeus
LE champ qui doit contenir test5 n'est pas déclaré comme unique ??

Ca me fait pas penser à une erreur SQL, c'est bizarre !!!