CREATE TABLE `blog` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, `title` VARCHAR( 128 ) NOT NULL,



Documents pareils
Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework

CREATION WEB DYNAMIQUE

SUPPORT DE COURS / PHP PARTIE 3

Stockage du fichier dans une table mysql:

PHP et les Bases de données - Généralités

Olivier Mondet

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

Pratique et administration des systèmes

PHP 5. La base de données MySql. A. Belaïd 1

Soon_AdvancedCache. Module Magento SOON. Rédacteur. Relecture & validation technique. Historique des révisions

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

Mysql avec EasyPhp. 1 er mars 2006

TP JAVASCRIPT OMI4 TP5 SRC

SYSTÈMES D INFORMATIONS

1 Position du problème

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP

Création et Gestion des tables

Gestion de base de données

Attaques applicatives

I4 : Bases de Données

Formulaire pour envoyer un mail

Sommaire. 1 Introduction Présentation du logiciel de commerce électronique 23

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Optimisations des SGBDR. Étude de cas : MySQL

PHP 4 PARTIE : BASE DE DONNEES

DOM - Document Object Model

Les sites Internet dynamiques. contact : Patrick VINCENT pvincent@erasme.org

25 mars. Tutoriel sur Laravel. Préparé par : Lydiane Beaulne-Bélisle. Ceci est un tutorial qui montre comment débuter avec le Framework PHP Laravel.

Module BD et sites WEB

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications

Activités HTML. Code: act-html

RÉALISATION D UN SITE DE RENCONTRE

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

DOSSIER D'ACTIVITES SUR LE PHP N 03 Créer une base de données MySQL avec PHPMyAdmin

1. Base de données SQLite

Cours Bases de données 2ème année IUT

(structure des entêtes)

Bases de Données relationnelles et leurs systèmes de Gestion

Introduction. PHP = Personal Home Pages ou PHP Hypertext Preprocessor. Langage de script interprété (non compilé)

La programmation orientée objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des données PHP/MySQL. Le langage PHP (2)

Utiliser un CMS: Wordpress

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

Démonstration de la mise en cache via HTML 5 sur iphone

Devenez un véritable développeur web en 3 mois!

Classe ClInfoCGI. Fonctions membres principales. Gestion des erreurs

Bases de données relationnelles

Le Langage De Description De Données(LDD)

CREATION d UN SITE WEB (INTRODUCTION)

SQL Historique

SQL. Oracle. pour. 4 e édition. Christian Soutou Avec la participation d Olivier Teste

Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin

Sommaire Accès via un formulaire d'identification... 4 Accès en mode SSO... 5 Quels Identifiant / mot de passe utiliser?... 6

Manuel d utilisation du module Liste de cadeaux PRO par Alize Web

Les BASES de DONNEES dans WampServer

Comment Connecter une Base de Données MySQL via un Driver JDBC Avec OpenOffice.org

Formulaires et Compteurs

Gestion Electronique de Document (ECM/GED)

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement

Module pour la solution e-commerce Magento

Outil de démonstration : Application PassNFC

PLUGINS Guide du Développeur STEPHANE FERRARI. P l u X m l 5.4

Mise en place d un serveur Proxy sous Ubuntu / Debian

Introduction au langage C

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

TIC. Réseau informatique. Historique - 1. Historique - 2. TC - IUT Montpellier Internet et le Web

Installation d'un serveur FTP géré par une base de données MySQL

Par KENFACK Patrick MIF30 19 Mai 2009

Tous les autres noms de produits ou appellations sont des marques déposées ou des noms commerciaux appartenant à leurs propriétaires respectifs.

Portail du Consommateur. Guide d utilisation. Du dépôt de requêtes

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

Cours: Administration d'une Base de Données

OpenPaaS Le réseau social d'entreprise

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

Dans nos locaux au 98 Route de Sauve NÎMES. Un ordinateur PC par stagiaire, scanner, imprimante/copieur laser couleur

Initiation à html et à la création d'un site web

Mysql. Les requêtes préparées Prepared statements

Pour les débutants. langage de définition des données

Encryptions, compression et partitionnement des données

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes

I. MySQL : Serveur et SGBD

Compétences Business Objects

PHP 5.4 Développez un site web dynamique et interactif

Comment accéder à d Internet Explorer

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

Séance d ED n 5 : HTML et JavaScript

Notes de cours : bases de données distribuées et repliquées

TP Contraintes - Triggers

Projet en nouvelles technologies de l information et de la communication

Techniques de Programmation pour Internet

Access et Org.Base : mêmes objectifs? Description du thème : Création de grilles d écran pour une école de conduite.

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

Les Bases. Messaoudi Khaled, Boukelal Hanane (Etudiants Informatique ) 2015.

Mise en œuvre des serveurs d application

Ecriture d'un Plugin pour GLPI

Plan Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO S2-IO2 Bases de données: Jointures, Transactions

Guide de rapports ADT Sélecte

Transcription:

