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 dans un fichier HTLM [PDO]


Sujet :

PHP & Base de données

  1. #1
    Membre Expert Avatar de Gado2600
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Mai 2013
    Messages
    903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Office VBA

    Informations forums :
    Inscription : Mai 2013
    Messages : 903
    Par défaut PDO dans un fichier HTLM
    Bonjour,

    Je débute la programmation Web et je rencontre la difficulté suivante :
    J'ai commencé à faire des fichiers .php en usant d'une connexion PDO sur MySQL.
    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
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <title>Mon Formulaire</title>
        </head>
        <body>
            <?php
    		try
    		{
    			$bdd = new PDO('mysql:host=localhost;dbname=madbname;charset=utf8', 'root', '');
    		}
    		catch (Exception $e)
    		{
    			die('Erreur :' . $e->getmessage());
    		}
    		?>
    		<p>
    		Salut
    		</p>
    		<?php
    		// Récupération des données de la table t_Players
    		$reponse = $bdd->query('SELECT * FROM T_Users');
    		//$donnees = $reponse->fetch();
    		while ($donnees = $reponse->fetch())
    		{
    		?>
    			<p>
    			<strong>ID</strong> : <?php echo $donnees['pl_ID']; ?><br/>
    			Prénom : <?php echo $donnees['pl_Prenom']; ?><br/>
    			Nom : <?php echo $donnees['pl_Nom']; ?><br/>
    			</p>
    		<?php
    		}
     
    		$reponse->closecursor(); // Termine le traitement de la requête
     
    		?>
        </body>
    </html>
    Si le fichier a pour extension .php, cela fonctionne parfaitement mais si je le passe en extension .html, il me ressort les lignes de codes à l'écran, à partir de "getmessage" (jusqu'à la fin).
    Comment pourrais-je passer le fichier au format .HTML et conserver ce genre de code ?
    Je pensais que l'extension du fichier ne changerait rien, les balises faisaient le travail mais j'ai sûrement mal compris.

    Merci d'avance.

    Cordialement,

  2. #2
    Membre éprouvé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 718
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 718
    Par défaut
    Bonjour,
    Dès qu'il y a du PHP, le fichier doit avoir l'extension .php. Par souci d'homogénéité, il est préférable de nommer tous les fichiers avec l'extension .php.

  3. #3
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 573
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 573
    Par défaut
    dans le fichier avec l'extension .html, vous souhaitez que le code PHP soit exécuté ou qu'il s'affiche dans le navigateur ?

  4. #4
    Membre Expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 797
    Par défaut
    Bonsoir

    Peux-tu expliquer pourquoi tu "veux" que l'extension soit .html et pas .php ? Il y a une raison ?

    Je pensais que l'extension du fichier ne changerait rien
    Mais pas du tout. Si je renomme mon image "moi.jpg" en "moi.txt" que penses-tu qu'il va se passer ? C'est exactement la même chose ici : l'extension est importante. Ton serveur web sait ce qu'il doit faire selon l'extension du fichier.

  5. #5
    Membre Expert Avatar de Gado2600
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Mai 2013
    Messages
    903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Office VBA

    Informations forums :
    Inscription : Mai 2013
    Messages : 903
    Par défaut
    Bonjour à vous 3 et merci pour vos réponses.

    Citation Envoyé par moimp Voir le message
    Bonjour,
    Dès qu'il y a du PHP, le fichier doit avoir l'extension .php. Par souci d'homogénéité, il est préférable de nommer tous les fichiers avec l'extension .php.
    Citation Envoyé par cavo789 Voir le message
    Mais pas du tout. Si je renomme mon image "moi.jpg" en "moi.txt" que penses-tu qu'il va se passer ? C'est exactement la même chose ici : l'extension est importante. Ton serveur web sait ce qu'il doit faire selon l'extension du fichier.
    J'avais compris que le fait d'avoir un fichier .PHP nécessitait d'avoir la balise <DOCTYPE HTML> (je n'ai plus le libellé exact en tête) et que les balises <?php ... ?> permettaient de lancer le php dedans.
    Du coup, avec votre réponse, je me questionne sur l'utilité de ces balises finalement. Dans quel cas est-il préférable d'avoir un fichier .html ou .php ?
    J'avais lu que l'avantage était d'avoir la bibliothèque html à disposition si l'extension était du même nom.


    Citation Envoyé par mathieu Voir le message
    dans le fichier avec l'extension .html, vous souhaitez que le code PHP soit exécuté ou qu'il s'affiche dans le navigateur ?
    J'aimerais qu'il s'exécute et qu'il affiche le résultat sur le navigateur.
    En fait, je dois alimenter une liste déroulante.

    Par ailleurs, comment puis-je sécuriser les informations de connexion à ma base de données mySQL ?
    Via internet, le codesource ne permettra jamais à l'utilisateur de les voir ?

    Je débute vraiment sur le sujet, en suivant des tutoriels donc je suis preneur de toute information

    Encore merci.

  6. #6
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 573
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 573
    Par défaut
    Citation Envoyé par Gado2600 Voir le message
    les balises <?php ... ?> permettaient de lancer le php dedans
    oui c'est exact, tous ce qui est en dehors de ces balises est considéré comme de l'HTML

    Citation Envoyé par Gado2600 Voir le message
    le fait d'avoir un fichier .PHP nécessitait d'avoir la balise <DOCTYPE HTML>
    cet élément "doctype" n'est pas lié au PHP, il s'agit de code HTML qui sera envoyé au navigateur. donc la présence ou l'absence changera quelque chose au niveau de l'affichage dans le navigateur mais pas à l'exécution du PHP

    Citation Envoyé par Gado2600 Voir le message
    Dans quel cas est-il préférable d'avoir un fichier .html ou .php ?
    il s'agit d'un réglage du serveur HTTP. si le fichier demandé est ".html", le contenu est directement envoyé dans la réponse HTTP.
    par contre si le fichier est ".php", le serveur fait un appel à l'interpréteur PHP et c'est le résultat du calcul qui est envoyé dans la réponse.

    Citation Envoyé par Gado2600 Voir le message
    Par ailleurs, comment puis-je sécuriser les informations de connexion à ma base de données mySQL ?
    Via internet, le codesource ne permettra jamais à l'utilisateur de les voir ?
    puisque le contenu du fichier PHP n'est pas envoyé directement, mettre ces informations dans un fichier .php est la 1re étape pour sécuriser cela.
    ensuite il y aura d'autres choses à vérifier au niveau de la sécurité, par exemple quand des données d'entrée sont fournies par l'utilisateur, il faudra vérifier que ces données sont correctes et qu'elles ne permettent pas à un utilisateur de faire des actions mal intentionnées.

  7. #7
    Membre Expert Avatar de Gado2600
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Mai 2013
    Messages
    903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Office VBA

    Informations forums :
    Inscription : Mai 2013
    Messages : 903
    Par défaut
    Bonjour Mathieu,

    Citation Envoyé par mathieu Voir le message
    il s'agit d'un réglage du serveur HTTP. si le fichier demandé est ".html", le contenu est directement envoyé dans la réponse HTTP.
    par contre si le fichier est ".php", le serveur fait un appel à l'interpréteur PHP et c'est le résultat du calcul qui est envoyé dans la réponse.
    C'est intéressant ce que tu m'écris car je ne l'avais peut être pas compris exactement comme cela à la base.
    Donc je dois comprendre que le HTML renvoi uniquement du visuel alors que le PHP renvoi seulement du résultat ?


    Citation Envoyé par mathieu Voir le message
    puisque le contenu du fichier PHP n'est pas envoyé directement, mettre ces informations dans un fichier .php est la 1re étape pour sécuriser cela.
    ensuite il y aura d'autres choses à vérifier au niveau de la sécurité, par exemple quand des données d'entrée sont fournies par l'utilisateur, il faudra vérifier que ces données sont correctes et qu'elles ne permettent pas à un utilisateur de faire des actions mal intentionnées.
    Donc, si je comprends bien, je n'ai pas trop de soucis à me faire sur les informations "host", "base de données mysql", "login", "mdp", sur le "NEW PDO" ?
    L'utilisateur ne pourra jamais les voir, si j'utilise un fichier .php ?

    Cordialement,

  8. #8
    Membre Expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 797
    Par défaut
    Bonjour Gado2600

    Tes questions démontrent que tu débutes vraiment et du coup, un forum n'est peut-être pas le lieu adéquat AMHA. Il faudrait d'abord démarrer avec des tutoriels.

    En VBA tu peux écrire un texte tout bête ou lire un fichier, faire un traitement, ... puis écrire un texte qui résulte d'un traitement.

    PHP c'est la même chose : dans ton PHP tu peux, bêtement, afficher un texte et ce texte peut être du code HTML "brut" ou, au contraire, faire un traitement lourd et en afficher le résultat.

    PHP renvoie donc quelque chose (ou pas (exemple: il envoie un email; il n'y a pas d'output)).

    Pour ta seconde question, si host, user, ... se trouve dans un code PHP; non, en toute logique, l'utilisateur ne les verra pas. Toutefois, la bonne façon de travailler n'est pas de "hardcoder" les informations dans ton script mais de faire un appel à un autre script (exemple config.php) dans lequel tu aurais créé des constantes où tu encodes tes valeurs une fois pour toute. Et dans ton premier script php, tu ferais un include "config.php" pour charger ces constantes. Si par malheur, ton premier script viendrait à s'afficher à l'écran (ce risque est extrêmement réduit), ton utilisateur ne verra donc pas tes constantes.

  9. #9
    Membre Expert Avatar de Gado2600
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Mai 2013
    Messages
    903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Office VBA

    Informations forums :
    Inscription : Mai 2013
    Messages : 903
    Par défaut
    Bonjour Cavo,

    Oui, je débute vraiment dans ce domaine de programmation. Et, j'ai commencé dimanche avec openclassroom et leurs tutoriels pour entamer le sujet, en complétant un peu via d'autres tutos/forums quand je bloquais vraiment.
    Là, pour le coup, je bloquais trop.

    En fait, je travaille sur du VBA tous les jours depuis quelques années donc le changement est un peu particulier aha

    J'avais essayé hier, de faire mettre dans une fonction js, mes informations de connexion, dans ce style.
    Fichier JS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function funcMDP()
    {
    	return 'monMotDePasse'
    }
    Fichier PHP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $bdd = new PDO('mysql:host=hostname;dbname=madbName;charset=utf8', 'monLog', funcMDP());
    Mais cela n'a pas rencontré de succès en passant par la fonction.
    C'est fonctionnel si je renseigne le mdp en brut dedans.

    Pourrais-tu me montrer comment faire un fichier config.php et le lien qui serait fait pour mon exemple, stp ?
    Dsl mais j'ai généralement besoin d'exemples concrets pour comprendre le fonctionnement.

    Cordialement,

  10. #10
    Membre Expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 797
    Par défaut
    Désolé mais je vais me répéter et n'y voit pas de méchanceté : cherche des tutos. Le gap est bien trop important.

    Ici tu tentes de faire un appel à une fonction Javascript (=sur le client) en PHP (qui s'exécute sur le serveur); c'est impossible.

    Note: je fais du VBA depuis plus de vingt ans et davantage; du coup, sache qu'il est possible d'être expert dans les deux domaines

  11. #11
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 573
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 573
    Par défaut
    Citation Envoyé par Gado2600 Voir le message
    Mais cela n'a pas rencontré de succès en passant par la fonction.
    l'exemple que vous avez montré aurait du fonctionner, affichez le retour de la fonction pour vérifier que vous ayez bien le mot de passe en retour.

    sinon il est possible de séparer les codes d'accès dans un autre fichier comme cela par exemple :
    fichier config.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    const BDD_SERVEUR = "localhost";
    const BDD_UTILISATEUR = "root";
    const BDD_MOTDEPASSE = "0000";
    const BDD_NOMBASE = "essai1";
    fichier bdd.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
     
    require_once "config.php";
     
    function bdd_connexion()
    {
        $pdo = new PDO("mysql:host=" . BDD_SERVEUR . ";dbname=" . BDD_NOMBASE . ";charset=utf8", BDD_UTILISATEUR, BDD_MOTDEPASSE);
     
        return $pdo;
     
    }
    c'est juste un exemple pour commencer. par la suite, la connexion peut être gérée par une classe qui elle même sera appelée par la classe qui va gérer les joueurs sous forme d'objet.
    mais cela fait partie de l'organisation du code quand on fait de la programmation orientée objet, peut-être que vous n'êtes pas encore à cette étape.

  12. #12
    Membre Expert Avatar de Gado2600
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Mai 2013
    Messages
    903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Office VBA

    Informations forums :
    Inscription : Mai 2013
    Messages : 903
    Par défaut
    Mathieu,

    Oui, je comprends bien l'intérêt des tutos. Je harcèle même mes collègues pour qu'ils prennent les docs VBA quand ils coincent sur un problème.
    Et pour être transparent, je viens de faire une grosse partie de ceux présents sur openclassroom, en essayant de les pratiquer etc.
    Du coup, après plusieurs heures, je commence à faire la partie concrète de ce que je souhaite réaliser et, j'ai encore beaucoup de choses à comprendre au niveau structurel. J'en suis conscient.

    Cavo,

    Merci pour ces exemples.
    Je viens de les mettre en pratique et cela fonctionne dans l'ensemble.

    Je pense avoir pas mal d'éléments à mettre en pratique et je vois un résultat sur ce qui me bloquait pas mal grâce à vos informations.
    Je vais pouvoir continuer mes recherches un peu plus en profondeur maintenant.

    Encore merci à vous !

    Cordialement,

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

Discussions similaires

  1. Lire un attribut dans un fichier XML en C++
    Par ti.k-nar dans le forum XML
    Réponses: 2
    Dernier message: 14/10/2002, 15h22
  2. Balises HTML dans un fichier XML
    Par Bastet79 dans le forum XML/XSL et SOAP
    Réponses: 12
    Dernier message: 04/09/2002, 15h29
  3. Sauvegarder une surface dans un fichier
    Par Freakazoid dans le forum DirectX
    Réponses: 6
    Dernier message: 18/08/2002, 15h23
  4. séparateurs dans un fichier
    Par manuhard dans le forum Langage
    Réponses: 5
    Dernier message: 13/08/2002, 11h30
  5. enregistrer dans un fichier avec une appli mdi
    Par ferrari dans le forum C++Builder
    Réponses: 4
    Dernier message: 05/05/2002, 15h17

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