PHP. virginie.sans@irisa.fr http://perso.univ-rennes1.fr/virginie.sans/pwb. Internet et HTML



Documents pareils
TP JAVASCRIPT OMI4 TP5 SRC

Programmation Web. Madalina Croitoru IUT Montpellier

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

Introduction à MATLAB R

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Programmer en JAVA. par Tama

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

Introduction au langage C

PHP 5.4 Développez un site web dynamique et interactif

Formulaire pour envoyer un mail

TP 1. Prise en main du langage Python

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)

as Architecture des Systèmes d Information

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Langage Java. Classe de première SI

Stockage du fichier dans une table mysql:

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

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

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Notions fondamentales du langage C# Version 1.0

Algorithmique et Programmation, IMA

Présentation du langage et premières fonctions

Dans l'article précédent, vous avez appris

AWS avancé. Surveiller votre utilisation d EC2

L envoi d un formulaire par courriel. Configuration requise Mail Texte Mail HTML Check-list

ALGORITHMIQUE ET PROGRAMMATION En C

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Création de formulaires interactifs

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

CREATION WEB DYNAMIQUE

BTS S.I.O PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais

Premiers Pas en Programmation Objet : les Classes et les Objets

Plan du cours. Historique du langage Nouveautés de Java 7

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


Mysql avec EasyPhp. 1 er mars 2006

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

TP1. Outils Java Eléments de correction

Mise en place d un serveur Proxy sous Ubuntu / Debian

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

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

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

Table des matières Avant-propos... V Scripting Windows, pour quoi faire?... 1 Dans quel contexte?

Utilisation d objets : String et ArrayList

Aide mémoire UML & Java 1ère partie : Introduction. marc.lemaire@u-cergy.fr

Séance d ED n 5 : HTML et JavaScript

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

Bases de Données et Internet

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Classe ClInfoCGI. Fonctions membres principales. Gestion des erreurs

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

Module BD et sites WEB

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Gilles.Roussel univ-mlv.fr HTTP/1.1 RFC 2068

TD3: tableaux avancées, première classe et chaînes

STS SE. FreeRTOS. Programmation réseau WIFI. Programmation réseau. Socket Tcp. FlyPort smart Wi-Fi module

Cours Informatique Master STEP

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

Activités HTML. Code: act-html

PDO : PHP Data Object 1/13

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Environnements informatiques

Introduction. Passage de sites statiques à des sites dynamiques

Module http MMS AllMySMS.com Manuel d intégration

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Pratique et administration des systèmes

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

STID 2ème année : TP Web/PHP

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Programmation VBA/Excel. Programmation VBA. Pierre BONNET. Masters SMaRT & GSI - Supervision Industrielle P. Bonnet

Claude Delannoy. 3 e édition C++

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

Document Object Model (DOM)

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

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Les structures. Chapitre 3

Attaques applicatives

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

PHP CLÉS EN MAIN. 76 scripts efficaces pour enrichir vos sites web. par William Steinmetz et Brian Ward

Manuel d'installation

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

Ecriture d'un Plugin pour GLPI

2 Formation utilisateur

STAGE IREM 0- Premiers pas en Python

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

4. Groupement d objets

Programmation en Java IUT GEII (MC-II1) 1

DOM - Document Object Model

Cours de C++ François Laroussinie. 2 novembre Dept. d Informatique, ENS de Cachan

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

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

INF 321 : mémento de la syntaxe de Java

Impact des robots d indexation sur le cache de second niveau de SPIP IMBERTI Christophe - SG/SPSSI/CP2I/DO Ouest 06/06/2012 mis à jour le 05/07/2012

Initiation à la programmation en Python

Transcription:

PHP virginie.sans@irisa.fr http://perso.univ-rennes1.fr/virginie.sans/ BUR Internet et HTML

PHP, qu'est-ce que c'est? Un langage pour la programmation du serveur Permet d'inclure des parties programmées dans du HTML Très proche du langage C Très riche en fonctions, notamment pour l'accès aux bases de données

Modèle requête Client internet Serveur réponse appel de la page Base de données MySQL extraction de données Script PHP exécution Document Html 3/154

Intégration d un script dans une page Les pages web sont au format html. Les pages web dynamiques générées avec PHP4 sont au format php. Le code source php est directement insérer dans le fichier html grâce au conteneur de la norme XML : <?php?> Exemple: <html> <body> <?php echo Bonjour ;?> </body> </html> 4/154 Autres syntaxes d intégration : <??> <script language= php > </script> <% %>

Exemple de script Exemple de script, code source (côté serveur) : <html> <body> <h1>mon premier script</h1> <?php echo Bonjour\n ;?> </body> </html> Autre écriture du même script : <?php echo <html>\n<body>\n ; echo <h1>mon premier script</h1>\n ; echo Bonjour\n ; echo </body>\n</html>\n ;?> Résultat affiché par le navigateur : Code source (côté client) de la page essai.ph3 résultant du script 5/154

