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

Eléphanteau du PHP | 33 Messages

24 mai 2005, 11:12

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
Modifié en dernier par Stratus le 24 mai 2005, 14:50, modifié 1 fois.
La théorie, c'est quand on sait tout et que rien ne fonctionne.
La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

24 mai 2005, 11:15

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)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphanteau du PHP | 33 Messages

24 mai 2005, 11:36

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
La théorie, c'est quand on sait tout et que rien ne fonctionne.
La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

24 mai 2005, 11:44

je parlais pas de en haut à doite du forum mais de la page dont je t'ai donné le lien !!! :lol:
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Mammouth du PHP | 19672 Messages

24 mai 2005, 11:52

À défaut d'explications du manuel, voici un tuto ici-même sur PHPFrance.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 33 Messages

24 mai 2005, 11:59

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
La théorie, c'est quand on sait tout et que rien ne fonctionne.
La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

Mammouth du PHP | 1339 Messages

24 mai 2005, 13:50

Et stripslashes ne resoud pas ton probleme ?
Bon sinon tu me fais un message privé et on se fait un TeamViewer

Eléphanteau du PHP | 33 Messages

24 mai 2005, 14:11

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
Modifié en dernier par Stratus le 24 mai 2005, 14:19, modifié 1 fois.
La théorie, c'est quand on sait tout et que rien ne fonctionne.
La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

24 mai 2005, 14:16

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
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphanteau du PHP | 33 Messages

24 mai 2005, 14:24

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]
La théorie, c'est quand on sait tout et que rien ne fonctionne.
La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

24 mai 2005, 14:27

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
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

24 mai 2005, 14:32

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 !!!
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphanteau du PHP | 33 Messages

24 mai 2005, 14:34

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
La théorie, c'est quand on sait tout et que rien ne fonctionne.
La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

Eléphanteau du PHP | 33 Messages

24 mai 2005, 14:36

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 ??
La théorie, c'est quand on sait tout et que rien ne fonctionne.
La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

24 mai 2005, 14:48

LE champ qui doit contenir test5 n'est pas déclaré comme unique ??

Ca me fait pas penser à une erreur SQL, c'est bizarre !!!
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer