PHP INTRODUCTION STEFAN DU CHÂTEAU 08/08/2015



Documents pareils
PHP. PHP et bases de données

Programmation Web. Madalina Croitoru IUT Montpellier

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

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)

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

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

Mysql avec EasyPhp. 1 er mars 2006

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

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

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

Pratique et administration des systèmes

Introduction à MATLAB R

Programmer en JAVA. par Tama

Stockage du fichier dans une table mysql:

Introduction au langage C

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

PHP 5.4 Développez un site web dynamique et interactif

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

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

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

Performance web. Mesurer. Analyser. Optimiser. Benjamin Lampérier - Benoît Goyheneche. RMLL Beauvais. 8 Juillet 2015

Projet de programmation (IK3) : TP n 1 Correction

TP Service HTTP Serveur Apache Linux Debian

Initiation à la programmation en Python

as Architecture des Systèmes d Information


Algorithmique et Programmation, IMA

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu.

SUPPORT DE COURS. Langage C

laposte.net) Ministère de l'éducation nationale Atelier sécurité Rabat RALL 2007

Dans le chapitre 1, nous associions aux fichiers ouverts des descripteurs de fichiers par lesquels nous accédions aux fichiers.

CREATION WEB DYNAMIQUE

TP JAVASCRIPT OMI4 TP5 SRC

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

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

Programme Compte bancaire (code)

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

Introduction à JDBC. Accès aux bases de données en Java

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

Programmation C++ (débutant)/instructions for, while et do...while

Langage Java. Classe de première SI

STAGE IREM 0- Premiers pas en Python

Module http MMS AllMySMS.com Manuel d intégration

Notions fondamentales du langage C# Version 1.0

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

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

Cours 14 Les fichiers

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

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

Paginer les données côté serveur, mettre en cache côté client

PHP 4 PARTIE : BASE DE DONNEES

Formation : WEbMaster

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

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

Modernisation, développement d applications et DB2 sous IBM i Technologies, outils et nouveautés Volubis.fr

Conception de circuits numériques et architecture des ordinateurs

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

A DESTINATION DES SERVICES TIERS. Editeurs d applications et ressources pédagogiques connectées à l ENT

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

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Attaques de type. Brandon Petty

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)

1. Structure d'un programme FORTRAN 95

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

Procédures Stockées WAVESOFT ws_sp_getidtable Exemple : ws_sp_getnextsouche Exemple :... 12

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

Diffuser un contenu sur Internet : notions de base... 13

OPTENET DCAgent Manuel d'utilisateur

ALGORITHMIQUE ET PROGRAMMATION En C

Attaques applicatives

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

Aspects techniques : guide d interfaçage SSO

Chapitre 2 Devine mon nombre!

TP réseaux 4 : Installation et configuration d'un serveur Web Apache

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

E-TRANSACTIONS. Guide du programmeur API Plug-in. Version 1.1

Cours Informatique Master STEP

Configurer la supervision pour une base MS SQL Server Viadéis Services

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

Introduction à l algorithmique et à la programmation M1102 CM n 3

Documentation CAS à destination des éditeurs

Java Licence Professionnelle CISII,

Installation d un hébergement Web à domicile

Le stockage local de données en HTML5

4. Groupement d objets

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

INF 321 : mémento de la syntaxe de Java

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

Programmation système I Les entrées/sorties

ISPConfig Documentation

TP 1. Prise en main du langage Python

Programmation Classique en langage C

[[CREATION D UNE APPLICATION DE MAINTENANCE DE BASE DE DONNEES]]

CASE-LINUX MAIL - ROUNDCUBE

Compilation (INF 564)

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

Projet ISN - dossier réalisé par Randrianarimanana Stéphanie. Titre du projet : Site de rencontre. le nom de notre site de rencontre : Linkymeet

Transcription:

PHP INTRODUCTION STEFAN DU CHÂTEAU 08/08/2015

GENERALITEES LANGUAGE INTERPRETE LANGUAGE INTERPRETE DU COTE DU SERVEUR LANGUAGE TRES UTILISE DANS LES TECHNOLOGIES DU WEB UTILISATION AVEC HTML, JAVASCRIPT, CSS LES DOCUMENTS PHP POSSEDENT UNE EXTENSTION PHP document.php

HTML ET PHP Un documents PHP le plus simple contient et revoie du HTML. (renommer index.html en index.php) <?php indique à l interpréteur php le début de la zone qui devra contenir les instructions écrites en PHP?> indique à l interpréteur php la fin de la zone qui contient les instructions écrites en PHP. Un programme très simple écrit en PHP: <?php echo "ceci est un programme PHP";?>

