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 :

PDO::PARAM_STR et code html en base de données. [PDO]


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Par défaut PDO::PARAM_STR et code html en base de données.
    Je crois que ceci bindValue et PDO:: PARAM_STR m'empêche de placer des balise html dans ma base de données.

    Y a t-il moyen à ce que je puisse placer des balises dans la base de données tout en ayant param_str?

    J'utilise textarea avec ckeditor pour créer des pages en ligne mais à cause des balises html, ça refuse d'enregistrer.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Qu'est ce que ca signifie exactement "ça refuse" ?
    Tu as un message d'erreur ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éclairé Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Par défaut
    Je remplace pour montrer plus simple:

    si je fais ceci dans textarea:

    <script> ou une balise du genre, ça redirige à la racine.




    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    <?php
    include('bdd.php');
     
    if ($_POST) {
      $bddu = new Bdd();
      $bddu->query('UPDATE mpages SET contenu = :contenu, titre = :titre WHERE id = :id');
      $bddu->bind(':id', $_GET['id']);
      $bddu->bind(':contenu', $_POST['contenu']);
      $bddu->bind(':titre', $_POST['titre']);
      $bddu->execute();
    }
     
    $bdd = new Bdd();
    $bdd->query('SELECT * FROM mpages WHERE id = :id');
    $bdd->bind(':id', $_GET['id']);
    $row = $bdd->single();
    $contenu=$row['contenu'];
    $titre=$row['titre'];
     
    ?>
     
    <!DOCTYPE html>
    <html lang="fr">
    <head>
     
    <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
    <meta http-equiv="content-language" content="fr">
     
    </head>
    <body>
     
    <div>
        <form action='' method='post'>
          <input id="titre" type="text" name="titre" value="<?=$titre?>" class="titreinput"></input>
          <textarea type='text' name='contenu'><?=$contenu?></textarea>
          <input type='submit' value='SAUVEGARDER'></input>
        </form>
    </div>
     
    </body>
    </html>
    Ma class de connexion:
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    class Bdd{
        private $host      = DB_HOST;
        private $user      = DB_USER;
        private $pass      = DB_PASS;
        private $dbname    = DB_NAME;
     
        private $dbh;
        private $error;
     
        public function __construct(){
            $dsn = 'mysql:host=' . $this->host . ';dbname=' . $this->dbname;
            $options = array(
                PDO::ATTR_PERSISTENT    => true,
                PDO::ATTR_ERRMODE       => PDO::ERRMODE_EXCEPTION
            );
            try{
                $this->dbh = new PDO($dsn, $this->user, $this->pass, $options);
            }
            catch(PDOException $e){
                $this->error = $e->getMessage();
            }
        }
     
            public function query($query){
                    $this->stmt = $this->dbh->prepare($query);
            }    
     
            public function bind($param, $value, $type = null){
                    if (is_null($type)) {
                            switch (true) {
                                    case is_int($value):
                                            $type = PDO::PARAM_INT;
                                            break;
                                    case is_bool($value):
                                            $type = PDO::PARAM_BOOL;
                                            break;
                                    case is_null($value):
                                            $type = PDO::PARAM_NULL;
                                            break;
                                    default:
                                            $type = PDO::PARAM_STR;
                            }
                    }
                    $this->stmt->bindValue($param, $value, $type);
            }
     
            public function execute(){
                    return $this->stmt->execute();
            }
     
            public function resultset(){
                    $this->execute();
                    return $this->stmt->fetchAll(PDO::FETCH_ASSOC);
            }
     
            public function single(){
                    $this->execute();
                    return $this->stmt->fetch(PDO::FETCH_ASSOC);
            }
     
            public function rowCount(){
                    return $this->stmt->rowCount();
            }
     
            public function lastInsertId(){
                    return $this->dbh->lastInsertId();
            }
     
            public function beginTransaction(){
                    return $this->dbh->beginTransaction();
            }
     
            public function endTransaction(){
                    return $this->dbh->commit();
            }
     
            public function cancelTransaction(){
                    return $this->dbh->rollBack();
            }
     
            public function debugDumpParams(){
                    return $this->stmt->debugDumpParams();
            }
     
    }

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Je doute que PDO se préoccuppe des balises html.
    Que se passe-t-il exactement ? tu as un message d'erreur ? pas de données enregistrées dans la base ? ton ordi explose ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Membre éclairé Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Par défaut
    quand je valide pour enregistrer dans la base de donnée, ça débarque de ma page pour aller à une erreur 404.

    A temps normal, ça retournerait à ma page pour le traitement php/mysql.

    J ai aucun message d'erreur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form action='' method='post'>
    ou avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form action='index.php?page=mpages&id=12' method='post'>

  6. #6
    Membre éclairé Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Par défaut
    J'ai résolu mon problème; j'avais fais quelques erreurs dans mon code.
    Merci pour vos interventions.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 06/06/2008, 09h45
  2. [php5]tableau HTML + enregistrement base de données
    Par fanette dans le forum Langage
    Réponses: 20
    Dernier message: 06/06/2007, 16h12
  3. Réponses: 2
    Dernier message: 15/04/2006, 20h12
  4. [Conception] HTML et Bases de données
    Par Jukien dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 08/04/2006, 14h52
  5. interprété du code stocké en base de donnée
    Par namosis dans le forum MFC
    Réponses: 7
    Dernier message: 14/11/2005, 22h06

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