Protéger son site contre les \' et \"

Résolu
cs_greg63 Messages postés 22 Date d'inscription dimanche 3 août 2003 Statut Membre Dernière intervention 16 décembre 2011 - 30 oct. 2011 à 13:42
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 - 30 oct. 2011 à 15:37
Bonjour,

Je suis en train de faire un petit script PHP pour permettre de modifier le contenu d'une page. Le contenu est dans un fichier *.txt et mon problème est que quand je mets des " ou ' ou encore \ il me rajoute a chaque fois des \ devant chaque caractère. Et ce n'est pas top. Voila le lien de mon script hébergé sur mon serveur : http://depot.babeuloula.fr/txt-php/

Et voici le script php :

[code=php]





PHP + TXT












Récupération d'un texte dans un *.txt





Modification d'un texte dans un .txt

















/code

[code=php]

5 réponses

cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
30 oct. 2011 à 14:19
bonjour
chez moi ça fonctionne
j'ai mis file_exists

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>
    
<head>
    
    <title>PHP + TXT</title>
    
    <link rel="shortcut icon" type="image/x-icon" href="">
    <link title="defaut" type="text/css" rel="stylesheet" href="style.css" media="screen">

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <meta name="keywords" content="MOT CLE1; MOT CLE2">
    <meta name="Description" content="DESCRIPTION COURTE">

</head>


    
    <center>Récupération d'un texte dans un *.txt
</center>
    
    

        <?php
        
            $chemin = 'texte.txt';
              
              if(file_exists($chemin) && $lignes=file($chemin)){
                       
                foreach ($lignes as $ligne){
                echo ''.$ligne.'

';
                }
              
              }else{
              $handle = fopen($chemin,'w+');
              fclose($handle);
              }
        ?>
    

    
    <center>Modification d'un texte dans un .txt
</center>
    
    

            
<?php
    
    $fname = "texte.txt";
    if(!isset($_POST["text"])) {
        echo '<form method="post" action="">';
        echo '<textarea name="text\' id="message" cols="80" rows="10">';
        readfile($fname);
        echo '</textarea>';
        echo '

';
        echo '</form>'; 
    }
    
    else {
        $fhandle = fopen($fname,"w");
        $text = $_POST['text'];
        
        $text=strip_tags($text); /*si tu veux pas de tags*/
        /*htmlentities ...*/
        $text=stripslashes($text);
        
        fwrite($fhandle,$text);
        fclose($fhandle);
        echo '<center>Message modifié avec succés</center>';
        echo '<center>[ Retour]

</center>';
    }  
    
?>




Bonne programmation !
3
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
30 oct. 2011 à 14:27
je reposte une boulette dans le code précédent
un \' qui doit etre un "
excuses donc :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>
    
<head>
    
    <title>PHP + TXT</title>
    
    <link rel="shortcut icon" type="image/x-icon" href="">
    <link title="defaut" type="text/css" rel="stylesheet" href="style.css" media="screen">

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <meta name="keywords" content="MOT CLE1; MOT CLE2">
    <meta name="Description" content="DESCRIPTION COURTE">

</head>


    
    <center>Récupération d'un texte dans un *.txt
</center>
    
    

        <?php
        
            $chemin = 'texte.txt';
              
              if(file_exists($chemin) && $lignes=file($chemin)){
                       
                foreach ($lignes as $ligne){
                echo ''.$ligne.'

';
                }
              
              }else{
              $handle = fopen($chemin,'w+');
              fclose($handle);
              }
        ?>
    

    
    <center>Modification d'un texte dans un .txt
</center>
    
    

            
<?php
    
    $fname = "texte.txt";
    if(!isset($_POST["text"])) {
        echo '<form method="post" action="">';
        echo '<textarea name="text" id="message" cols="80" rows="10">';
        readfile($fname);
        echo '</textarea>';
        echo '

';
        echo '</form>'; 
    }
    
    else {
        $fhandle = fopen($fname,"w");
        $text = $_POST['text'];
        
        //$text=strip_tags($text); /*si tu veux pas de tags*/
        /*htmlentities ...*/
        $text=stripslashes($text);
        
        fwrite($fhandle,$text);
        fclose($fhandle);
        echo '<center>Message modifié avec succés</center>';
        echo '<center>[ Retour]

</center>';
    }  
    
?>

    




</html>


Bonne programmation !
3
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
30 oct. 2011 à 14:08
Bonjour,

Regardes addslashes et son opposée.
Tu dois avoir les magic quotes activé, d'où l'effet.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS et aussi ce lien[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
cs_greg63 Messages postés 22 Date d'inscription dimanche 3 août 2003 Statut Membre Dernière intervention 16 décembre 2011 1
30 oct. 2011 à 15:26
Et bah merci, ce fut rapide et efficace.

Quand je pense que c'est juste une variable qui allait pas, ça me tue.

Bon bah RESOLU. Merci a tous.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
30 oct. 2011 à 15:37
Bonjour,

Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS et aussi ce lien[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
Rejoignez-nous