SYNTAXE PHP Commentaire //ceci est un commentaire d'une ligne /*ceci est le début d'un commentaire pour une ou plusieurs lignes. Ce commentaire se termine par : */

SYNTAXE PHP ; (le point virgule) est utilisé pour terminer une ligne d'instruction $X = 1; Variables Le nom des variables commence avec le symbole $ Variable chaine de caractères $NomUtilisateur="Dupond"; echo $NomUtilisateur; La chaine de caractère doit être entre guillemet

SYNTAXE PHP Variable numériques $Compteur=1; echo $Compteur; $Compteur=$Compteur+1; echo $Compteur; $Compteur=$Compteur+12,5;

SYNTAXE PHP Tables Permettent de stocker plusieurs données. La déclaration d'une table : array(); $matable=array('paul','pierre','anne','marie'); Déclaration d'une table contenant quatre chaines de caractères. Le premier élément d'une table possède l'indice zéro echo $matable[2]; //affiche Anne

SYNTAXE PHP Tables à plusieurs dimensions $users=array(array('paul','paul@tlse2.fr','toulouse'), array('pierre','pierre@montp3.fr','montpellier'), array('anne','anne@tlse2.fr','toulouse')); $users[1][2]; //affiche Montpellier

SYNTAXE PHP Les operateurs operateur description exemple + addition $i + 1 - soustraction $i - 2 * multiplication $i * 3 / division $i / 4 % modulo $i % 5 ++ incrémentation ++$i -- décrémentation --$i

SYNTAXE PHP Les operateurs operateur exemple équivalence = $i = 1 $i = 1 += $i += 1 $i = $i + 1 -= $i -= 1 $i = $i - 1 *= $i *= 3 $i = $i * 3 /= $i /= 5 $i = $i / 5.= $i.= $j $i = $i. $j %= $i %= 4 $i = $i % 4

SYNTAXE PHP Les operateurs operateur description exemple == égalité $i == 1!= diffèrent de $i!= 2 > supérieur à $i > 3 < inferieur à $i < 4 >= supérieur ou égale $i >= 5 <= inférieur ou égale $i <= 5

SYNTAXE PHP Les operateurs operateur description exemple && et $i == 1 && $j==3 and et (priorité inférieur) $i == 1 and $j==3 ii ou $i == 1 ii $j==3 or ou (priorité inférieur) $i == 1 or $j==3! négation! ($i == $j) xor Alternative exclusive $i xor $j xor retourne la valeur TRUE si l'un des composant est TRUE FALSE si les deux composants sont TRUE ou les deux sont FALSE

SYNTAXE PHP Initialisation des variables $mavar += 4; $mavar -= 4; ++$i; --$i; if (++$i == 10) echo $i; //d'abord augmentation de la variable $i, ensuite vérification si elle est égale à 10

SYNTAXE PHP Concaténation $partiemessage="langage PHP"; $monmessage = "Introduction"; echo $monmessage. " au ". $partiemessage; Différences entre " et ' $mavar="utilisation de simple ou double guillemet"; echo "utilisation de guillemet $mavar"; echo 'utilisation de simple guillemet $mavar';

SYNTAXE PHP Les caractères d'échappements $mavar='utilisation de caractère ' dans une chaine'; Le caractère ' est interprété par PHP comme la fin de la chaine. $mavar='utilisation de caractère \' dans une chaine'; Même chose pour le caractère " Tester l'utilisation des \t \n \r dans une chaine délimité par double et simple guillemet.

SYNTAXE PHP Types des données PHP un langage faiblement typé La détection automatique de type de donnée è il n'est pas indispensable de déclarer de type de variables. <?php $mavar=123*321; //le contenu numérique echo substr($mavar,3,1); //la fonction substr transforme automatiquement en chaine de caractère?>

SYNTAXE PHP Les constantes Comme les variables les constantes sont utilisées pour entreposer des valeurs pour une utilisation ultérieure. A la différences des variables, le contenue des constantes ne changera pas pendant le déroulement du programme. define("root_location","/usr/local/www/"); $repertoire = ROOT_LOCATION;

SYNTAXE PHP Les fonctions Les fonctions sert à délimiter/créer des parties du code pour réaliser des taches particulières. Les fonctions peuvent contenir des paramètres dont dépond le déroulement de la fonction. Les fonction peuvent retourner des valeurs.

SYNTAXE PHP Les fonctions <?php... $retfonction=ma_fonction($var1,$var2 ); function ma_fonction($param1,$param2 ){ les instructions de la fonctions; return valeur; }?>

