Probéme apostrophe php urgent

Fermé
alen74 Messages postés 2 Date d'inscription jeudi 27 novembre 2008 Statut Membre Dernière intervention 12 décembre 2008 - 1 déc. 2008 à 13:07
ptimushu Messages postés 28 Date d'inscription lundi 9 avril 2007 Statut Membre Dernière intervention 19 mars 2010 - 18 févr. 2009 à 23:52
Bonjour,
Bonjour,
J'ai un problème avec l'apostrophe dans uen formulaire
Quand je remplis un chanps avec un texte contenant une apostrophe et au moment de poster le message ne passe pas , si j'enleve les apostrophe le message passe et sera recu correctement
J'ai essayé
$message = str_replace("'","’",$message); ca na rien donné
je ne sais vraiment quoi faire voila lune partie du code de la page

<?php
// J'INCLUE LE FICHIE POUR SE CONNECTER
include ("connect.inc.php");

// JE CREE LE CODE POUR CREER LE LIEN PERSONNALISE
// numero du jour,numero du mois, annee, heure, minutes,secondes numero de la semaine

$codice = substr("$name",0,3);
$codice .= date(dnyHisW);
$codice .= substr("$to",0,3);
$message = str_replace("'","’",$message);

// J'INSERE LES DONNEES DANS LA BASE DE DONNEES
$inserer_data = "INSERT INTO ecards (
id,
codice,
from_name,
from_email,
message,
immagine,
date
)
VALUES
('NULL',
'".$codice."',
'".$HTTP_POST_VARS[name]."',
'".$HTTP_POST_VARS[email]."',
'".$HTTP_POST_VARS[message]."',
'".$HTTP_POST_VARS[immagine]."',
NOW())
";
A voir également:

2 réponses

Bonjour

il faut TOUJOURS échapper les données non numériques avec mysql_real_escape_string pour les enregistrer dans une base de données mysql

pas besoin de str_replace ni de addslashes

...VALUES
('NULL',
'".mysql_real_escape_string($codice)."',
'".mysql_real_escape_string($HTTP_POST_VARS['name'])."',
'".mysql_real_escape_string($HTTP_POST_VARS['emai'l])."',
'".mysql_real_escape_string($HTTP_POST_VARS['message'])."',
'".mysql_real_escape_string($HTTP_POST_VARS['immagine'])."',
NOW())
";

Normalement, la variable pour récupérer les champs d'un formulaire est $_POST. $HTTP_POST_VARS est obsolète depuis la V4.1.0 de php.
Enfin, il ne faut pas oublier les apostrophes autour des indices non numériques de tableaux : $HTTP_POST_VARS['immagine'] et non pas $HTTP_POST_VARS[immagine]. Ça marche uniquement parce que ton serveur cache les messages d'erreur. Ça marcherait aussi si tu utilisais ta variable entre " " mais ce n'est pas le cas ici.
0
Mais vraiment un grand merci ca marche super bien
0
ptimushu Messages postés 28 Date d'inscription lundi 9 avril 2007 Statut Membre Dernière intervention 19 mars 2010
18 févr. 2009 à 23:52
Bonjour,

C'est la premiere fois que ça m'arrive.

j'ai la requete suivante :

sql="UPDATE joueur
SET
clan='".addslashes($_POST["nom"])."'

WHERE pseudo ='".$s->pseudo."'
";



Donc tout se met bien a jour dans la table joueur.
Mais quand dans une autre page je demande d'afficher la valeur de clan, mySQL me dit qu'il y a une erreur de syntaxe quand $_POST["nom"] contient un apostrophe. Ici $_POST["nom"]=L'élite

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'élite'' at line 1

Sans addslashes ou avec stripslashes c'est le même probleme...

Donc le probleme ce n'est pas lors de l'insertion dans la BDD ou lors d'une mise a jour, c'est lorsque je demande l'affichage de clan

Je ne comprends pas d'où ça peut venir car j'ai une autre table avec exactement les mêmes criteres mais je n'ai pas de probleme.

Si quelqu'un est en mesure de m'aider.

Merci
0