Algorithmes et structures de données avancées Partie Conception de Sites Web dynamiques Cours 11 Patrick Reuter.

Slides:



Advertisements
Présentations similaires
Scripts PHP Interaction avec MySQL Insert, Select, ….
Advertisements

Conception de Site Webs dynamiques Cours 6
Conception de Site Webs dynamiques Cours 5
Créer une base de données MySQL
Créer une base de données MySQL Et création de tables, enregistrements, interaction avec PHP.
Conception de Site Webs Interactifs Cours 10 Patrick Reuter
Conception de Site Webs Interactifs Cours 9 Patrick Reuter
Conception de Site Webs Interactifs Cours 3
Algorithmes et structures de données avancées Partie Conception de Sites Web dynamiques Cours 10 Patrick Reuter.
Algorithmes et structures de données avancées Partie Conception de Sites Web dynamiques Cours 9 Patrick Reuter.
Conception de Sites Web dynamiques
Conception de Site Webs Interactifs Cours 8 Patrick Reuter
Conception de Site Webs Interactifs Cours 4
Algorithmes et structures de données avancées Partie Conception de Sites Web dynamiques Cours 8 Patrick Reuter.
TRANSFER Alger – Serveur Web Nicolas Larrousse Septembre Petit historique du Worl Wide Web Notion dHypertexte Extension à internet par Tim Berners.
MySQL et PHP.
PHP mySQL Extension php_mysql. Connexion à une base de données Établir une connexion mysql_connect(string server, string username, string password) –permet.
Jérôme CUTRONA PHP et bases de données Jérôme CUTRONA 01:07:51 Programmation Web
14/06/07 Préparé par: Ing. Rodrigue Osirus (509) / , - Programmation Web coté Server avec.
Révision Avant lintra – Architecture de lordinateur, les composants, le fonctionnement, codage – Système dexploitation: organisation des données (fichier),
Le Téléphone Russe Le Téléphone Russe. Le Téléphone Russe Le Téléphone Russe.
2006/2007Denis Cabasson – Programmation Web Cours de programmation web ENSAE
Créer un site Web sur internet
Applications Internet – cours 3 La page web
Techniques Internet de Base Licence 2 (Info, Maths, PC/PA) Université Jean Monnet Ruggero G. PENSA
L’utilisation des bases de données
Systèmes d Information : 10b Michel de Rougemont Université Paris II Les Bases de Données : Access.
Comprendre l’environnement Web
Développement Rapide dApplications Web avec.NET « Mon premier site »
Les instructions PHP pour l'accès à une base de données MySql
Médiathèque de Sélestat - 5 février 2005 Olivier Andrieu Comment ne pas être visible sur les moteurs de recherche.
RAPPORT D’ACTIVITES Pascal ANGELINI Année :
Un blog (pour web log) est un espace de publication personnel, vous permettant de diffuser du contenu sur un espace qui vous est réservé.
Abderrahmane Bouarissa Damien Burglin Arnaud Sansig
1. 2 PLAN DE LA PRÉSENTATION - SECTION 1 : Code HTML - SECTION 2.1. : CSS (Méthode 1) - SECTION 2.2. : CSS (Méthode 2) - SECTION 3 : JavaScript - SECTION.
HTML / CSS Gestion des systèmes d’information Classe terminale
PhP-MySQL Pagora 2012/2013 CTD 1 - Presentation de moi ^^
Modex Web Dominique Rossin
CPI/BTS 2 Programmation Web PHP et les Bases de données Prog Web CPI/BTS2 – M. Dravet – 11/03/2004 Dernière modification: 11/03/2004.
PHP & My SQL.
Les feuilles de style en HTML. CSS CSS: feuilles de style en cascade Permettent d’appliquer une mise en page à l’ensemble d’un site très simplement Permettent.
Création d’un site internet en XHTML + L’hébergement By Reyne & Archinard.
Présenté par COMTE Jeremy et DE LAZZARI Thomas Sommaire b Présentation générale b Include b Notion de variables b MySQL.
Comment stocke-t-on des données sur un site web ?
Cours n°4M2. ESCE (S. Sidhom) Séminaire ( 6-12 Février 2007 ) Promo. M2 ESCE-Tunis 2006/07 Conception d’un système d'information sur Internet Architecture.
JDBC L'API JDBC est utilisée pour utilisée pour intéragir avec une base de données.
0 Objectifs de la session n°1  Revenir sur toutes les bases théoriques nécessaires pour devenir un développeur Web,  Découvrir l’ensemble des langages.
Cours de programmation web
 Requêtes MySQL en PHP Introduction