Balises du PHP Instructions PHP placées entre un jeu de balises : <?php?> D autres balises, à proscrire : <??> <% %> <script language="php"> </script>

Commentaires Commentaires sur une seule ligne : // Commentaires Commentaires sur plusieurs lignes : /* Commentaires sur * plusieurs lignes */

Types Typage faible : Pas besoin de déclarer les types Conversion automatique implicite 8 types différents : 4 types scalaires 2 types composés 2 types spéciaux

Types scalaires Booléen : Entier : true 10 Nombre à virgule flottante : 34.53 Chaîne de caractères : Bonjour tout le monde

Autres types Types composés : Tableau Objet Types spéciaux : Ressource NULL

Classes Php gère la programmation orientée objet à l aide de classes. Exemple : class Voiture { // déclaration de la classe var $couleur; // déclaration d un attribut var $belle = TRUE; // initialisation d un attribut function voiture() { // constructeur $this->couleur = noire ; } // le mot clé $this faisant référence à l objet est obligatoire function Set_Couleur($couleur) { $this->couleur = $couleur; } } $mavoiture = new Voiture(); // création d une instance $mavoiture->set_couleur( blanche ); // appel d une méthode $coul = $mavoiture->couleur; // appel d un attribut 11/154

Classes (II) Le système de classes de php est très succint, il ne gère que l héritage simple. Exemple : class Voituredeluxe extends Voiture { // déclaration de la sous classe var $couleur; function voituredeluxe() { // constructeur $this->voiture(); } function Set_Couleur($couleur) { $this->couleur = $couleur; } function Get_Couleur() { return $this->couleur; } } La nouvelle classe Voituredeluxe hérite de tous les attributs et méthodes de la classe parente Voiture dont elle est une extension (extends). Il est possible de surcharger les méthodes, d en déclarer de nouvelles, etc. 12/154

Fonctions Fonctions : gettype(); is_<type>(); (ex : is_int();) $var = 3; echo is_int($var); // Affiche true $var = "Hello World"; echo is_int($var); // Affiche false echo is_string($var); // Affiche true

Variables Sensible à la casse Préfixé par un $ (dollar) Valable : $_var; $var; $Var; Non valable : $123var;

Variables Assignement : Concaténation : Destruction : $var = "valeur"; $var = $foo. $bar; $var = $foo. "mot"; unset($var);

Constantes Identifiant représentant une valeur Sensible à la casse (par convention, en majuscules) Types scalaires uniquement Déclaration : Appel : Test : define("foo", "something"); FOO; defined("foo"); // Retourne un booléen

Constantes prédéfinies Constantes définies dans PHP Pas d assignation préalable echo PHP_EXTENSION_DIR; // Affiche le chemin du répertoire stockant les extensions

Tableaux Association clés valeurs Syntaxe : $fruits = array('pomme', 'poire', 'pêche');

Utilisation Manipulation d un élément grâce à son index (ou sa clé) $fruits = array('pomme', 'poire', 'pêche'); echo $fruits[2]; // Affiche pêche $fruits[2] = 'abricot'; echo $fruits[2]; // Affiche abricot

Tableaux associatifs Association clé valeurs explicite La clé est définie par le développeur $promos = array('ps1' => 'Promo 2011', 'PS2' => 'Promo 2010', 'ING1' => 'Promo 2009', 'ING2' => 'Promo 2008', 'ING3' => 'Promo 2007');

Opérateurs Opérateurs de calculs : + - * / % ++ -- Opérateurs de comparaisons : ==!= ===!== <> < <= => > Opérateurs logiques : &&

Structures de contrôle et de tests Voici les chapitres que nous allons aborder: if elseif... else. switch. while, do... while. for. foreach. break. continue.

if elseif else if requiert une condition Notation alternative Egalement disponible pour les autres structures de contrôle if ($str == "Hello") { // Code } if ($str == "Hello"): // Code endif;

if elseif else else est exécuté le cas échéant if ($str == "Hello") { // Code } else { // Code }

if elseif else elseif permet de faire plusieurs tests différents if ($str == "Hello") { // Code } elseif ($str == "Bye") { // Code } else { // Code }

if elseif else Plusieurs conditions pour un test if ($str == "Hello" empty($str)) { // Code } else { // Code }

Opérateur ternaire Equivalent à if else echo ($int == 1? "int = 1" : "int =?");

switch Similaire à if elseif else Succession de tests sur la valeur de la variable d entrée Le code dans default est exécuté si tous les tests échouent switch ($str) { case "Hello": // Code break; case "Bye": // Code break; default: // Code break; }

while Exécution tant que la condition est vraie Notation alternative while ($int < 10) { echo $int; $int++; } while ($int < 10): echo $int; $int++; endwhile;

do while Un passage forcé $int = 1; do { echo $int; } while ($int < 0);

for Initialise la variable Teste si la condition est vraie Effectue une action for ($i = 0 ; $i < 10 ; $i++) { echo $i; }

foreach Parcours d un tableau foreach ($array as $value) { } echo $value;

foreach Possibilité de récupérer la clé en plus de la valeur foreach ($array as $key => $value) { } echo $key. " : ". $value;

break Permet de sortir d une structure de contrôle Possibilité de sortir de plusieurs structures. while ($int < 10) { break; } while ($int < 10) { while (true) { break 2; } }

continue Possibilité de sauter une itération for ($i = 0 ; $i < 10 ; $i++) { if ($i == 3) continue; } echo $i;

continue Possibilité de sauter une itération dans une boucle d un niveau supérieur $i = 0; while ($i++ < 10) { } for ($j = 0 ; $j < 10 ; $j++) { if ($j == 3) continue 2; echo $j; }

Traitement des données en PHP On récupère, sous forme de variable PHP, les champs d'un formulaire Pour les valeurs scalaires -> un variable Pour les fichiers -> un nom de fichier temporaire

Que se passe-t-il quand on valide? Le programme client transmet au programme serveur les infos sous la forme: titre=t&annee=a... Pour le script PHP, cela donne: $titre = t; $annee=a; Et on peut maintenant utiliser ces données pour fabriquer une page HTML <?php if ($année<1920) echo Desole, on a pas. ;?>

Passage de valeurs multiples <FORM ACTION="http://cartier/ITCE/EXEMPLES/ExPHP2.php METHOD=POST"> Titre : <INPUT TYPE=TEXT SIZE=20 NAME="titre"> <TABLE><TR><TH>Prénom</TH><TH>Nom</TH></TR> <TR><TD><INPUT TYPE=TEXT SIZE=30 NAME="prenom[]"> <TD><INPUT TYPE=TEXT SIZE=30 NAME="nom[]"> <TR><TD><INPUT TYPE=TEXT SIZE=30 NAME="prenom[]"> <TD><INPUT TYPE=TEXT SIZE=30 NAME="nom[]"> <TR><TD><INPUT TYPE=TEXT SIZE=30 NAME="prenom[]"> <TD><INPUT TYPE=TEXT SIZE=30 NAME="nom[]"> </TABLE> <H1>Votre choix</h1> <INPUT TYPE=SUBMIT VALUE='Valider'> <INPUT TYPE=RESET VALUE='Annuler'> </FORM>

Que se passe-t-il quand on valide? Le programme client transmet au programme serveur les infos sous la forme: titre=t&prenom[]=p1&nom[]=n1&prenom[]=p2&nom[]=n2&... Pour le script PHP, cela donne: $titre = t; $prenom[] = p1, $nom[] = n1; $prenom[] = p2, $nom[] = n2;... => on crée deux tableaux PHP!

Ce que fait le script Une boucle sur les tableaux permet de récupérer les valeurs. <?php echo "Pour le film $titre j'ai recu les acteurs suivants:<p>\n"; $nbacteurs = count($prenom); for ($i=0; $i < $nbacteurs; $i++) echo "<B> $prenom[$i] $nom[$i]<b><br>\n";?> -> A utiliser aussi pour les champs SELECT multiples.

Transmission de fichiers <FORM ACTION="http://cartier/ITCE/EXEMPLES/ExPHP3.php" METHOD=POST" ENCTYPE= "multipart/form-data"> <INPUT TYPE="hidden" name="max_file_size" value="100000"> Titre : <INPUT TYPE=TEXT SIZE=20 NAME="titre"> <P> Affiche: <INPUT TYPE=FILE SIZE=20 NAME='affiche'> <H1>Votre choix</h1> <INPUT TYPE=SUBMIT VALUE='Valider'> <INPUT TYPE=RESET VALUE='Annuler'> </FORM>

Transmission de fichiers Le fichier est transmis sur le serveur avec quelques variables qui le décrivent: <?php echo "Pour le film $titre j'ai recu le fichier suivant :<P>\n"; echo "<B>Nom du fichier client :<B>$affiche_name<BR>\n"; echo "<B>Nom du fichier sur le serveur :<B>$affiche<BR>\n"; echo "<B>Taille du fichier :<B>$affiche_size<BR>\n"; echo "<B>Type du fichier :<B>$affiche_type<BR>\n"; // Copie du fichier temporaire copy($affiche, "./MonAffiche");?>

Autres variables utiles Infos. sur le client : $REMOTE_HOST : nom de la machine client $REMOTE_ADDR : adresse IP de la machine client $REMOTE_USER : nom du client après identification $HTTP_ACCEPT : liste des types MIME acceptés par le client $HTTP_USER_AGENT : nom du navigateur