successful
Informations sur le tutoriel
Auteur : luc904
Licence : Copie non autorisée
Catégorie : PHP
Créé le : 16/03/2011 à 13h41
Mis à jour le : 21/06/2011 à 19h57
Vu : 66024 fois
Avancement : 100 %
1 fans
Dernier sondage
(voir)

(6 votes)
Oui
sondage sondage sondage 16.67 %
Non
sondage sondage sondage 83.33 %
Soutenir le Geek Café
la boutique du geek cafe
PHP
Système de dédicace

Système de dédicace

Nous allons apprendre un créer un simple système de dédicace :


Système de dédicace

Donc on va avoir besoin de: Php, html, une base de donnée et aussi un cerveau :) .
Le système se comportera comme ceci :

  • L'index pou voir les dedicaces index.php
  • Une page pour la connexion a la Base de données + les identifiants de connexion à la page admin.php config.php
  • Une page avec le formulaire (pseudo, message ...) envoi.php
  • Une page d'administration (voir, supprimer les commentaires abusifs) admin.php
Avant de commencer, on va créer notre petite table sql :
Dans cette table (dedicace) on aura:
  • L'id du message
  • Le pseudo de la personne qui a posté
  • Le message de la personne qui a posté
  • L'ip de la personne qui a posté
  • La date à laquelle la personne a posté
Voici le code SQL a mettre dans votre base de données :

Code : php
  1. CREATE TABLE `dedicace` (
  2. `id` int(11) NOT NULL auto_increment,
  3. `pseudo` varchar(40) NOT NULL,
  4. `message` text NOT NULL,
  5. `ip` text NOT NULL,
  6. `date` text NOT NULL,
  7. PRIMARY KEY (`id`)
  8. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;

I La page envoi.php


1) Le formulaire en html


Formulaire tout basique. On va juste mettre un input "Pseudo", et un champs de texte pour le "Message" et un bouton pour envoyer le tout.

Code : php
  1. <form method="post" action="envoi.php">
  2. <b>Pseudo : </b><input type="text" name="pseudo_poster" /><br/>
  3. <b>Votre Message : </b><textarea name="message_poster"></textarea><br/>
  4. <input type="submit" name="envoyer_dedi" value="Envoyer" />
  5. </form>

Voilà rien de compliqué sur le formulaire; les noms des champs que l'on va récupérer dans le script en php sont :
"pseudo_poster" qui correspond au pseudo posté
"message_poster" qui correspond au message posté
"envoyer_dedi" pour vérifier si le bouton du formulaire a était activé

2) Le script en php


Le script php. On va déjà inclure la page config.php pour se connecter a notre base de données et ensuite faire les verifications du formulaire en html : si il a bien été remplis, si le nombre de caractères maximum ou minimum dans le pseudo et le message est respecté. Si ce n'est pas le cas on affichera un message d'erreur.

En premier lieu, on va inclure la page config.php tout simple en php c'est la fonction include();
Code : php
  1. <?php
  2. include('config.php');
  3. ?>


Et maintenant on va commencer les verifications : si le formulaire a bien était poster, ensuite verifier si le champs de pseudo est bien remplis et que il ne soit pas trop long ou trop court, idem pour le message, et ensuite envoyer le tout dans la base de donnée .

Je ne fait pas trop d'explication ici, je vous est mis à chaque ligne de code des commentaires : donc voici le script pour la page envoi.php