1 PHP 5 Notions fondamentales (cours #5) Formation continue – Cégep de Sainte-Foy.
Concevoir un site web de A a Z Cours 3. Aujourd’hui Découper sa page en tranche pour une intégration graphique optimale avec Photoshop L’intégration des.
Abderrahmane Bouarissa Damien Burglin Arnaud Sansig
Projet Informatique Eolienne
Module : Pages Web Dynamiques (Production Électronique Avancée)
 Formulaires HTML : traiter les entrées utilisateur
Usine d’incinération d’ordures ménagères
Conception de Site Webs Interactifs Cours 7 Patrick Reuter
 Le langage SQL Introduction SQL : Strutured Query Language, est un langage de requête, que l'on retrouve dans divers SGBDR (Access de Microsoft, MySQL,
 Les bases de données MySQL
Cours n°4M1.ist-ie (S. Sidhom) UE 203 Promo. M1 IST-IE 2006/07 Conception d’un système d'information sur Internet Architecture trois-tiers : technologies.
Introduction à PHP TOURNADRE Guillaume - Informatique Réseaux URL :
Séance /10/ Projet de site dynamique avec Dreamweaver : MyCMS
Conception de Site Webs Interactifs Cours 9 Patrick Reuter
HTML Création et mise en page de formulaire
Création d’un site Web -Création « Graphique » de pages Création « Graphique » de pagesCréation « Graphique » de pages -Le graphisme Le graphismeLe graphisme.
Séminaire de rentrée cours de programmation web & Wordpress
Cours n°2 Implémentation et exploitation
Mise en forme avancée et Publication. Le CSS Avertissement : vous ne devez pas maitriser le CSS juste savoir qu’il existe et à quoi il sert ! CSS signifie.
APP-TSWD Apprentissage Par Problèmes Techniques des Sites Web Dynamiques Licence Professionnelle FNEPI Valérie Bellynck, Benjamin Brichet-Billet, Mazen.
Transcription de la présentation:

Algorithmes et structures de données avancées Partie Conception de Sites Web dynamiques Cours 11 Patrick Reuter

Programme … Mettre le site en ligne Mise en page cohérente BDD: Relation entre des tables (1:1,1:n,n:m) Variables de session Référencement moteur de recherche

Transférer des fichiers vers votre hebergeur Information de votre fournisseur : 1.Addresse FTP ftp.ifrance.com ftp.numericable.fr ftp.membres.lycos.fr ftp.wanadoo.fr FTP (File transfer protocol) Client FTP : Filezilla, FTP Expert, SmartFTP, … 2. Nom de la base de données 3. Nom d'utilisateur preuter 4. Mot de passe

Fichier connect_db.php <?php $dbhost="localhost"; $dbuser="root"; $dbpassword=""; $dbname="base_cswd"; $dblink=mysql_connect($dbhost,$dbuser,$dbpassword); $db_cswd=mysql_select_db($dbname,$dblink); function qdb($sql) { $resultat = mysql_query($sql); if (mysql_errno()) { echo "MySQL error ".mysql_errno()." : ".mysql_error()."\n "; echo "Requête MySQL : ".$sql."\n "; die; } return $resultat; } ?>

Fichier connect_db.php <?php $dbhost="xxxx.ifrance.com"; $dbuser="login"; $dbpassword="mdp"; $dbname="yyyy"; $dblink=mysql_connect($dbhost,$dbuser,$dbpassword); $db_cswd=mysql_select_db($dbname,$dblink); function qdb($sql) { $resultat = mysql_query($sql); if (mysql_errno()) { echo "MySQL error ".mysql_errno()." : ".mysql_error()."\n "; echo "Requête MySQL : ".$sql."\n "; die; } return $resultat; } ?>

Mise en page Accueil Menu 1 Menu 2 Menu 3 Menu 4 En tête de la page Pied de la page

Conception de Site Webs Interactifs Déroulement Pages web statiques (HTML/XHTML) Mise en forme avec feuilles de styles (CSS) Programmation côté serveur –Pages web dynamiques (PHP) –avec connexion à une base de données (MySQL) Programmation côté client –JavaScript Référencement Internet (moteur de recherche)

Mise en page Accueil Menu 1 Menu 2 Menu 3 Menu 4 En tête de la page Pied de la page

Projet CSWD Accueil Menu 1 Menu 2 Menu 3 Menu 4 Contenu de la page ! (c) CSWD 2007 miseenpage.php

#page_entete { height: 90px; background: #697FBF; text-align: center; clear: both; } #menu { width:224px; background-color: #897FFF; float: left; } #contenu { width:800px; float: right; } #page_pied { height: 30px; background-color: #798FCF; text-align: center; clear: both; } Projet CSWD Accueil Menu 1 Menu 2 Menu 3 Menu 4 Contenu de la page ! (c) CSWD 2007 miseenpage.phpmiseenpage.css

Inclure dans vos fichiers HTML/PHP:

Home Page Projet CSWD Accueil Menu 1 Menu 2 Menu 3 Menu 4 (c) CSWD 2007 entete.php pied.php

entete.php et pied.php <?php include "entete.php"; ?> La page est vide ! <?php include "pied.php"; ?>

Terminologie Base de données (database) Table (table) Enregistrement (record) Champ (field)

Requêtes MySQL –INSERT : insérer un enregistrement –SELECT : récupérer un/des enregistrement(s) –UPDATE : mettre à jour des enregistrements –DELETE : effacer des enregistrements

Types de relations Relation de type 1:1 Relation de type 1:n Relation de type n:m

Relation de type 1:n

Table personnes idnom 1Pascal 2Marie

Table animaux idnom…id_personne 1Zeus…1 2Sisko…1 3Peggy…1 4Oscar…2 5Felix…2

Relation de type n:m

Une personne qui aime plusieurs DVDs

Table personnes idnom 1Pascal 2Marie

Table DVDs idnom…id_personne 1Casino…1 2Planète des singes …1 3Coupe du monde 1990 …2 4Nirvana live…2 …………

Plusieurs personnes qui aiment plusieurs DVDs

Table CDs idnomid_person ne1 id_personne 2 1Casino21 2Planète des singes 01 3Coupe du monde 1990 …2 4Nirvana live…2 …………

Table DVDs idnom 1Casino 2Planète des singes 3Coupe du monde Nirvana live ……

Table personne_dvd (de jointure) idid_dvdid_personne ……

Relation de type 1:1 Une entité est partenaire de exactement une autre entité Exemples: Mariage : Une personne est marié avec exactement une autre personne Personne 1:1 Personne Immatriculation : Une véhicule à exactement une immatriculation Véhicule 1:1 Immatriculation Stade : Dans notre exemple, un club a exactement un stade Club 1:1 Stade

Relation de type 1:n Une entité d'un côté est en relation avec un ou plusieurs entités de l'autre côté. Exemples : Art : Un tableau se trouve (à un moment donné) dans un musée. Par contre, dans un musée il y a plusieurs tableaux. Musée 1:n Tableaux Famille: Un enfant à exactement une mère biologique. Mais une mère peut avoir plusieurs enfants. Mère 1:n Enfants

Relation n:m Dans les deux côtés de la relation il y a un nombre arbitraire d'entités. Attention : Ne pas écrire n:n ! (n m) Exemples : Etudiant Professeur: Un professeur enseigne plusieurs étudiants. Un étudiant va en cours de plusieurs professeurs. Professeur m:n Etudiant Immobilier : Un immobilier peut appartenir à plusieurs propriétaires. Un propriétaire peut posséder plusieurs immobiliers. Propriétaire n:m Immobilier joueurs clubs anciens : Un joueur peut avoir plusieurs clubs anciens. Un club a plusieurs joueurs.

PHP et MySQL

Fichier connect_db.php <?php $dbhost="localhost"; $dbuser="root"; $dbpassword=""; $dbname="base_cswd"; $dblink=mysql_connect($dbhost,$dbuser,$dbpassword); $db_cswd=mysql_select_db($dbname,$dblink); function qdb($sql) { $resultat = mysql_query($sql); if (mysql_errno()) { echo "MySQL error ".mysql_errno()." : ".mysql_error()."\n "; echo "Requête MySQL : ".$sql."\n "; die; } return $resultat; } ?>

Tous les fichiers PHP <?php require_once("connect_db.php"); ?>

Insérer un enregistrement INSERT INTO livreor ( id, texte, nom, date ) VALUES ('', 'Très bon site', 'Cédric', NOW());

Insérer un enregistrement $sql = "INSERT INTO livreor ( id, texte, nom, date ) VALUES ('', 'Très bon site', 'Cédric', NOW()); "; $resultat = qdb($sql); revient à … : $resultat = mysql_query("INSERT INTO …");

echo "j'utilise php" ; // ou bien echo "j\'utilise php" ; //

Concatenation 1 <? echo "Salut"." Martin"; ?>

Variables <?php $a = 0; $nom = 'Horst'; echo $a; ?>

Concatenation 2 <? $nom = "Martin"; ?> Salut

Insérer un enregistrement – première (mauvaise) version $sql = "INSERT INTO livreor ( id, texte, nom, date ) VALUES ('', '". $_GET['nom']."', '".$_GET['texte']."', NOW()); "; $resultat = qdb($sql); $resultat = mysql_query("INSERT INTO …");

Attention à l'injection SQL $sql = "l'arbre"; $sql = mysql_escape_string($sql);

Attention à l'injection SQL $sql = "INSERT INTO livreor ( id, texte, nom, date ) VALUES ('', 'L'arbre pousse.', ' Cédric'; DELETE * FROM livreor; ' Roussel ', NOW()); "; $resultat = qdb($sql); revient à … : $resultat = mysql_query("INSERT INTO …");

