begin process at 2012 05 28 08:12:00
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

AddSlashes


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

AddSlashes

vendredi 29 septembre 2006 à 23:20:20 | AddSlashes

MadM@tt

Membre Club
Salut à tous

Voilà pffouu je commence à désespérer je fais appel à d'autres pour mon problème.
J'ajoute pas mal d'infos dans un bdd, genre des commentaires, forum etc... pour sécuriser le texte j'utilise la fonction :
// Formate le texte
function FormatText($str)
{
    $str = trim($str);
    $str = htmlentities($str);
    $str = nl2br($str);
    if (get_magic_quotes_gpc()) {
       $str = $str;
    }
    else {
       $str = addslashes($str);
    }
    return $str;
}



Et la get_magic_quotes_gpc() = 0 chez moi, je sais pas pourquoi, enfin je me retrouve avec des apostrophes dans ma bdd, mais ça ne crée AUCUN problème avec les commentaires et forum etc...
Par contre j'utilise une chaine de caractère pour faire un historique de modifications, et la y'a un problème.
La chaine c'est du genre :
"date : Explications
date : Explications"

Et si Explications contient un ' tout est affiché est enregistré, mais lorsque je veux ajouter une nouvelle ligne, ça marche pas...
La ligne n'est pas ajoutée.
Il s'agit d'un champ de type "text" dans un enregistrement MySql


Voici à tout hasard la fonction qui ajoute les modifications :
// Ajoute un élément à l'historique d'un code
function AddHistorique($codeID, $codeHistoriqueAdd)
{
    global $IsConnected;
    $tempIsCo = $IsConnected;
    if (dbConnect() !=0) {
        $req = "SELECT `Historique` FROM `codes` WHERE `ID` = '$codeID'";
        $result = mysql_query($req);
        $rs = mysql_fetch_row($result);
        $br = '';
        if ($rs[0] != '') { $br = '<br />'; }
        $codeHistorique = $rs[0] . $br . date('d/m/Y') . ' : ' . $codeHistoriqueAdd;
        msgbox(addslashes($codeHistorique));
        $req = "UPDATE `codes` SET `Historique` = '$codeHistorique' WHERE `ID` = '$codeID'";
        $result = mysql_query($req);
        if ($tempIsCo == 0) { dbClose(); }
    }
}





Voilà si vous voyez où est le souci, sachant que ça pose pas problème pour les autres enregistrement, c'est juste ce champ qui foire...

Merci d'avance

Ciaò
MadMatt
www.madmatt.fr.st

samedi 30 septembre 2006 à 11:26:12 | Re : AddSlashes

malalam

Administrateur CodeS-SourceS
Hello,

pour ce qui me concerne, il faut que tu réexpliques : je n'ai rien compris.
samedi 30 septembre 2006 à 12:06:13 | Re : AddSlashes

MadM@tt

