La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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

Présentations similaires


Présentation au sujet: "Algorithmes et structures de données avancées Partie Conception de Sites Web dynamiques Cours 11 Patrick Reuter."— Transcription de la présentation:

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

2 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

3 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 -----------------

4 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; } ?>

5 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; } ?>

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

7 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)

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

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

10 #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

11 Inclure dans vos fichiers HTML/PHP:

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

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

14

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

16 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

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

18 Relation de type 1:n

19 Table personnes idnom 1Pascal 2Marie

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

21 Relation de type n:m

22 Une personne qui aime plusieurs DVDs

23 Table personnes idnom 1Pascal 2Marie

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

25 Plusieurs personnes qui aiment plusieurs DVDs

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

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

28 Table personne_dvd (de jointure) idid_dvdid_personne 111 212 331 432 ……

29 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

30 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

31 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.

32 PHP et MySQL

33

34

35 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; } ?>

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

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

38 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 …");

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

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

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

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

43 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 …");

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

45 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 …");

46 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 …");

47 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 …");

48 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; } ?>

49 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']; } ?>

50 mysql_escape_string Fonction "inverse" : stripslashes

51 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']); } ?>

52 Les variables de session

53 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 …"; }

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

55


Télécharger ppt "Algorithmes et structures de données avancées Partie Conception de Sites Web dynamiques Cours 11 Patrick Reuter."

Présentations similaires


Annonces Google