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 :

PHP dans une base MySQL [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 6
    Par défaut PHP dans une base MySQL
    Bonjour,

    je viens de me mettre au MySQL !
    C'est génial, j'ai pu faire un mini-site web qui fonctionne,
    avec le contenu des pages web stocké dans une table de la base de donnée.

    Mais... j'ai un formulaire avec du PHP pour l'envoi d'e-mail.
    Quand j'écris le PHP dans la table, ça ne fonctionne pas...
    Le PHP est affiché sur la page web, il n'est pas interpreté.

    J'ai entendu qu'il ne faut pas écrire de PHP dans la base de donnée.

    Comment faire donc, pour faire ce formulaire ?
    Je n'arrive pas séparer le contenu et la partie PHP, comme ici par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <input type="text" name="email" id="email" value="
    <?php
        if (!empty($_POST["email"])) {
            echo htmlspecialchars($_POST["email"],ENT_QUOTES);
        }
    ?>
    "/>
    Merci de m'aider

  2. #2
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 814
    Billets dans le blog
    14
    Par défaut
    Ouh là !
    Citation Envoyé par Pample Voir le message
    avec le contenu des pages web stocké dans une table de la base de donnée.
    Tu peux nous expliquer plus concrètement ce que tu as fait parce que j'ai du mal à comprendre !
    Une base de données stocke des données ! Pas des pages web ! A la rigueur des url vers des pages web.

    Mais... j'ai un formulaire avec du PHP pour l'envoi d'e-mail.
    Quand j'écris le PHP dans la table, ça ne fonctionne pas...
    Le PHP est affiché sur la page web, il n'est pas interpreté.
    C'est normal, le php doit être écrit dans un fichier au suffixe .php (généralement) qui va être interprété par le serveur web afin de générer du code HTML lisible par le navigateur web du client.


    J'ai entendu qu'il ne faut pas écrire de PHP dans la base de donnée.
    Alors pourquoi l'as-tu fait ?

    Comment faire donc, pour faire ce formulaire ?
    Jette un coup d'oeil du côté des tutoriels PHP/MySQL. Il y en a sur developpez.com et une multitude d'autres sur le web. Il y a des bouquions aussi à profusion. Tu trouveras des critiques de certains livres sur developpez.com.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre à l'essai
    Inscrit en
    Décembre 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 6
    Par défaut explications
    Merci CinePhine pour ta réponse !

    Voilà quelques précisions du problème


    J'ai fait un petit site en PHP.

    Il n'y a qu'une seule page (index.php) avec un include().

    Par exemple, index.php?id=3 affiche la page réalisation.
    Il y a une petite fonction dans la page index.php qui selon l'id, inclus le fichier.inc correspondant.
    Les fichiers.inc contiennent simplement le contenu des pages en question, par exemple le fichier réalisations.inc contient :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <h2>// <a href="index.php?id=2">réalisations</a> > 3d</h2>
     
    <a href="legos.png" title="" rel="Legos">
    <img style="border:none; margin-right:10px; margin-bottom:3px;" src="legos_small.png" alt="Legos 2007" /></a>
    Je me suis dis que cela serait bien, au lieu d'avoir un fichier.inc pour chaque page, de faire une table dans la base mysql avec un champ ID et un champ CONTENU.

    Tout fonctionne a merveille, vive MySQL !
    Il devient donc même possible de faire une zone admin pour modifier les pages !

    Mais... dès que le contenu d'une page contient du PHP, comme la page contact pour envoyer un e-mail, ça ne fonctionne plus.

    Et si j'ai quand même mis du PHP dans la base mysql, c'est que je ne voit pas comment faire autrement. Et que j'aime bien essayer par moi-même

    J'ai lu pleins de tutos, surtout sur developpez.net, mais je ne trouve pas la réponse à ce problème.
    Merci !

  4. #4
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Bonjour,

    Mettre du code PHP dans une base de données est une hérésie, ce n'est pas correctement maintenable, et très dangereux.

    Que se passera-t-il lorsque quelqu'un saisira <?php mysql_query('ALTER TABLE ...'); ?> dans le texte de la page ?

    Il est malgré tout possible d'interprêter un code HTML qui contient du PHP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <?php eval('?>'.$html); ?>

    L'idéal serait de créer des templates pour chaque type de page. Si chaque page possède le même modèle je ne vois pas où est le problème.
    Tu devrais stocker les informations des pages en base de données (titre, description, contenu (WYSIWYG)). Ainsi, il te suffirait de créer une seule page template.php (par exemple) à laquelle tu passes en paramètre l'id de la page voulue.

  5. #5
    Membre à l'essai
    Inscrit en
    Décembre 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 6
    Par défaut
    Okay, je vois le problème ! Je n'y avais pas pensé...

    Mais alors comment fait-on dans mon cas ?!
    Je ne demande que pouvoir enlever ce PHP de la base.

    Dois-je abandonner le PHP dans le formulaire (comme le code dans mon 1er message) et faire un <form action=traitement.php ... > ?

    Ca serait dommage, il doit exister une solution !

  6. #6
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Re,

    Serait-il possible que tu nous montres ton code actuel ?

    C'est à dire ta page chargée d'inclure les fichiers (index.php ?), un des fichiers inclu ainsi qu'un exemple de code qui est stocké dans la base de données.

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

Discussions similaires

  1. [MySQL] Code PHP stocké dans une base MySQL
    Par yvon_huynh dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 27/10/2008, 02h28
  2. [MySQL] Récupération infos dans une base MySQL/PHP
    Par Meewix dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 22/02/2008, 20h13
  3. [MySQL] Comment insérer 6 lignes en une fois dans une base mysql avec du PHP ?
    Par Alexandrebox dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 10/02/2008, 14h39
  4. [MySQL] copier une page html après nettoyage dans une base mysql en php
    Par araoudiou dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 21/05/2007, 21h49
  5. Stocker du Php dans une base Mysql
    Par tibrus dans le forum Requêtes
    Réponses: 5
    Dernier message: 01/09/2005, 22h03

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