Informations sur le tutoriel
Cours : Derniers tutoriels
News : Dernières news
Dernier sondage
Derniers inscrits
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
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é
Code : php
CREATE TABLE `dedicace` ( `id` int(11) NOT NULL auto_increment, `pseudo` varchar(40) NOT NULL, `message` text NOT NULL, `ip` text NOT NULL, `date` text NOT NULL, PRIMARY KEY (`id`) ) 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
<form method="post" action="envoi.php"> <b>Pseudo : </b><input type="text" name="pseudo_poster" /><br/> <b>Votre Message : </b><textarea name="message_poster"></textarea><br/> <input type="submit" name="envoyer_dedi" value="Envoyer" /> </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
<?php include('config.php'); ?>
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
<?php include('config.php'); /*on verifie si le formulairz a était envoyer */ if(isset($_POST['envoyer_dedi'])){ 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 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 /*variables de verification+envoi a la base de donnée*/ ##pour la bd### $pseudo_post = mysql_real_escape_string($_POST['pseudo_poster']); $message_post = mysql_real_escape_string($_POST['message_poster']); $ip = $_SERVER['REMOTE_ADDR']; $date = 'le : '.date('d/m/Y').' à '.date('Hhi:s').''; ##pour les verifs### $nombre_limiter_pseudo_mini = '3'; //nombre minimum de caractere pour le pseudo $nombre_limiter_pseudo_maxi = '13'; //nombre maximum de caractere pour le pseudo $nombre_limiter_message_mini = '5'; //nombre minimum de caractere pour le message $nombre_limiter_message_maxi = '60'; //nombre maximum de caractere pour le message if(strlen($pseudo_post) > $nombre_limiter_pseudo_mini){ //verification si le pseudo est pas court if(strlen($pseudo_post) < $nombre_limiter_pseudo_maxi){ //verification si le pseudo est pas long if(strlen($message_post) > $nombre_limiter_message_mini){ //verification si le message est pas court if(strlen($message_post) < $nombre_limiter_message_maxi){ //verification si le message est pas long echo '<div id="bon">Votre dédicasse a bien était envoyer.</div>'; ########Tout est bon, on envoi le tout dans la base de donnée####### 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!")); }else{ //le message est trop long on affiche l'erreur echo '<div id="erreur">Votre message est trop long</div>'; } }else{ //le message est trop court on affiche l'erreur echo '<div id="erreur">Votre message est trop court</div>'; } }else{ //le pseudo est trop long on affiche l'erreur echo '<div id="erreur">Votre pseudo est trop long</div>'; } }else{ //le message est trop court on affiche l'erreur echo '<div id="erreur">Votre pseudo est trop court</div>'; } }else{ //le message est vide on affiche l'erreur echo '<div id="erreur">Vous avez oublier votre message!</div>'; } }else{ //le pseudo est vide on affiche l'erreur echo '<div id="erreur">Veuillez indiquer un pseudo</div>'; } } ?>
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
<?php /*Variables pour la connexion a la base de donnée */ $host = "localhost"; $username_sql = "root"; $password_sql = "050990"; $nom_bd_sql = "script"; mysql_connect($host, $username_sql, $password_sql) or die('Impossible de se connecter au serveur '.$host.'. veuillez verifier votre configuration'); mysql_select_db($nom_bd_sql) or die('Impossible de se connecter a la base de donnée '.$nom_bd_sql.''); /*Variables pour la connexion a l'interface admin pour les dedicace*/ $pseudo_admin = 'Luc904'; $mot_de_passe_admin = 'test123'; ?>
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
<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
<?php include('config.php'); /*on selectionne les derniere 10derniere dedicase envoyer dans la bd e ton les li*/ $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> ")); /* on verifie si une dedicace existe */ $donnes_dedi_compte = mysql_num_rows($retour_dedi); if($donnes_dedi_compte > 0){ /* si une dedicace existe alors on continue le script */ /*petite boucle while pour afficher les 10 derniere dedi*/ while($donnes_dedi = mysql_fetch_array($retour_dedi)){ /*variables pour els dedicace+secu */ $pseudo_dedicace = htmlspecialchars($donnes_dedi['pseudo']); $message_dedicace = htmlspecialchars($donnes_dedi['message']); $date_dedicace = $donnes_dedi['date']; ?> 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> <?php } }else{ /*aucune dedicace existe on affiche un petit message <img src="image/smile.png" alt=":)"/> */ ?> Il y a actuellement aucune dedicace disponnible! <?php } ?>
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
<!--Partit reserver a l'administration.--> <form method="post" action="admin.php"> <b>Pseudo :</b><input type="text" name="pseudo_adm" /><br/> <b>Mot de passe :</b><input type="password" name="mdp_adm" /><br/> <input type="submit" name="connexion" value="Se connecter"/> </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
<?php include('config.php'); /*si la session connecter existe alors on affiche les pages*/ if($_SESSION['connecter'] == true){ if(isset($_GET['page'])){ if($_GET['page'] == 'supprimer'){ if(isset($_GET['id'])){ if($_GET['id']){ mysql_query('DELETE FROM dedicace WHERE id='.mysql_real_escape_string($_GET['id']).''); echo '<h2>Dedicasse n°'.$_GET['id'].' supprimer</h2><br/>'; }else{ echo 'Id inconnu'; } } } } ?> Voici la liste des dedicace poster: <table border="1" width="900"> <tr> <th>Pseudo</th> <th>Message</th> <th>Ip</th> <th>Date</th> <th>Supprimer</th> </tr> <?php /*on selectionne les donner des dedicace dans l'ordre des id*/ $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> ")); /*petite boucle pour tt afficher*/ while($donnes_dedi_admin = mysql_fetch_array($retour_dedi_admin)){ /*variables pour les dedicace+secu */ $pseudo_dedicace = htmlspecialchars($donnes_dedi_admin['pseudo']); $message_dedicace = htmlspecialchars($donnes_dedi_admin['message']); $date_dedicace = $donnes_dedi_admin['date']; $ip_dedicace = $donnes_dedi_admin['ip']; $id_dedicace = $donnes_dedi_admin['id']; ?> <tr> <td><?php echo $pseudo_dedicace; ?></td> <td><?php echo $message_dedicace; ?></td> <td><?php echo $ip_dedicace; ?></td> <td><?php echo $date_dedicace; ?></td> <td><a href="admin.php?page=supprimer&id=<?php echo $id_dedicace; ?>">Supprimer</a></td> </tr> <?php } ?> </table> <?php /*la session existe pas on lui refuse l'accée au page on affiche le formulaire de connexion */ }else{ if(isset($_POST['connexion'])){ if(isset($_POST['pseudo_adm']) && $_POST['pseudo_adm'] != null){ /*si le pseudo est different de null (ou vide) alors on continue le script*/ 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*/ /*variables de pseudo poster */ $pseudo_poster = $_POST['pseudo_adm']; $mdp_poster = $_POST['mdp_adm']; if($pseudo_poster == $pseudo_admin){ /*si le pseudo poster est le même que le pseudo dans config.php alors on continue le script*/ 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*/ /*tout est bon, on connecte le membre <img src="image/smile.png" alt=":)"/> */ $_SESSION['connecter'] = true; $_SESSION['pseudo'] = $pseudo_admin; ?> <script type="text/javascript" language="javascript"> document.location.href="admin.php"; </script> <?php }else{ /*le mot de passe renseigner est inccorect */ echo '<div id="erreur">Mot de passe incorect</div>'; } }else{ /*le pseudo renseigner est inccorect */ echo '<div id="erreur">Pseudo inexistant</div>'; } }else{ /*le mot de passe est vide */ echo '<div id="erreur">Veuillez indiquer votre mot de passe</div>'; } }else{ /*le pseudo est vide */ echo '<div id="erreur">Veuillez indiquer votre pseudo</div>'; } } ?> Partit reserver a l'administration. <form method="post" action="admin.php"> <b>Pseudo :</b><input type="text" name="pseudo_adm" /><br/> <b>Mot de passe :</b><input type="password" name="mdp_adm" /><br/> <input type="submit" name="connexion" value="Se connecter"/> </form> <?php } ?>
et voilà ce script est vraiment basique. A vous de l’améliorer !
Bonne journée.
Publicité
Je vous recommande aussi la lecture des tutoriels suivants
Commentaires
| 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... |
|
| Pseudo | Commentaires |