SYNTAXE PHP La visibilité des variables Variables locales sont déclarées et visibles uniquement à l'intérieur d'une fonction. <?php $retfonction=ma_fonction($var1,$var2); function ma_fonction($param1,$param2){ les instructions de la fonctions; return valeur; } //les variables $param1,$param2 sont visibles uniquement à l'intérieur de la fonction ma_fonction?>

SYNTAXE PHP La visibilité des variables Variables globales sont visibles dans la totalité du code. La déclaration d'une variable globale se fait à l'aide de mots clé global. global $ma_variable; Les variables static est visible à l'intérieur d'une fonction mais à la différence des variables locales, la valeur de la variable static n'est pas initialisée avec chaque appel de la fonction. <?php $retfonction=ma_fonction($var1,$var2); function conteur(){ static $count=0; echo $count; $count++; }?>

SYNTAXE PHP Variables globales prédéfinis Nom de la variable $GLOBALS $_SERVER $_GET $_POST $_FILES $_COOKIE $_SESSION $_REQUEST $_ENV contenu Toutes les variables globales Entêtes, chemins, emplacement des scripts Variables transmises avec méthodes HTTP GET Variables transmises avec méthodes HTTP POST Les fichiers transmis avec la méthode HTTP POST Variables transmises a l'aide des cookies Variables de session Le contenus transmis à travers les navigateurs ($_GET, $_POST, $_COOKIE) Variables d'environnement

SYNTAXE PHP Variables globales prédéfinis $came_from=$_server['http_referer']; L'adresse de la page (si elle existe) qui a conduit le client à la page courante. 'SERVER_NAME' Le nom du serveur hôte qui exécute le script suivant

EXPRESSIONS Expression logiques (TRUE, FALSE) echo "a:[". (20 > 9)."]<br>"; echo "b:[". (5 == 9)."]<br>";

Priorités des operateurs () Parenthèse ++ -- Incrémentation/ décrémentation! Logique * / % Arithmétique + -. Arithmétique avec chaine de caractères << >> Bits < <= > >= ==!= Comparaison & Bits && Logiques = += -= *= /=.= %= Associations

Expression conditionnelles Expression conditionnelles permettent de contrôler/ modifier le déroulement de programme. Instruction if Instruction else Instruction elseif Instruction switch

Expression conditionnelles <?php if ($id_user=="admin") { Exécution d'instructions }?>

Expression conditionnelles <?php if ($id_user=="admin") { Exécution d'instructions } else { Exécution d'instructions }?>

<?php if ($id_user=="admin") { Exécution d'instructions } elseif ($id_user== "super") { Exécution d'instructions } else { Exécution d'instructions }?> Expression conditionnelles

Expression conditionnelles <?php switch ($user) { case "root": Exécution d'instructions break; case "admin": Exécution d'instructions break; case "autres": Exécution d'instructions break; default: Exécution d'instructions break; }?>

OPERATEUR? <?php echo $carburant<= 5? "Ajoutez le carburant" : "Vous avez suffisamment de carburant";?> Si la variable $carburant contient la valeur inferieur ou égale à 5 alors l'instruction echo affiche Ajoutez le carburant si non Vous avez suffisamment de carburant est affiché <?php $plain = $carburant <= 50? FALSE : TRUE;?>

Boucles Boucle while <?php $cont=1; while ($cont <= 10) { echo $cont. "<br>"; $cont++; }?>

Boucles Boucle do while <?php $cont=1; do { echo $cont. "<br>"; $cont++; }while ($cont <= 10);?>

Boucles Boucle for <?php $cont=1; for ($cont =1; $cont<=10; $cont++) { echo $cont. "<br>"; }?> L'instruction break permet d'interrompre l'exécution d'une boucle L'instruction continue permet d'interrompre une itération et de passer à la suivante

Include Fichiers

importations de fichiers / code externe Les fonctions include() et require() Même utilisation sauf en cas d erreur: include() renverra une erreur de type WARNING require() affichera une erreur de type FATAL un seul paramètre de type chaîne de caractères, le chemin qui mène au fichier à importer <?php // Importations avec require() require('../dossier/fichier.php'); // Importations avec include() include('../dossier/fichier.php');?> require_once() include_once()

Gestion des fichiers Vérification de l existance d un fichier file_exists("file.txt" ) Si existe => TRUE Si n existe pas => FALSE Création/ouverture d un fichier $f=fopen("testfile.txt", "w"); Ecriture dans un fichiers fwrite($f,$texte) Fermeture d'un fichier fclose($f) Lecture fichier string fgets ( resource $handle [, int $length ] ) string fread ( resource $handle [, int $length ] ) Autres : copy("testfile.txt","testfile2.txt"); rename("fic1.txt","fic2.txt"); unlink("fic1.txt"); int fseek ( resource $handle, int $offset [, int $whence = SEEK_SET ] ) SEEK_SET : la position finale vaut offset octets. SEEK_CUR : la position finale sera la position courante, ajoutée à offset octets. SEEK_END : la position finale vaut la position courante par rapport à la fin du fichier, ajoutée de offset octets.

Gestion Fichiers <? $f=fopen("testfile.txt", "w") or die("ouverture impossible"); //Here Document, aussi appelé heredoc déclarer une chaîne de caractères dans les script comme php $texte=<<<_end Ligne 1 Ligne 2 Ligne3 _END; fwrite($f,$texte) or die("écriture impossible"); fclose($f)?>

Mode fichiers mode Description 'r' Ouvre en lecture seule, et place le pointeur de fichier au début du fichier. 'r+' 'w' Ouvre en lecture et écriture, et place le pointeur de fichier au début du fichier. Ouvre en écriture seule ; place le pointeur de fichier au début du fichier et réduit la taille du fichier à 0. Si le fichier n'existe pas, on tente de le créer. 'w+' Ouvre en lecture et écriture ; place le pointeur de fichier au début du fichier et réduit la taille du fichier à 0. Si le fichier n'existe pas, on tente de le créer. 'a' Ouvre en écriture seule ; place le pointeur de fichier à la fin du fichier. Si le fichier n'existe pas, on tente de le créer. Dans ce mode, la fonction fseek() n'affecte que la position de lecture, les écritures surviennent toujours. 'a+' Ouvre en lecture et écriture ; place le pointeur de fichier à la fin du fichier. Si le fichier n'existe pas, on tente de le créer. Dans ce mode, la fonction fseek() n'affecte que la position de lecture, les écritures surviennent toujours.

Lecture fichier string fgets ( resource $handle [, int $length ] ) string fread ( resource $handle [, int $length ] ) <?php $handle = fopen("/tmp/inputfile.txt", "r"); if ($handle) { while (($buffer = fgets($handle, 4096))!= false) { echo $buffer; } if (!feof($handle)) { echo "Erreur: fgets() a échoué\n"; } fclose($handle); } $contents = fread($handle, filesize($filename));?>

MySQL et PHP Le processus de communication PHP/MySQL 1. Connexion MySQL et choix de la base 2. Création d'une interrogation 3. Exécution de l'interrogation 4. Récupération des résultats 5. Répéter les étapes 2 à 4 jusqu'a obtention des résultats souhaités 6. Déconnexion de la base MySQL

Le processus de communication PHP/MySQL <?php //Connexion MySQL et choix de la base $conn = new mysqli("localhost", "user", "password", "database"); if ($conn->connect_error) die ($conn->connect_error) //création d'un nouveau objet $conn à travers l'appel de la méthode mysqli //gestion erreur la propriété connect_error // -> permet d'accéder aux propriétés ou fonction d'un objet //construction d'interrogation $chaine_interrogation = "SELECT * FROM nom_table"; //Exécution de l'interrogation //la méthode query de l'objet $conn retourne le résultat dans l'objet $res $res = $conn->query($ chaine_interrogation); //si $res est FALSE alors un problème if (!$res) die ($conn->connect_error) // si différent de FALSE on accédera aux données contenus dans objet $res?>

Le processus de communication PHP/MySQL <?php // si différent de FALSE on accédera aux données contenus dans objet $res //Récupération des résultats $rows=$res->num_rows; // num_rows nombre des résultats retournés for ($j = 0; $j < $rows; ++$j){ $res->data_seek($j); // data_seek méthode permet de se positionner sur une ligne des résultats //fetch_array méthode retourne la ligne entière des données sous d'un tableau //fetch_array peut retourner 3 types différents de tableau //MYSQLI_NUM tableau numérique, on accède à l'aide de index numérique //MYSQLI_ASSOC on accède à l'aide de nom des colonnes (auteur, titre, etc ) //MYSQLI_ASSOC les deux, accès numérique et nom de colonnes (auteur, titre, etc ) $row=$res-> fetch_array(mysqli_assoc) echo 'Auteur: '. $row['auteur'].'<br>'; echo Titre: '. $ row ['titre'].'<br>'; } $res->close(); $conn->close();?>

Fichier login login.php <?php?> $hn = "localhost"; $db = "publication"; $un = "user_name"; $pw = "mot_passe";