Code : php
  1. <?php
  2. include('config.php');
  3.  
  4. /*on verifie si le formulairz a était envoyer */
  5. if(isset($_POST['envoyer_dedi'])){
  6. if(isset($_POST['pseudo_poster']) && $_POST['pseudo_poster'] != null){ //si le pseudo est diffrent de "Vide" (que il y a quelque chose a l'interieur ) on continue la requete
  7. if(isset($_POST['message_poster']) && $_POST['message_poster'] != null){ //si le message est diffrent de "Vide" (que il y a quelque chose a l'interieur ) on continue la requete
  8.  
  9. /*variables de verification+envoi a la base de donnée*/
  10. ##pour la bd###
  11. $pseudo_post = mysql_real_escape_string($_POST['pseudo_poster']);
  12. $message_post = mysql_real_escape_string($_POST['message_poster']);
  13. $ip = $_SERVER['REMOTE_ADDR'];
  14. $date = 'le : '.date('d/m/Y').' à '.date('Hhi:s').'';
  15.  
  16. ##pour les verifs###
  17. $nombre_limiter_pseudo_mini = '3'; //nombre minimum de caractere pour le pseudo
  18. $nombre_limiter_pseudo_maxi = '13'; //nombre maximum de caractere pour le pseudo
  19.  
  20. $nombre_limiter_message_mini = '5'; //nombre minimum de caractere pour le message
  21. $nombre_limiter_message_maxi = '60'; //nombre maximum de caractere pour le message
  22.  
  23. if(strlen($pseudo_post) > $nombre_limiter_pseudo_mini){ //verification si le pseudo est pas court
  24.  
  25. if(strlen($pseudo_post) < $nombre_limiter_pseudo_maxi){ //verification si le pseudo est pas long
  26.  
  27. if(strlen($message_post) > $nombre_limiter_message_mini){ //verification si le message est pas court
  28.  
  29. if(strlen($message_post) < $nombre_limiter_message_maxi){ //verification si le message est pas long
  30.  
  31. echo '<div id="bon">Votre dédicasse a bien était envoyer.</div>';
  32. ########Tout est bon, on envoi le tout dans la base de donnée#######
  33. mysql_query("INSERT INTO dedicace(pseudo, message, ip, date) VALUES('".$pseudo_post."', '".$message_post."', '".$ip."', '".$date."')")or die(mysql_error("Impossible d'envoyer les données dans la base de donnée!"));
  34.  
  35. }else{ //le message est trop long on affiche l'erreur
  36. echo '<div id="erreur">Votre message est trop long</div>';
  37. }
  38.  
  39. }else{ //le message est trop court on affiche l'erreur
  40. echo '<div id="erreur">Votre message est trop court</div>';
  41. }
  42.  
  43. }else{ //le pseudo est trop long on affiche l'erreur
  44. echo '<div id="erreur">Votre pseudo est trop long</div>';
  45. }
  46.  
  47. }else{ //le message est trop court on affiche l'erreur
  48. echo '<div id="erreur">Votre pseudo est trop court</div>';
  49. }
  50.  
  51. }else{ //le message est vide on affiche l'erreur
  52. echo '<div id="erreur">Vous avez oublier votre message!</div>';
  53. }
  54.  
  55. }else{ //le pseudo est vide on affiche l'erreur
  56. echo '<div id="erreur">Veuillez indiquer un pseudo</div>';
  57. }
  58. }
  59. ?>



II]La page config.php



Cette page est appelée dans toute les pages car elle contient les identifiants de connexion a la base de données + le mot de passe et le pseudo d'administration pour voir les commentaires!

Code : php
  1. <?php
  2. /*Variables pour la connexion a la base de donnée */
  3. $host = "localhost";
  4. $username_sql = "root";
  5. $password_sql = "050990";
  6. $nom_bd_sql = "script";
  7.  
  8. mysql_connect($host, $username_sql, $password_sql) or die('Impossible de se connecter au serveur '.$host.'. veuillez verifier votre configuration');
  9. mysql_select_db($nom_bd_sql) or die('Impossible de se connecter a la base de donnée '.$nom_bd_sql.'');
  10.  
  11. /*Variables pour la connexion a l'interface admin pour les dedicace*/
  12. $pseudo_admin = 'Luc904';
  13. $mot_de_passe_admin = 'test123';
  14. ?>


III]La page index.php



Page index, sur cette page nous allons mettre les dédicaces postées par les visiteurs.
On se limitera ici aux 10 dernières dédicaces envoyées dans la base de données et on mettra le tout dans la balise marquee:


Code : xml
  1. <marquee behavior="scroll" scrollamount="5" direction="left" width="800">ici on mettre la boucle while du script php <img src="image/smile.png" alt=":)"/></marquee>


Pour le script php on va inclure a nouveau la page config.php pour se connecter a la base de donnée aller chercher les 10 derniere dedicaces enregistrer et les afficher le pseudo la date heur e le message tout sa dans une boucle while et petite verification si il existe une dedicace .. aller go :

