Problème avec les antislashes (formulaire et base de donnée)

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 avec les antislashes (formulaire et base de donnée)

Re: Problème avec les antislashes (formulaire et base de donnée)

par AB » 28 mars 2011, 22:47

et bien oui effectivement
$fichier_a_ouvrir= fopen ("../".$name_file.".php", "w"); 
if (get_magic_quotes_gpc()) {fwrite ($fichier_a_ouvrir, stripslashes($_POST['body']));};
fclose ($fichier_a_ouvrir);
ca marche bien mieux comme ca. Merci a tous ceux qui m'ont aider pour votre professionnalisme grâce à vous j'avance bien.

Bonne continuation a tous, cordialement.
Non pas bon ça. Si ton serveur fini par être correctement configuré (get_magic_quotes_gpc désactivé) tu n'écriras plus rien dans ton fichier...

Tu étais sur la bonne piste avec ta fonction même s'il fallait la réécrire :
function Verif_magicquotes ($chaine)
{
if (get_magic_quotes_gpc()) $chaine = stripslashes($chaine);

return $chaine;
} 

$fichier_a_ouvrir= fopen ("../".$name_file.".php", "w"); 
fwrite ($fichier_a_ouvrir, Verif_magicquotes ($_POST['body']));};
fclose ($fichier_a_ouvrir);

Re: Problème avec les antislashes (formulaire et base de donnée)

par piotrowski-s » 28 mars 2011, 21:28

et bien oui effectivement
$fichier_a_ouvrir= fopen ("../".$name_file.".php", "w"); 
if (get_magic_quotes_gpc()) {fwrite ($fichier_a_ouvrir, stripslashes($_POST['body']));};
fclose ($fichier_a_ouvrir);
ca marche bien mieux comme ca. Merci a tous ceux qui m'ont aider pour votre professionnalisme grâce à vous j'avance bien.

Bonne continuation a tous, cordialement.

Re: Problème avec les antislashes (formulaire et base de donnée)

par Ryle » 27 mars 2011, 22:26

La fonction stripslashes() te retourne la chaine modifiée, mais si tu ne récupères pas ce résultat ça ne sert pas à grand chose :)

essaye : $body = stripslashes($body);
au lieu de juste faire stripslashes($body);

Re: Problème avec les antislashes (formulaire et base de donnée)

par piotrowski-s » 27 mars 2011, 20:26

function stripslashes_if_gpc_magic_quotes( $body ) {
    if(get_magic_quotes_gpc()) {
        return stripslashes($body);
    } else {
        return $body;
    }
}
j'ai essayé avec cette fonction placée a posteriori et a priori pour etre sur qu'elle soit prise en compte mais rien n'y fait ...

Re: Problème avec les antislashes (formulaire et base de donnée)

par piotrowski-s » 27 mars 2011, 19:43

Merci de votre réponse rapide
j'ai donc fais cela
$fichier_a_ouvrir= fopen ("../".$name_file.".php", "w"); stripslashes($body); fwrite($fichier_a_ouvrir,$body); fclose ($fichier_a_ouvrir);
mais cela n'est pas pris en compte il continu a me rajouter des antislashes partout.

Re: Problème avec les antislashes (formulaire et base de donnée)

par moogli » 27 mars 2011, 19:32

stripslashes($body) ....

Re: Problème avec les antislashes (formulaire et base de donnée)

par piotrowski-s » 27 mars 2011, 19:28

Merci de votre réponse rapide, si j'ai bien compris je dois utiliser la fonction stripslashes() mais le truc c'est que je ne sais pas comment l'intégrer à cette portion de code
$fichier_a_ouvrir= fopen ("../".$name_file.".php", "w"); fwrite($fichier_a_ouvrir,$body); fclose ($fichier_a_ouvrir);
car les exemples montrés ne sont pas similaires.

Re: Problème avec les antislashes (formulaire et base de donnée)

par moogli » 27 mars 2011, 19:14

salut,

c'est typiquement un problème de magic_quote, ajoute un stripslashes avant insertion dans le fichier !

un peu lecture sur le sujet ? => la magie noire des apostrophes magiques

@+

Problème avec les antislashes (formulaire et base de donnée)

par piotrowski-s » 27 mars 2011, 18:04

Bonsoir, je suis soumis au problème cité en titre ci-dessus.
Le truc c'est que j'ai un formulaire avec un wysiwyg qui permet d'importer des images.
J'enregistre le resultat de ce formulaire dans ma bdd jusque la pas de soucis et le code qui est enregistré est ok (wysiwyg utilisé CKEditor),
mais le soucis qui est est dans ce code qui doit les récupérer dans une page qui se créé automatiquement:
j'ai fait ce code ci:
$fichier_a_ouvrir= fopen ("../".$name_file.".php", "w"); fwrite($fichier_a_ouvrir,$body); fclose ($fichier_a_ouvrir);
sachant que le $body est en fait la variable de la base de donnée.
Quand je regarde avec phpmyadmin voila ce qui est enregistré:
<img alt="angel" height="20" src="http://asplosion.com/admin/ckeditor/plugins/smiley/images/angel_smile.gif" title="angel" width="20" /><img alt="" src="/upload/indes2_02.png" style="width: 640px; height: 89px;" /></p>
ici le code est niquel
sauf que quand je regarde sur le fichier créé avec le code de la bdd récupéré qui correspond au corps de la page:
voila le code
<p>

	<img alt=\"angel\" height=\"20\" src=\"http://asplosion.com/admin/ckeditor/plugins/smiley/images/angel_smile.gif\" title=\"angel\" width=\"20\" /><img alt=\"\" src=\"/upload/indes2_02.png\" style=\"width: 640px; height: 89px;\" /></p>

je ne comprends pas pourquoi une telle différence, j'ai des antislashes partout :s

Quelqu'un saurait m'aider ?
d'avance merci.