Membre Club
lol ok désolé, je recommence, les bouts de code sont dans le post précédent.
Donc tout marche chez moi avec get_magic_quotes_gpc() = 0 (je sais pas pourquoi c'est 0 mais bon) pour le forum etc.... les gens peuvent très bien poster un message contenant des ' ça foire pas.

Par contre j'ai un champ "Historique" (dans une table) qui contient du texte de la forme :
"29/06/2006 : Mise à jour du site 1<br>
30/06/2006 : Mise à jour du site2"

Et donc dès qu'une modif sur une page est faite on récupère la valeur du champ, on ajoute à cette chaine :
"<br>Date : Explications"
Puis on re-rentre la chaine dans la bdd au meme endroit, une simple modif quoi.

Et la si le texte contient un ' alors je n'arrive plus à y ajouter une ligne par la suite. J'ai testé avec des echo, tout se passe bien jusqu'à la modif dans la base de données, où la le ' à l'air de poser problème.
Je ne pense pas que ça vienne directement du code car quand il n'y a pas de ' tout marche.


Voilà j'espère que j'ai réussi à expliquer ??

Merci

Ciaò
MadMatt
www.madmatt.fr.st

samedi 30 septembre 2006 à 12:17:19 | Re : AddSlashes

malalam

Administrateur CodeS-SourceS
get_magic_quotes_gpc() = 0 ça veut dire que ton php n'utilise pas les magi_quotes, et que donc, il faut que tu utilises addslashes sur les champs de type texte lors d'une insertion en base, et stripslashes lors de l'affichage (ou mysql_real_escape-string() pour insertion si tu utilises mysql).
Montre le html permettant d'effectuer cette modification...? (le formulaire, et plus particulièrement la partie contenant ton "explication").

samedi 30 septembre 2006 à 13:27:07 | Re : AddSlashes

MadM@tt

Membre Club
Ben j'utilise addslashes

Voici le début du formulaire :
<form action="okmodif.php?ID=<?php echo $codeID; ?>" method="post">
<b>Explications de la modification :</b><br />
<textarea class="Clair" name="modifExplications" rows="4" style="width: 100%"></textarea><br />


La page qui reçoit le post :
$modifExplications = FormatText($_POST['modifExplications']);
[...]
AddHistorique($codeID, $modifExplications);

Pour les fonctions FormatText et AddHistorique, elles sont dans le premier post.
Pour info mon site fonctionne un peu comme Codes Sources, y'a des codes de postés, l'auteur peut les modifier et donc y'a un historique des modifications.

Merci pour ton intéret à mon problème

Ciaò
MadMatt
www.madmatt.fr.st

vendredi 6 octobre 2006 à 22:29:00 | Re : AddSlashes

MadM@tt

Membre Club
Désolé de te relancer comme ça, je retente juste ma chance car j'ai enfin l'hébergement donc le site va pas tarder à aller en ligne ^^

Donc voilà as-tu une idée pour mon problème, sinon tant pis merci en tout cas d'avoir essayé

Ciaò
MadMatt
www.madmatt.fr.st



Cette discussion est classée dans : problème, req, str, historique, addslashes


Répondre à ce message

Sujets en rapport avec ce message

Gros problème BDD [ par kodiask ] voila mon code il consiste a remplacer les lettres par une image...while($data = mysql_fetch_array($req)) { $data['nom'] =str_replace('a','',$da problème de syntaxe [ par zsafae ] bonjour,dites moi svp,y a t il une erreur sur ce ptit script?$l=$_POST['login'];$req="UPDATE  utilisateur SET  password='administrateur' WHERE login=" gros problème avec un lien !! :S [ par jimmypage64 ] J'ai le code suivant : 1 2           $req = "select * from Topics ORDER BY NomTopic;"; 3            //exécution de la requête 4 &n Problème avec les chaines de caractères [ par nisaloncaje ] bonjour à tous :j'ai le problème suivant en php :j'ai une chaine de caractères $str. Cette chaine peut contenir deux sous chaines : $ss_str et $ss_str juste un problème d'écriture [ par 64nemesis ] Bonjour je suis en train de devenir fou!!Voici mon code:$content = str_replace('',$content);        $content = str_replace('?>','"; ?>',$content);le d problème : remplacer un \ dans un string [ par attaquevertical ] Bonjour,J'ai un problème quand je désire remplacer mon \ par un / en php voilà déjà tout ce que j'ai testé :$urlpropre = str_replace('\'', '/', $url) Problème de sécurité avec include() [ par ladrue ] Bonjour J'ai fait ceci pour sécuriser mon site pour résoudre le problème d'include() mais je n'arrive pas à afficher la page historique.php quand j'a Problème avec str_replace [ par Arnauti ] Bonjour, je fais pour m'amuser un truc tout simple pour crypter (pas fini le truc) mais bon ... Voici mon code : $texte = 'cd' ; $original = array( Problème de code ,,, [ par thekid23 ] Salut, j'ai un problème ... Voici le code :$fichier = 'donnee/Regular Season Schedule.csv';if(file_exists($fichier)){$fp = fopen("$fichier", "r");  wh Problème [ par svince ] J'ai créé une fonction php : 1.function motnonconnu($mot){2.    include('connexion.php');3.    $req = mysql_query("SELECT * FROM mot WHERE mot='$mot'"


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,577 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales