IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Enregistrement code html dans une base de données


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    QA
    Inscrit en
    Septembre 2022
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : QA

    Informations forums :
    Inscription : Septembre 2022
    Messages : 39
    Par défaut Enregistrement code html dans une base de données
    Bonjour,

    J'ai un formulaire qui met à jour une base de données et j'aimerais que mon champ textearea puisse envoyer du code html. Mon formulaire fonctionne si c'est juste du text, mais dès que c'est du code html il ne mets pas à jour la BD. J'ai essayé avec des outils tel que TinyMce, mais ceux-ci ne marche pas plus ou supprime une partie du code (surtout que j'ai plusieurs champs textarea.

    Voici mon formulaire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <form method="POST" enctype="multipart/form-data" action="update.php?">
    <input class="form-control" type="hidden" value="<?php echo $fetch['id']?>" name="id"/>
    <input class="form-control" type="text" value="<?php echo $fetch['logo']?>" name="logo"/>
    <textarea rows="4" cols="50" id="history" type="text" value="<?php echo $fetch['history']?>" name="history"/><?php echo $fetch['history']?></textarea>
    <textarea rows="4" cols="50" id="description" type="text" value="<?php echo $fetch['description']?>" name="description"/><?php echo $fetch['description']?></textarea>
    <br style="clear:both;"/>
    <button class="btn btn-danger" data-dismiss="modal">Close</button>
    </form>
    Ainsi que ma page d'enregistrement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?php
    	require_once 'conn.php';
    	$dbName = $_GET['dbName'];
    		if(ISSET($_POST['update'])){
    		try{
    	$id = $_POST['id'];
    	$logo = $_POST['logo'];
    	$history = $_POST['history'];
    	$description = $_POST['description'];
    			$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    				$sql = "UPDATE `myTable` SET `logo` = '$logo', `history` = '$history',`description` = '$description' WHERE `id` = '$id'";
    				$conn->exec($sql);
    		}catch(PDOException $e){
    			echo $e->getMessage();
    		}
    		?>
    Merci de m'aider ou de me diriger vers une solution.

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2009
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2009
    Messages : 35
    Par défaut Guillement
    Bonjour
    Je pense qu'il s'agit d'un pb d'encodage
    Ma BDD enregistre du code HTML.
    Avant j'avais des pb avec l'échappement de la guillemet '
    maintenant je transforme toutes mes données qui comportent des guillements ' avec le ’
    $val = str_replace("'","’",stripslashes($val));
    Ce n'est pas toujours élégant mais je ne me soucis pas de la function addslashes

  3. #3
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 325
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 325
    Billets dans le blog
    17
    Par défaut
    Affiche $sql et vérifie que la requête est correctement formée.

    Tes données ne sont pas échappées, ça doit sûrement poser problème, voir PDO::quote().

  4. #4
    Membre averti
    Homme Profil pro
    QA
    Inscrit en
    Septembre 2022
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : QA

    Informations forums :
    Inscription : Septembre 2022
    Messages : 39
    Par défaut
    Citation Envoyé par Séb. Voir le message
    Affiche $sql et vérifie que la requête est correctement formée.

    Tes données ne sont pas échappées, ça doit sûrement poser problème, voir PDO::quote().
    Je sais que ce n'est pas la requête car si c'est juste du texte ça marche.

    Je pense qu'il s'agit d'un pb d'encodage
    Ma BDD enregistre du code HTML.
    Avant j'avais des pb avec l'échappement de la guillemet '
    maintenant je transforme toutes mes données qui comportent des guillements ' avec le ’
    $val = str_replace("'","’",stripslashes($val));
    Ce n'est pas toujours élégant mais je ne me soucis pas de la function addslashes
    J'ai l'impression que c'est ça car, j'ai ajouté du str_replace

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	$history = str_replace('"','\"',$history);
    	$history = str_replace('/','\\"',$history);
    Et quand j'affiche mon textarea voic mon résultat:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <"td>
    <"tr>
    <"table>" name="history"/><table>
    <tr>
    <td><img src="http:""eif-fel.ca"h2orcdesign"img"logo.png"><"td>
    <"tr>
    <"table>

  5. #5
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 325
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 325
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par eiffel-mtl Voir le message
    Je sais que ce n'est pas la requête car si c'est juste du texte ça marche.
    Alors je maintiens d'autant plus :

    Affiche $sql et vérifie que la requête est correctement formée.
    Tes données ne sont pas échappées, ça doit sûrement poser problème, voir PDO::quote().
    Après tu fais comme tu veux

    PS : on n'échappe pas du SQL avec str_replace() mais avec une fonction/méthode dédiée comme PDO::quote(), ou les mécanismes d'une requête préparée.

  6. #6
    Membre averti
    Homme Profil pro
    QA
    Inscrit en
    Septembre 2022
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : QA

    Informations forums :
    Inscription : Septembre 2022
    Messages : 39
    Par défaut
    Citation Envoyé par Séb. Voir le message
    Alors je maintiens d'autant plus :


    Après tu fais comme tu veux

    PS : on n'échappe pas du SQL avec str_replace() mais avec une fonction/méthode dédiée comme PDO::quote(), ou les mécanismes d'une requête préparée.
    Effectivement, si j'envois la requête, le champ que j'envois affiche rien.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE `mytable` SET `logo` = 'logoName', `history` = '',`description` = ''WHERE `id` = '2'
    Voir "history" et "description". Pourtant, dans mon textarea j'avais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <table><tr><td>blablabla</td></tr></table>

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/09/2015, 23h35
  2. [MySQL] enregistrer des info dans une base de données a partir d'un site internet HTML
    Par coralieD dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 14/01/2015, 15h23
  3. [MySQL] Récupération de code php dans une base de données
    Par kitana dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 21/03/2006, 00h25
  4. [Conception] Code php dans une base de donnée
    Par krfa1 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 13/09/2005, 10h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo