Advertisement
Guest User

Untitled

a guest
Apr 20th, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.96 KB | None | 0 0
  1. <!--En haut de la page web (avant le doctype), créez et valorisez les constantes PHP
  2. suivantes :
  3. - bdd_hote : adresse IP du serveur de base de données ;margin
  4. - bdd_port : port par défaut de MySQL (3306) ;
  5. - bdd_nom : nom de la base de données ;
  6. - bdd_util : utilisateur autorisé à se connecter à la base de données ;
  7. - bdd_mdp : mot de passe de l'utilisateur.-->
  8. <?php
  9. define(bdd_hote, "localhost");
  10. define(bdd_port, 3306);
  11. define(bdd_nom, "sites");
  12. define(bdd_util, "root");
  13. define(bdd_mdp, "sio");
  14. ?>
  15. <!DOCTYPE html>
  16. <!--
  17. To change this license header, choose License Headers in Project Properties.
  18. To change this template file, choose Tools | Templates
  19. and open the template in the editor.
  20. -->
  21. <html>
  22. <head>
  23. <meta charset="UTF-8">
  24. <title></title>
  25. </head>
  26. <body>
  27. <form action="index.php" method="post">
  28. <!--A l'intérieur du formulaire, créez, dans un paragraphe,
  29. un champ texte nommé chp_n précédé du texte « Nom : ».-->
  30. <p>
  31. Nom : <input type="text" name="chp_n"/>
  32. </p>
  33.  
  34. <!--A la suite du champ texte chp_n, créez (toujours dans
  35. le formulaire) dans un nouveau paragraphe un autre champ
  36. texte nommé chp_a, précédé du texte « Adresse : ».-->
  37. <p>
  38. Adresse : <input type="text" name="chp_a"/>
  39. </p>
  40.  
  41. <!--Toujours dans le formulaire, créez dans un paragraphe,
  42. après les deux champs texte, un bouton d'envoi nommé btn_envoi
  43. avec comme intitulé « Enregistrer ».-->
  44. <p>
  45. <input type="submit" value="Enregistrer" name="btn_envoi"/>
  46. </p>
  47. </form>
  48. <?php
  49. //Dans le corps de la page web, après le formulaire, créez le DSN
  50. //de connexion à la base de données dans la variable $cnx_dsn.
  51. $cnx_dsn = 'mysql:host='.bdd_hote.';dbname='.bdd_nom.';port='.bdd_port.';charset=utf8';
  52.  
  53. //Grâce aux instructions try et catch, vérifiez si la connexion à la base de
  54. //données s'est effectuée correctement. Si ce n'est pas le cas, affichez le message
  55. //généré par la méthode getMessage() de l'objet PDOException créé.
  56. try {
  57.  
  58. //Créez ensuite un objet PDO pour se connecter à la base de données et
  59. //stockez le dans la variable $cnx_bdd.
  60. $cnx_bdd = new PDO($cnx_dsn, bdd_util, bdd_mdp);
  61. } catch (Exception $e) {
  62. echo 'Connexion échouée '.$e->getMessage();
  63.  
  64. //Créez une condition vérifiant l'existence de l'objet PDO créé à l'étape 13.
  65. } if($cnx_bdd) {
  66.  
  67. //Créez une condition permettant de vérifier si la page a été appelée par l'envoi du
  68. //formulaire (traduction : vérifiez qu'il existe bien une variable envoyée par la
  69. //méthode d'envoi du formulaire...).
  70. if(isset($_POST['btn_envoi'])){
  71.  
  72. //Récupérez dans les variables $nom et $adresse les deux valeurs saisies dans les
  73. //champs texte.
  74. $nom = $_POST['chp_n'];
  75. $adresse = $_POST['chp_a'];
  76.  
  77. //Vérifiez que les deux champs texte ne soient pas vides. Si c'est le cas, indiquez à
  78. //l'utilisateur qu'il doit remplir tous les champs.
  79. if(empty($nom || $adresse)){
  80. echo 'Tous les champs doit être rempli !';
  81. //Si les deux champs ont été remplis, créez dans la variable $req_i la requête
  82. //permettant d’insérer dans la base de données les données saisies dans le
  83. //formulaire.
  84. }else{
  85. $req_i = 'INSERT INTO site(NomS, AdresseS )'
  86. .'VALUES("'.$nom.'","'.$adresse.'");';
  87. //Exécutez la requête stockée dans la variable $req_i et récupérez le
  88. //résultat de cette requête dans la variable $res_i.
  89. $res_i = $cnx_bdd -> exec($req_i);
  90. }
  91. //Si la requête s'est bien exécutée, affichez « Enregistrement effectué ! », sinon,
  92. //affichez « Erreur d'enregistrement ! ».
  93. if($res_i !== 0){
  94. echo "<p>Enregistrement éffectué !</p>";
  95. }
  96. else
  97. {
  98. echo "<p>Erreur d'enregistrement</p>";
  99. }
  100.  
  101.  
  102. }
  103. //Créez dans la variable $req_a la requête récupérant la liste des sites Internet
  104. //stockés dans la base, par ordre alphabétique.
  105. $req_a = 'SELECT NomS, AdresseS
  106. FROM site
  107. ORDER BY NomS ASC;';
  108.  
  109. //Exécutez la requête stockée dans la variable $req_a et stockez l'objet
  110. //PDOStatement renvoyé dans la variable $res_a.
  111. $res_a = $cnx_bdd -> query($req_a);
  112.  
  113. //Écrivez le code PHP envoyant dans la page web la balise débutant une liste non
  114. //numérotée.
  115. echo '<ul>';
  116.  
  117. //Récupérez tous les résultats de la requête dans la variable $tab_res.
  118. $tab_res = $res_a ->fetchAll();
  119.  
  120. //Parcourez tous les résultats de la requête, et pour chaque résultat, affichez dans
  121. //un élément de liste le nom du site Internet, qui sera un lien vers ce site.
  122.  
  123. foreach($tab_res as $idx)
  124. {
  125. echo'<li><a href= "'.$idx[1].'">'.$idx[0].'</a></li>';
  126. }
  127. echo '</ul>';
  128. }
  129. ?>
  130. </body>
  131. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement