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 :

Positionnement de l'appel $bdd et sécurité [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 33
    Par défaut Positionnement de l'appel $bdd et sécurité
    Bonsoir,

    Je suis en train de réaliser mon site , j'ai fait une première version en HTML / CSS et maintenant je suis en train d'intégrer le php afin d'aller chercher les informations dans une base de données.

    Tout d'abord j'ai une première question , je voudrais savoir a quel endroit je dois positionner ce morceau de code :

    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
     
    	<?php
    // Connexion à la base de données
    try
    {
    	$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
    }
    catch(Exception $e)
    {
            die('Erreur : '.$e->getMessage());
    }
    ?>
    			<?php
    $reponse = $bdd->query('SELECT * FROM cine WHERE id=\'1\'');
    while ($donnees = $reponse->fetch())
    {
    ?>
    Cela me permet dans ma page d'article d'appeler les informations de la table concernées. Ensuite j'affiche mes données à l'aide de echo .

    Pour l'instant j'ai placé ce code avant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    Et ensuite à la fin de ma page après la balise </html> j'ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    }
    $reponse->closeCursor(); // Termine le traitement de la requête
    ?>
    Je voudrais savoir si c'est une bonne chose.

    Ensuite deuxième question :

    Afin de pouvoir injecter les informations dans ma base de données , je commence a créer un espace Admin .
    Dans mon dossier Admin , il y a :
    • admin.php ( qui est la page d'accueil du panneau d'administration )
    • cine.php ( qui correspond à la page me permettant d'envoyer les informations de ma fiche film dans la base de données )
    • Dossier CSS ( contenant le design de mon espace admin )
    • Dossier Privé ( contenant un fichier .htpasswd )
    • .htaccess ( pour pouvoir sécuriser mon espace admin par un mot de passe )


    Donc j'ai bien une demande d'identification pour accéder au à la page admin.php ou cine.php .
    Par contre faut il mettre un .htaccess dans le dossier Privé pour protéger le htpasswd?
    Pareil pour le CSS ?

    Le problème pour le CSS c'est que quand je mets un .htaccess " Deny From All" et que je charge admin.php , je n'ai pas ma mise en page qui est dans le fichier css .Comment faire résoudre ce problème ?

    Voilà beaucoup de question je sais désolé
    En tout cas merci déjà d'avoir tout lu mais aussi pour vos conseils .

  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
    Ton code PHP qui introduit une boucle ne peut pas être placé avant les en-têtes HTML, sinon evidemment ces en-têtes seront repetés à chaque tour de boucle.
    La question de positionnement est simple, il faut placer le code à l'endroit ou tu veux qu'il intervienne.

    Le fichier .htaccess et .htpassword n'ont pas à être protégé : dans le configuration de Apache, ils ne peuvent pas être distribués.
    <Files ".ht*">
    Require all denied
    </Files>
    Ton id est a priori un entier, il n'a pas besoin de guillemets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $reponse = $bdd->query('SELECT * FROM cine WHERE id=1');
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 33
    Par défaut
    Merci pour cette réponse donc de mon coté les .htacccess et .htpasswd sont protégés c'est une bonne chose .

    Y a t'il un moyen de protéger mes fichiers Css pour éviter un plagias ?

    Ensuite pour ce qui est de mon code , je le place donc après l'entête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html xmlns="http://www.w3.org/1999/xhtml">
    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
    // Connexion à la base de données
    try
    {
    	$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
    }
    catch(Exception $e)
    {
            die('Erreur : '.$e->getMessage());
    }
     
     
    $reponse = $bdd->query('SELECT * FROM cine WHERE id=\'1\'');
    while ($donnees = $reponse->fetch())
    {
    ?>
    Je pense que c'est idem pour la fin du code a placer avant </html>

  4. #4
    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
    Le CSS doit être lu par le navigateur donc tu ne peux pas le protéger.

    Pour la Closecursor tu peux le mettre dés que tu n'as plus besoin de ta base de donnée (tu peux aussi ne par le mettre du tout).
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 33
    Par défaut
    D'accord donc pour le css de mon site je ne peux pas le protéger j'ai réussi juste pour celui de mon espace admin .

    Par contre j'ai une autre question concernant le changement du paramètre id suivant la page ,En faite dans ma page cine.php , j'ai une liste d'article concernant des critiques de cinéma.
    Puis j'ai une page art1.php qui comprend mon premier article. ( les données récupérer dans cette page dépendent de l'ID )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $reponse = $bdd->query('SELECT * FROM cine WHERE id=\'1\'');
    while ($donnees = $reponse->fetch())
    En faite je voudrais que dans la page cine.php , mes liens ressemble à cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    www.""""".fr/article/art1.php
    www.""""".fr/article/art2.php
    www.""""".fr/article/art3.php
    www.""""".fr/article/art4.php
    Quand le chiffre de mon article change , je souhaiterais que le paramètre id dans la ligne ci dessous évolue de la même façon ce qui me permettra d'avoir une seule page modèle art1.php qui évoluera suivant le lien sélectionner.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $reponse = $bdd->query('SELECT * FROM cine WHERE id=\'1\'');


    Merci d'avance pour vos conseils[/quote]

  6. #6
    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
    Pourquoi avoir une page par article ?
    Il te faut un page unique ; l'id est passé en argument
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    www.""""".fr/article/art.php?id=1
    et sur art.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $id = intval($_GET['id']);
    $reponse = $bdd->query('SELECT * FROM cine WHERE id=' . $id);

    Et comme je t'ai déjà dit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $reponse = $bdd->query('SELECT * FROM cine WHERE id=1');
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

Discussions similaires

  1. Positionnement d'un clip appelé avec loadMovieNUm
    Par developpeur_mehdi dans le forum Flash
    Réponses: 1
    Dernier message: 14/11/2006, 15h12
  2. Sécurité BDD, hashage des mots de passe
    Par Link3 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 12/10/2006, 18h39
  3. Sécurité BDD Access
    Par mullger dans le forum Sécurité
    Réponses: 4
    Dernier message: 08/09/2006, 16h15
  4. Affichage d'un texte en faisant appel à une BDD !
    Par aludo22 dans le forum Flash
    Réponses: 1
    Dernier message: 12/07/2006, 08h18
  5. appel de fontions d'une autre bdd
    Par claralavraie dans le forum Langage SQL
    Réponses: 4
    Dernier message: 21/12/2005, 10h41

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