2010-06-16 6 views
1

J'ai forme simple pour le contenu du site Editting: - une entrée de texte pour le titre - une zone de texte pour le contenuUne question intéressante à propos mysql_real_escpae_string

Lors de l'ajout de contenu, il n'y a pas de problème, Allthings ajouter normalement:

$chead  = mysql_real_escape_string(stripslashes($_POST['chead'])); 
$ctext  = mysql_real_escape_string(stripslashes($_POST['ctext'])); 

Mais quand edittig l'article qui containig la

$chead = 'sdsfsf' "sdgsdgs"ggdsfsdg 

le Chéad de $ = 'sdsfsf' et le "sdgsdgs"ggdsfsdg sera perdu !!! Quel est le problème avec mysql_real_escpae_string? Merci

+1

Désolé, je ne comprends pas. Pouvez-vous l'expliquer un peu plus? – Gumbo

+1

Probablement un problème HTML, avez-vous vérifié la _source_ de la page (pas la sortie réelle dans vos navigateurs.) Mysql_real_escape_string() n'a pas de problème (avec ceci ..) sauf si votre installation de PHP est sérieusement cassée, et je doute fortement que – Wrikken

+0

ofcourse: Lorsque j'ajoute l'article, le titre de l'article () est "sdsfsf" "sdgsdgs" ggdsfsdg. Lorsque je l'édite, il passe à "sdsfsf" et "sdgsdgs" ggdsfsdg est @Wrikken, j'ai vérifié le html, "sdgsdgs" ggdsfsdg est perdu :( – TheNone

Répondre

0

Vous devez rechercher où les informations sont perdues, ce qui n'est pas susceptible d'être mysql_real_escape_string.

Vérifiez la valeur $chead générée (avant d'accuser une fonction particulière d'avoir endommagé vos données, assurez-vous que c'est le cas). Ensuite, vérifiez la commande SQL que vous générez et assurez-vous que cela fonctionne. Vérifiez la base de données après avoir inséré/mis à jour l'enregistrement et les valeurs renvoyées à partir de la base de données lorsque vous demandez l'article de retour. Dans mon expérience, il est beaucoup plus probable que ce soit une erreur de programmation dans l'interaction de la base de données, ou la génération de HTML qui cause des problèmes que PHP. Si vous dépistez le problème à mysql_real_escape_string, vous devrez probablement réinstaller PHP et MySQL.

+0

J'ai résolu ce problème avec l'ajout de htmlspecialchars lorsque l'entrée d'impression. Mais je ne comprends pas encore pourquoi ce problème est arrivé. – TheNone