Le Monde selon... (le blog de raf)
Retour au blog <<

[php] FCKeditor et copier/coller

Mercredi 26 novembre 2008 à 16 h 44
Désespoir ordinaire et persistant du phpiste newbie :

Pourquoi mais pourquoi mes copier/coller ne s'enregistre t'il pas dans ma base avec FCKeditor hein ?! Pourquoi !?

Tu le sais toi ?!
par Mathieu
Mercredi 26 novembre 2008 à 17 h 01
Affiche ta requête en PHP puis copie/colle la dans ton PHPmyadmin. Tu verras tout de suite si y'a une erreur. C'est probablement un échappement de caractère qui passe mal.
par raf
Mercredi 26 novembre 2008 à 17 h 07
Affiche ta requête en PHP

Si je fais :

$requete = myqsl_query(INSERT INTO blabla bli blalba...);
echo $requete ;

Il affiche rien/nada/quedalle

Si je fais :

$contenu = $_POST['nom_du_textarea'];
echo $contenu;

Il affiche le bon contenu mais rien n'est enregistré dans ma table :(

Suis-je nul ? Je veux dire si nul que çà ?
par Mathieu
Mercredi 26 novembre 2008 à 17 h 11
La requête SQL
par raf
Mercredi 26 novembre 2008 à 17 h 14
J'ais édité mon post plus haut pour te préciser les choses (merci Mathieu)
par jye
Mercredi 26 novembre 2008 à 17 h 18
Tu n'as visiblement pas compris. Affiche nous ta requête SQL, l'équivalent à INSERT INTO blabla bli blalba... une fois les variables remplaçés par tes variables récupérées dans ton POST.
par raf
Mercredi 26 novembre 2008 à 17 h 22
Je voudrais bien mais je ne sais pas comment afficher cette requête par php (noob inside).

J'ai essayé çà : $requete = mysql_query(INSERT INTO blabla bli blabla...)
echo $requete;

mais je n'obtient qu'un "1" à l'affichage (boolean ?)

Désolé...
Mercredi 26 novembre 2008 à 17 h 33
tu fais juste :
echo "INSERT INTO blabla bli blabla..."
par raf
Mercredi 26 novembre 2008 à 17 h 34
oki merci
Mercredi 26 novembre 2008 à 17 h 34
Je sais pourquoi j'ai dis non au php maintenant...
par Mathieu
Mercredi 26 novembre 2008 à 17 h 35
Houuuu je sens que ca va manquer de guillemets tout ca...
par raf
Mercredi 26 novembre 2008 à 17 h 37
Okay c'est un problème de ' (apostrophe) qui fout la merde. Donc ce que disait Mathieu j'imagine (échappement). Comment je règle çà moi ?!

Edit : Mathieu tu le sens bien là... :)
Edit2 : apostrophe fout la merde mais pas guillemet (comprenne qui pourra)
Edit3 : Sauf si je mets un nombre paire d'apostrophe, là çà passe...
Edit4 : Voila ma requête (j'imagine qu'elle sent du derche mais c'est ma première alors rigolez pas hein...)

$req = mysql_query("INSERT INTO articles VALUES('', '" . $titre . "', '" . $contenu . "', '" . time() . "')") or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
par Mathieu
Mercredi 26 novembre 2008 à 17 h 42
Alors déjà la base :

/* (fais ta connexion à ta BDD, tout ca tout ca...) */
(...)
$contenu = mysql_real_escape_string($_POST['nom_du_textarea']);
(...)
$requete = "INSERT INTO articles SET contenu = '$contenu', blabla bli blabla...";
$retour_requete = mysql_query($requete);
(...)
par raf
Mercredi 26 novembre 2008 à 17 h 45
Mathieu U roxorZ

J'imagine qu'il y a aussi une fonction inverse à mysql_real_escape_string ?
par Mathieu
Mercredi 26 novembre 2008 à 17 h 47
Normalement tu n'as pas besoin de fonction inverse. Si tu penses en avoir besoin c'est certainement que tu fais fausse route.
http://fr3.php.net/mysql_real_escape_string
par raf
Mercredi 26 novembre 2008 à 17 h 50
MERCI MATHIEU ! çà marche, effectivement, pas besoin d'inverser la tendance. Putain j'ai perdu 2 heures là-dessus et en plus je passe pour un crétin... ;)

Merci encore !
par Mathieu
Mercredi 26 novembre 2008 à 17 h 53
Mercredi 26 novembre 2008 à 17 h 55
Mathieu Fail c'est pas de l'html...
par Mathieu
Mercredi 26 novembre 2008 à 17 h 59
Je peux aussi en faire... pour manger.
Jeudi 27 novembre 2008 à 15 h 28
A noter que si magic_quotes_gpc est activé tu vas avoir un double échapement...

$contenu = ($_POST['nom_du_textarea']);
if (get_magic_quotes_gpc()) {
$contenu = stripslashes($contenu);
}
$contenu = mysql_real_escape_string($contenu);
par raf
Jeudi 27 novembre 2008 à 16 h 32
@El_Porico : Merci pour ta précision !
par err3d
Vendredi 28 novembre 2008 à 00 h 04
Pour le débug, tu as la fonction var_dump() qui te permet de voir ce que l'expression te retourne (à la place de faire des echo/print partout, en plus elle t'affiche le type).

Teste tes requêtes SQL dans phpmyadmin ou autre, comme ça tu es sûr qu'elles fonctionnent.

Pour la sécurité, comme tu sembles faire un formulaire, check aussi la fonction htmlentities() (et htmlspecialchars() ). Elles évitent à l'utilisateur d'insérer du code html qui pourrait être ensuite interprété par le navigateur.

Je te renvois à php.net pour toute la doc et les exemples ;)
Toutes les personnes enregistrées peuvent poster un commentaire dans ce blog.

Commenter

Tags autorisés : [b] [/b], [i] [/i], [u] [/u], [code] [/code], [img]Adresse d'une image[/img], [url=Adresse d'un site web] [/url]
Vous pouvez aligner vos images à droite ou à gauche en modifiant le tag [img] comme ceci : [img right] ou [img left].

Pour vos vidéos/animations flash : [video]Adresse d'une animation[/video], pour préciser la largeur et hauteur : [video width=100 height=200]...[/video]