Addslashes dans un textarea ne fonctionne pas. À l'aide...

Signaler
Messages postés
3
Date d'inscription
mercredi 21 octobre 2009
Statut
Membre
Dernière intervention
6 janvier 2010
-
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
-
Addslashes dans un TextArea ne fonctionne pas
Bonjour,

Mon problème est que le Addslashes ne fonctionne pas dans ma zone areatext. Pouvez-vous m'aider svp ?

Voici l'explication du problème:

j'ai une page profiletemplate.php avec une zone textarea avec le code suivant:

<textarea cols=40 rows=5 name=resume><?= addslashes($a1[resume])?></textarea>


quand l'utilisateur ajoute un ' dans le texte je recoit une erreur SQL lors de l'enregistrement
Si l'utilisateur ajoute \' ca marche parfaitement.

le texte de $a1[resume] est envoyé vers vers la page profile.php qui elle envoie l'information vers la base sql. sql.

et le code de la page profile.php est :

//get the info
$q1 "select * from yellow_agents where AgentID '$_SESSION[AgentID]' ";
$r1 = mysql_query($q1) or die(mysql_error());
$a1 = mysql_fetch_array($r1);
if(isset($_POST[s1]))



$q1 = "update yellow_agents set
FirstName = '$_POST[FirstName]',
LastName = '$_POST[LastName]',
city = '$_POST[city]',
state = '$_POST[state]',
country = '$_POST[country]',
resume = '$_POST[resume]',
email = '$_POST[email]',
website = '$NewWebsite',
news = '$_POST[news]',
NewsletterType = '$_POST[format]'

where AgentID = '$_SESSION[AgentID]' ";


mysql_query($q1);

if(mysql_error())
{
echo mysql_error();
}
else


Merci pour votre aide ... je suis un peu décourager car j'y arrive pas.

1 réponse

Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
17
Salut,

La fonction addslashes, dans ton cas, est à utiliser au moment de l'insertion dans la base de données, pas lors de l'affichage du formulaire.
Ce serait davantage $resume=addslashes($_POST['resume']);

Mais bon, question sécurité, tout est à revoir : utilise plutôt mysql_real_escape_string()

Ton code HTML n'est pas valide, les valeurs des attributs doivent être entourées de guillemets doubles "
Ton code PHP se base sur le fait que les erreurs ne sont pas affichées, pourtant tu dois avoir un paquet de Warning :
Par exemple, dans $_POST[FirstName] PHP considère que FirstName est une constante. Pour qu'il considère que c'est une chaine de caractères, il faudrait entourer FirstName avec des guillemets (simples ou doubles). A défaut de trouver une constante du nom FirstName, PHP va utiliser ça comme chaîne de caractères, mais en générant une alerte.
error_reporting(E_ALL & E_STRICT)

te montrera les erreurs commises.

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)