Créer un blog en 20 mn Tout d abord, créer la base de données qui contiendra le blog Avec phpmyadmin définir une base de données de nom blog Définir une table de nom entries Dans cette table, on créera - un champ de nom id, auto-incrémental, crée primaire - un champ de nom title (varchar de 128 caractères) - un champ de nom body (text) qui contiendra les informations du weblog. CREATE TABLE `blog` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, `title` VARCHAR( 128 ) NOT NULL, `body` TEXT NOT NULL ) TYPE = MYISAM ; Il faut ensuite configurer le fichier database.php (dans system/application/config) pour qu il contienne les informations relatives à la base de données ainsi créée. Prendre en compte la base de données Pour cela, configurer le fichier autoload.php (dans system/application/config) : $autoload['libraries'] = array('database'); Ajouter rapidement des enregistrements dans la table entries Pour utiliser la base de données, on utilise le scaffolding. Pour ça, ajouter l utilisation de la table «entries» dans le constructeur de la classe Blog : $this->load->scaffolding('entries'); rque : cette ligne ne sert que temporairement pour ajouter des enregistrements à la table entries (on la met en commentaires tout de suite) Il faut ensuite configurer routes.php en précisant : $route['scaffolding_trigger'] = "scaffolding"; Ceci permettra d entrer de manière sécurisée des enregistrements dans la table entries. Pour cela, il suffit d afficher l adresse : http://../codeigniter/index.php/blog/scaffolding/ Cette interface permet de gérer les enregistrements de la table entries (citée dans le constructeur) : ajout, suppression, modification.

Prendre en compte les enregistrements de la table pour afficher leur contenu Modifier la classe Blog : La requête qui va chercher les enregistrements dans la table entries s écrit : $data['query']=$this->db->get('entries'); Modifier le viewer pour prendre le résultat de cette requête : Pour chaque enregistrement trouvé, on affiche chacun des champs : <?php foreach($query->result() as $row):?> <h3><?=$row->title?></h3> <p><?=$row->body?></p> <hr> <?php endforeach;?> Mettre des commentaires aux billets : Pour pouvoir ajouter des commentaires à la lecture du blog, nous utilisons deux modules de codeigniter : url et form (dans system/helpers) On va donc charger ces modules pour pouvoir les utiliser en incluant les lignes suivantes dans le constructeur de la classe Blog : $this->load->helper('url'); $this->load->helper('form'); Mettre un lien qui permet d accéder au formulaire d ajout d un commentaire : On ajoute la ligne suivante à l intérieur de la boucle dans blog_view.php : <p><?=anchor('blog/comments', 'Comments');?></p> Pour que le futur commentaire se rapporte bien au billet qu il suit, on ajoute le numéro de billet à l url (id dans la table entries de la base de données) : <p><?=anchor('blog/comments/'.$row->id, 'Comments');?></p> L ancre est bien présente, mais le lien n existe pas encore. Il faudra ajouter la fonction comments dans la classe Blog : Créer la table qui contiendra les commentaires CREATE TABLE `comments` ( `id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY, `entry_id` INT( 11 ) NOT NULL,

`body` TEXT NOT NULL, `author` VARCHAR( 100 ) NOT NULL ) TYPE = MYISAM ; Créer le formulaire A l aide de la fonction form_open qui prend en argument l artion à exécuter lors de sa validation (ici comment_insert) : <?=form_open('blog/comment_insert');?> De plus, il faudra pouvoir faire référence au billet concerné par ce commentaire (c est le nombre qui apparaît à la suite de comment dans l url. On ajoute alors un champ caché (form_hidden, de nom «entry_id» et dont la valeur est le 3 ième segment de uri du formulaire : <?=form_hidden('entry_id', $this->uri->segment(3));?> Ajouter les champs de saisie des informations : <p><textarea name="body" rows="10"></textarea></p> <p><input type="text" name="author"/></p> <p><input type="submit"value="valider le commentaire" /></p> Ne pas oublier de fermer le formulaire! </form> Définir l action du formulaire La fonction à créer dans le controller s appelle comment_insert, comme indiqué dans l argument de l ouverture de formulaire (form_open) Il faut donc ajouter cette fonction dans la classe Blog : Pour ça, on utilise la fonction de manipulation de base de données insert qui prend en arguments la table dans laquelle s effectue cette insertion et le tablea $_POST qui contient les paramètres transmis par le formulaire : function comment_insert() { $this->db->insert('comments',$_post); redirect('blog/comments/'.$_post["entry_id"]); } La seconde ligne permet d ajouter dans la foulée un autre commentaire au même billet. Afficher l ensemble des commentaires d un billet On prévoit de ne sélectionner que les commentaires correspondant à ce billet, et créant une claus where :

$this->db->where('entry_id',$this->uri->segment(3)); Puis, on ajoute à cette fonction comments une requête à la base pour chercher tous les commentaires déjà faits sur ce billet : $data['query']=$this->db->get('comments'); Il reste à modifier le comment_view pour qu il prenne en compte ces deux requêtes : Version finale de ce fichier : <html> <head> <title><?php echo $title ;?></title> </head> <body> <h1><?php echo $entete ;?></h1> <?php if ($query->num_rows() >0 ):?> <?php foreach($query->result() as $row):?> <h3><?=$row->body?></h3> <p><?=$row->author?></p> <hr> <?php endforeach;?> <?php endif;?> <p><?=anchor('blog/', 'Back to Blog');?></p> <?=form_open('blog/comment_insert');?> <?=form_hidden('entry_id', $this->uri->segment(3));?> <p><textarea name="body" rows="10"></textarea></p> <p><input type="text" name="author"/></p> <p><input type="submit" value="valider le commentaire" /></p> </form> </body> </html> remarques : la clause if gère le cas où il n y aurait encore aucun commentaire : par d affichage.

Pour chaque commentaire, on affiche son texte et son auteur. On met un lien pour revenir au blog après avoir affiché les commentaires. Le formulaire d insertion d un commentaire reste visible tant qu on n est pas revenu au blog.