Attention à l'injection SQL $sql = "INSERT INTO livreor ( id, texte, nom, date ) VALUES ('', 'L\'arbre pousse.', 'Cédric', NOW()); "; $resultat = qdb($sql); revient à … : $resultat = mysql_query("INSERT INTO …");

Insérer un enregistrement – deuxième (bonne) version $sql = "INSERT INTO livreor ( id, texte, nom, date ) VALUES ('', '". mysql_escape_string($_GET['nom'])."', '". mysql_escape_string($_GET['texte']). "', NOW()); "; $resultat = qdb($sql); $resultat = mysql_query("INSERT INTO …");

Parcourir les enregistrenents <?php $sql = "SELECT * FROM livreor"; $resultat = qdb($sql); // connaitre le nombre d'enregistrements $nombre_resultats = mysql_num_rows($resultat); // parcourir le tableau des enregistrements $i=1; while ($i <= $nombre_resultats) { $enregistrements = mysql_fetch_array($resultat) echo $enregistrements['nom']; echo $enregistrements['texte']; $i = $i + 1; } ?>

Parcourir les enregistrenents <?php $sql = "SELECT * FROM livreor;"; $resultat = qdb($sql); // connaitre le nombre d'enregistrements $nombre_resultats = mysql_num_rows($resultat); // parcourir le tableau des enregistrements while ($enregistrements = mysql_fetch_array($resultat)) { echo $enregistrements['nom']; echo $enregistrements['texte']; } ?>

mysql_escape_string Fonction "inverse" : stripslashes

Parcourir les enregistrenents <?php $sql = "SELECT * FROM livreor;"; $resultat = qdb($sql); // connaitre le nombre d'enregistrements $nombre_resultats = mysql_num_rows($resultat); // parcourir le tableau des enregistrements while ($enregistrements = mysql_fetch_array($resultat)) { echo stripslashes($enregistrements['nom']); echo stripslashes($enregistrements['texte']); } ?>

Les variables de session

verifer_login.php : (si le pseudo existe et le mdp est correcte) $_SESSION['pseudo']=$_GET['pseudo']; les autres pages pour lesquelles il faut être loggé : if ($_SESSION['pseudo'] != "") { } else { echo "il faut s'inscrire …"; }

Les variables de session deconnexion.php :... $_SESSION['pseudo']="";...