problème html source dans ma bdd

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : problème html source dans ma bdd

par Ryle » 21 nov. 2007, 13:37

Modération :
J'ai ajouté le tag [Résolu]

Tu peux réaliser cette opération toi-même
en cliquant sur le bouton Image qui s'affiche en haut à gauche de ce sujet
si tu as posté le 1er message en tant que membre (inscrit et identifié).

Alors... inscris-toi !!! ;)

par Yo » 21 nov. 2007, 12:23

Résolu ! merci beaucoup, j'ai bien enlevé l'addslash et cela fonctionne parfaitement ! merci beaucoup pour votre rapidité, excellent ! ;)

par Yo » 21 nov. 2007, 12:19

Ok merci beaucoup pour l'information.

Alors je viens de retirer l'anti slash... cela ne fonctionnait toujours pas ... mais là étrange : j'ai ajouter un "textarea" pour le titre du sujet pour voir si il y avait toujours l'effet antislash dans la BDD... et là surprise rien du tout ! parfait !

Alors là je comprends plus rien, je dois avoir une erreur dans mon code pour l'envoi à la BDD de mon "texte" mais je ne vois pas où... si quelqu'un peut m'éclairer...
<?php
}

else
{

  $id=$_GET["id"];



$sql = "SELECT id, texte, titre
FROM pres_profs
WHERE id='$id'";

// on envoie la requ&ecirc;te
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

// on fait une boucle qui va faire un tour pour chaque enregistrement
$data = mysql_fetch_array($req);

	?>
                  <form method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>">
                    <p align="left">
                      <input type="hidden" name="action" value="inserer" />
                      <?
    ?>
                      <input type="hidden" name="idins" value="<? echo $id; ?>" />
                      <?
    ?><p align="left">Modification du nom du prof : 
                      <textarea name="titre" cols="75" rows="10" wrap="physical"><?php echo ''.$data[2].''?></textarea>
                    </span><br>
                            <br>
                            <br>
                          Texte pour la présentation du prof :
                          <textarea name="texte" cols="75" rows="10" wrap="physical"><?php echo ''.$data[1].'' ?></textarea>
                          --> ... </li>
                      </ul>
                    </div>
                    <ul>
                    </ul>
                    
                    <p>
                      <input type="submit" name="Submit" value="Ok" />
                    </p>
                  </form>
désolé pour la longueur de la source...

par Ryle » 21 nov. 2007, 12:04

Chez Free (comme chez beaucoup d'hébergeurs) , les magic quotes sont activées par défaut.

Donc les apostrophes et guillemets que tu reçois via get ou post sont backslashés automatiquement. Si tu ajoutes en plus un addslashes(), alors tu double cet effet :

Code : Tout sélectionner

" L'école " ==(magic quotes)==> " L\'école " ==(addslashes())==> " L\\\'école "
Du coup l'antislash ajouté par les magic quotes est protégé à son tour et lorsque tu insères en base, tu vas stocker " L\'école " au lieu de " L'école " :)

Tu peux tester si les magic quotes sont activées ou pas pour savoir s'il faut ou non faire un addslashes :
if (!get_magic_quotes_gpc()) { // magic quotes désactivées
    $lastname = addslashes($_POST['lastname']);
} else {
    $lastname = $_POST['lastname'];
}

par Yo » 21 nov. 2007, 11:55

J'ai créé ce .htacces, mais désormais sur mes pages j'ai "erreur interne du serveur".

Par ailleurs j'ai bien intégré dans mon code le
	 $texteins=addslashes($texteins);
Mais j'arrive pas à comprendre de ou cela peut il venir

par Calimero » 21 nov. 2007, 11:51

Tu peux alors passer par un fichier .htaccess qui contiendrait cette ligne :

Code : Tout sélectionner

php_flag magic_quotes_gpc off

par Yo » 21 nov. 2007, 11:38

euh, je n'ai pas préciser que je suis actuellement sur free (avant de passer sur ovh dès que le site est finit...)
donc pas moyen d'éditer le php.ini....

par Calimero » 21 nov. 2007, 11:33

Bonjour,

Edite ton php.ini et positionne la variable magic_quotes_gpc à la valeur Off. Et redémarre apache dans la foulée ;-)

problème html source dans ma bdd

par Yo » 21 nov. 2007, 11:17

Bonjour à tous,

J'utilise tinymce (WYSIWYG) sur ma zone d'administration afin de pouvoir mettre en forme facilement mes articles.

Pas de problème pour l'installation, et l'intégration à mes différents formulaires qui enregistres les articles dans la BDD, mais il y a 2 hic :
_ Lorsqu'il y a un mot comme "l'école", un antislash se glisse dans l'enregistrement sur ma BDD
_ En fait, voici un exemple de code html qu'y à l'origine était correct, mais à l'enregistrement à mis des anti slash un peu partout
<p>Bienvenue sur la pr&eacute;sentation de l\'&eacute;cole</p><p>fekfe,fke,fke,ffe</p><p align=\"right\"><strong><font color=\"#ff6600\"><img src=\"tinymce/jscripts/tiny_mce/plugins/emotions/images/smiley-cool.gif\" border=\"0\" alt=\"Cool\" title=\"Cool\" />ekfn,ekfek,nfe</font></strong></p>
Ce qui fait que l'image ne se voit pas, la couleur n'est pas bonne, l'alignement non plus etc.
Je ne sais pas si cela est du au jeu de caractère, j'utilise le latin1_general_ci

Merci d'avance pour votre aide, cordialement