Conception de Site Webs Interactifs Cours 8 Patrick Reuter
PHP et MySQL
<?php echo "Hello World"; ?>
Remarques Extension du fichier doit être.php Le navigateur ne comprend que l'HTML Le code "php" inclus dans la page HTML est transformé par le serveur php Le code "php" est invisible dans la page HTML affichée car il est interpreté
Un exemple pratique : Hello World Ma premiere page Hello World Ma premiere page <?php echo "Hello World"; ?> helloworld.htm helloworld.php
Un exemple pratique : remarques Si on "éteint" le serveur web (EasyPHP) Si on met une extension.html au fichier php
echo 'j\'utilise php'; // FAUX echo "j'utilise php" ; // CORRECT echo "j\'utilise php" ; // CORRECT
Concatenation 1 <? echo "Salut"." Martin"; ?>
Interaction de PHP avec MySQL <?php require_once("connect_db.php"); ?>
ou bien
PHP : $_GET et $_POST $_GET –Les paramètres apparaissent dans lURL –Ils sont donc visibles par lutilisateur –Bien pour trouver des erreurs –Ils peuvent donc être récupéré … –MAIS : Ils sont facilement modifiables (bien pour le développement pour trouver des bugs, p.ex.) –MAIS : nombre de caractères limités dans lURL (256 caractères)
PHP : $_GET et $_POST $_POST –Les paramètres napparaissent pas dans lURL Ils sont quand meme visibles en affichant le source de la page –La quantité dinformations dans les formulaires est quasiment illimité –MAIS : Ils ne sont facilement modifiables
MySQL – Insérer un enregistrement Concatenation de chaines de caractères $chaine = "Bon". "jour";
MySQL – Insérer un enregistrement Concatenation de chaines de caractères $j = "jour"; $chaine = "Bon". $j;
MySQL – Insérer un enregistrement Concatenation de chaines de caractères $chaine = "Bonjour ". $_GET[nom];
MySQL – Insérer un enregistrement Concatenation avec les données du formulaire $login = $_POST['login']; $mdp = $_POST['mdp']; $sql = "INSERT INTO `users` (`pseudo`, `motdepasse`) VALUES ('". $login. "', '". $mdp. "' ); "; $res = qdb($sql); // qdb est défini dans connect_db.php
MySQL – Insérer un enregistrement Concatenation avec les données du formulaire $login = $_POST['login']; $mdp = $_POST['mdp']; $sql = "INSERT INTO `users` (`pseudo`, `motdepasse`) VALUES ('', '' ); "; $res = qdb($sql); // qdb est défini dans connect_db.php
MySQL – Insérer un enregistrement Concatenation avec les données du formulaire Exemple : $login = "preuter"; $mdp = "l'); DELETE * FROM users;"; $sql = "INSERT INTO `users` (`pseudo`, `motdepasse`) VALUES ('preuter', 'l'); DELETE * FROM users;"; $res = qdb($sql); // qdb est défini dans connect_db.php
Instructions MySQL Protéger vos champs textes : $mdp = "l'arbre"; $mdp = mysql_escape_string($mdp); echo $mdp; // l\'arbre
MySQL – Insérer un enregistrement Concatenation avec les données du formulaire $login = mysql_escape_string($_POST['login']); $mdp = mysql_escape_string($_POST['mdp']); $sql = "INSERT INTO `users` (`pseudo`, `motdepasse` ) VALUES ('". $login. "', '". $mdp. "' ); "; $res = qdb($sql); // qdb est défini dans connect_db.php
$a = stripslashes("l\'arbre"); (resultat : l'arbre)
Récapitulatif HTML/XHTML CSS PHP MySQL
Mini-projets 1.Site de rencontre –(utilisateurs, rechercher un correspondant) 2.Messagerie privée –(éventuellement à combiner avec 1.) 3.Gestion dune équipe de sport 4.Forum de discussion 5.Gestion de salles de cours 6.Site de vente aux enchères 7.Albums de photos 8.Carnet dadresses et liste de mailings 9.Gestionnaire de DVD 10.Jeux de bourse
Jeu à jardin de plantes Actualisation web Mailing list Reminder web de evenement Creation statistiques Gestionnaire division sportive Planning
Transférer des fichiers vers votre hebergeur FTP (File transfer protocol) Client FTP : Filezilla, FTP Expert, SmartFTP, … _______ ftp.numericable.fr ftp.membres.lycos.fr ftp.wanadoo.fr Nom d'utilisateur preuter Mot de passe
Terminologie Base de données (database) Table (table) Enregistrement (record) Champ (field)
Table PERSONNE PERSONNE PersIDnomprénomdate_naissville_naiss 1Dupontbob yyyymeurise zzzzcodd note : ici ville_naiss est une clé étrangère (Table VILLE)
Table VILLE VILLE VilleIDnompopulationsuperficieregion 1Paris Lyon Grenoble note : ici region est une clé étrangère (table REGION)
Relation 1 : n
Types de relations Relation de type 1:1 Relation de type 1:n Relation de type n:m
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.
Réalisation Relation 1:1 La clé primaire d'une entité est la clé étrangère d'une autre entité dans un champs supplémentaire. Relation 1:n La table de l'entité du côté n aura un champs supplémentaire qui a comme clé étrangère la clé primaire du côté 1. Relation n:m Création d'une table de jointure qui contient deux clés étrangères qui sont les clés primaires des deux tableaux. Les relations n:m seront toujours converties en deux relations, une relation 1:n, et une relation 1:m.