Code : php
  1. <?php
  2. include('config.php');
  3. /*on selectionne les derniere 10derniere dedicase envoyer dans la bd e ton les li*/
  4. $retour_dedi = mysql_query('SELECT * FROM dedicace ORDER BY id DESC limit 0,10')or die(mysql_error("Impossible de selectionner les données dans la tables <b>'dedicace'</b> "));
  5.  
  6. /* on verifie si une dedicace existe */
  7. $donnes_dedi_compte = mysql_num_rows($retour_dedi);
  8. if($donnes_dedi_compte > 0){ /* si une dedicace existe alors on continue le script */
  9. /*petite boucle while pour afficher les 10 derniere dedi*/
  10. while($donnes_dedi = mysql_fetch_array($retour_dedi)){
  11.  
  12. /*variables pour els dedicace+secu */
  13. $pseudo_dedicace = htmlspecialchars($donnes_dedi['pseudo']);
  14. $message_dedicace = htmlspecialchars($donnes_dedi['message']);
  15. $date_dedicace = $donnes_dedi['date'];
  16. ?>
  17. Par <b><u><?php echo $pseudo_dedicace; ?></b></u> <i><?php echo $date_dedicace; ?></i> - <b><u>Message:</u></b> <?php echo $message_dedicace; ?> <b>.::.</b>&nbsp;&nbsp;
  18. <?php
  19. }
  20. }else{ /*aucune dedicace existe on affiche un petit message <img src="image/smile.png" alt=":)"/> */
  21. ?>
  22. Il y a actuellement aucune dedicace disponnible!
  23. <?php
  24. }
  25. ?>



IV]La page admin.php



Et pour terminer on va attaquer la page admin.php donc elle est reserver a l'administration donc on va demmarrer la session donc formulaire de connexion les identifiants de conneixon sont dans config.php on va re inclure cette page car on va en avoir besoin pour recuprer les donnees des dedicace on va les afficher "le pseudo, la date, le message, l'ip" et on pourra aussi le supprimer c'est un systeme tres basic!

1) Le formulaire de connexion en html



Code : html4strict
  1. <!--Partit reserver a l'administration.-->
  2. <form method="post" action="admin.php">
  3. <b>Pseudo :</b><input type="text" name="pseudo_adm" /><br/>
  4. <b>Mot de passe :</b><input type="password" name="mdp_adm" /><br/>
  5. <input type="submit" name="connexion" value="Se connecter"/>
  6. </form>


rien de compliquer on attaque le script! je vous est encore mit des commentaires dans le script php pour mieux comprendre on va verifier d'abord si la session existe etc..

2) Le SCRIPT en php



Code : php
  1. <?php
  2. include('config.php');
  3.  
  4. /*si la session connecter existe alors on affiche les pages*/
  5. if($_SESSION['connecter'] == true){
  6. if(isset($_GET['page'])){
  7.  
  8. if($_GET['page'] == 'supprimer'){
  9. if(isset($_GET['id'])){
  10. if($_GET['id']){
  11. mysql_query('DELETE FROM dedicace WHERE id='.mysql_real_escape_string($_GET['id']).'');
  12. echo '<h2>Dedicasse n°'.$_GET['id'].' supprimer</h2><br/>';
  13. }else{
  14. echo 'Id inconnu';
  15. }
  16. }
  17. }
  18. }
  19. ?>
  20. Voici la liste des dedicace poster:
  21. <table border="1" width="900">
  22. <tr>
  23. <th>Pseudo</th>
  24. <th>Message</th>
  25. <th>Ip</th>
  26. <th>Date</th>
  27. <th>Supprimer</th>
  28. </tr>
  29. <?php
  30. /*on selectionne les donner des dedicace dans l'ordre des id*/
  31. $retour_dedi_admin = mysql_query('SELECT * FROM dedicace ORDER BY id')or die(mysql_error("Impossible de selectionner les données dans la tables <b>'dedicace'</b> "));
  32. /*petite boucle pour tt afficher*/
  33. while($donnes_dedi_admin = mysql_fetch_array($retour_dedi_admin)){
  34.  
  35. /*variables pour les dedicace+secu */
  36. $pseudo_dedicace = htmlspecialchars($donnes_dedi_admin['pseudo']);
  37. $message_dedicace = htmlspecialchars($donnes_dedi_admin['message']);
  38. $date_dedicace = $donnes_dedi_admin['date'];
  39. $ip_dedicace = $donnes_dedi_admin['ip'];
  40. $id_dedicace = $donnes_dedi_admin['id'];
  41. ?>
  42. <tr>
  43. <td><?php echo $pseudo_dedicace; ?></td>
  44. <td><?php echo $message_dedicace; ?></td>
  45. <td><?php echo $ip_dedicace; ?></td>
  46. <td><?php echo $date_dedicace; ?></td>
  47. <td><a href="admin.php?page=supprimer&id=<?php echo $id_dedicace; ?>">Supprimer</a></td>
  48. </tr>
  49. <?php
  50. }
  51. ?>
  52. </table>
  53. <?php
  54. /*la session existe pas on lui refuse l'accée au page on affiche le formulaire de connexion */
  55. }else{
  56.  
  57.  
  58. if(isset($_POST['connexion'])){
  59. if(isset($_POST['pseudo_adm']) && $_POST['pseudo_adm'] != null){ /*si le pseudo est different de null (ou vide) alors on continue le script*/
  60. if(isset($_POST['mdp_adm']) && $_POST['mdp_adm'] != null){ /*si le mot de passe est different de null (ou vide) alors on continue le script*/
  61.  
  62. /*variables de pseudo poster */
  63. $pseudo_poster = $_POST['pseudo_adm'];
  64. $mdp_poster = $_POST['mdp_adm'];
  65.  
  66. if($pseudo_poster == $pseudo_admin){ /*si le pseudo poster est le même que le pseudo dans config.php alors on continue le script*/
  67. if($mdp_poster == $mot_de_passe_admin){ /*si le mot de passe poster est le même que le mot de passe dans config.php alors on continue le script*/
  68.  
  69. /*tout est bon, on connecte le membre <img src="image/smile.png" alt=":)"/> */
  70. $_SESSION['connecter'] = true;
  71. $_SESSION['pseudo'] = $pseudo_admin;
  72. ?>
  73. <script type="text/javascript" language="javascript">
  74. document.location.href="admin.php";
  75. </script>
  76. <?php }else{ /*le mot de passe renseigner est inccorect */
  77. echo '<div id="erreur">Mot de passe incorect</div>';
  78. }
  79. }else{ /*le pseudo renseigner est inccorect */
  80. echo '<div id="erreur">Pseudo inexistant</div>';
  81. }
  82. }else{ /*le mot de passe est vide */
  83. echo '<div id="erreur">Veuillez indiquer votre mot de passe</div>';
  84. }
  85. }else{ /*le pseudo est vide */
  86. echo '<div id="erreur">Veuillez indiquer votre pseudo</div>';
  87. }
  88. }
  89. ?>
  90. Partit reserver a l'administration.
  91. <form method="post" action="admin.php">
  92. <b>Pseudo :</b><input type="text" name="pseudo_adm" /><br/>
  93. <b>Mot de passe :</b><input type="password" name="mdp_adm" /><br/>
  94. <input type="submit" name="connexion" value="Se connecter"/>
  95. </form>
  96. <?php
  97. }
  98. ?>


et voilà ce script est vraiment basique. A vous de l’améliorer !

Bonne journée.


Publicité
Commentaires
Ajouter un commentaire rapide (Plus d'options)






Page : 1
Pseudo Commentaires
posté le 04/01/2012 à 21h12
arrive pas a mettre sur mon site internet
posté le 07/01/2013 à 21h40
Qu'est-ce un système de dédicace ? Un livre d'or ?
Corrige SVP les fautes du tutoriel.
Faudrait aussi moderniser le script : http://blog.pascal-martin.fr/post/php-arretez-utiliser-fonctions...
image
On abrège officiellement Le Geek Café : GC GC-Galaxy
C'est un pingouin, il lève une jambe, il trouve sa drôle, alors il lève la 2eme, et il tombe.
40 %Geek
Linux : vous perdez du temps. Mac : vous perdez de l'argent. Windows : vous perdez du temps ET de l'argent
90% des adolescents aujourd'hui mourrait si Facebook serai complètement détruit. Si vous êtes l'un du 10% qui rirait, copie-collez ceci dans votre signature.

Antispam !
image

Pseudo Commentaires
Page : 1