420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1
PHP ? Acronyme de : PHP: Hypertext Preprocessor Script exécuté sur le serveur Web Open Source Référence : 2
Interaction client/serveur 3 Fichier HTML + PHP HTML Serveur Web traite le script PHP
Les tags PHP 2 types Normal Abrégé (il n’est pas conseillé de les utiliser) ○ Ce n’est pas tous les serveurs qui les acceptent ○ Entre en conflit avec l’entête XML 4
Exemple 1 Faire un fichier info.php Ajouter dans le fichier : <?php phpinfo(); ?> 5
Exemple 2 Exemple de PHP <?php echo "Hello World !" ; ?> 6
echo Permet d’écrire dans le fichier envoyé au client Exemple : ○ Soit la variable $str = "Allo"; ○ echo "$str";// Affiche : allo ○ echo "$str toi", " et moi";// Affiche: Allo toi et moi 7
Les commentaires Une ligne // ceci est un commentaire # ceci est un autre commentaire Plusieurs lignes /* Ceci est un commentaire de plusieurs lignes */ 8
Les variables Sensible à la case Nom : $ suivit de lettres, chiffres et _ Le type s'ajuste au contenu de la variable Booléen $var = TrUe; //pas sensible à la case! Texte $var = "Montant de 100\$ Can"; 9
Variables, chaînes de caractères et concaténation On peut mélanger les variables et les chaines de caractères $var1 = 33.33; echo "Montant: ", $var1; echo "Montant: $var1"; echo "Montant: ".$var1; ○ Le point "." est l'opérateur de concaténation Pour accéder à un caractère: $var = "Coucou"; echo $var1{2}; //depuis php5 echo $var1[2]; //php4 et avant Pour imprimer un caractère spécial echo chr(125); //caractère ASCII
Types de données Fonction gettype(nom) Connaître le type d'une variable $test = 5; echo gettype( $test ); // integer settype(variable, type) Modifier le type d'une variable. $test = 8.54; settype($test, integer); //$test<=8 Transtypage $test1 = 8.5; $test2 = (int) $test1; 11
Les opérateurs Arithmétiques =, +=, ++, ….. De chaîne de caractères.,.= ○ $var = "Roger"."Rabbit"; ○ $var.= " est enseignant"; Comparaison = =, !=. … === //égal et de même type Logique && (ou and), || (ou or), !, xor ○ xor : si l'un ou l'autre est vrai => true ○ xor: si les deux sont faux, ou sont vrai => false 12
Les constantes Utiliser la fonction define( ) Syntaxe : define(nom constante, valeur) Exemple : define("UTIL", "Gérald"); define("CONSTANTE", 5); ○ Nom des constantes, en majuscule par convention. echo "Texte avant ". CONSTANTE." Texte après"; ○ Il faut entourer la constante de "..", sinon elle s'affichera comme du texte. 13
Les conditions if {…} elseif {…} else {…} switch( ) { case … : … break; default:…} Opérateur ? (expression)? expression si vraie: expression si faux; $Nom = "Roger"; echo ($Nom==‘Roger')?'o':'n'; 14
Les conditions (suite) Exemple : <?php if (1 == 2) { ?> On est ici ! <?php } else { ?> On est là ! <?php } ?> 15
Comparaison de chaînes de caractères Préférable de pas utiliser == Il faut utiliser la fonction strcmp() Exemple : If (strcmp($var1, "Test") == 0) { // $var1 est égal à Test } 16
Les boucles while (…){…} do {…} while(…); for ($i=0 ; $i<10; $i++{…} foreach $tableau = array ("un", "deux", "trois"); foreach($tableau as $chiffre){ echo "le chiffre $chiffre"; } foreach($tableau as $cle=>$chiffre){ echo "le chiffre".($cle+1)." s'écrit $chiffre "; } 17
Les inclusions de fichiers Permet d’inclure des fichiers externes include("header.php") ○ Inclus le fichier header.php. Si ce fichier est déjà inclus, alors il y a un message d’erreur ○ Si le fichier n’existe pas, alors il y a un ‘warning’ affiché include_once("header.php") ○ Comme le include, à la différence que si le fichier a déjà été ajouté, il ne l’ajoutera pas de nouveau 18
Les inclusions de fichiers (suite) require("header.php") ○ Inclus le fichier header.php. Si ce fichier est déjà inclus, alors il y a un message d’erreur ○ Si le fichier n’existe pas, alors une erreur fatale est déclenchée require_once("header.php") ○ Comme le require, à la différence que si le fichier a déjà été ajouté, il ne l’ajoutera pas de nouveau 19
Les inclusions de fichiers (suite) Les inclusions sont très pratiques pour : Ne pas dupliquer de code HTML Réutiliser des fonctions PHP déjà écrite dans d’autres fichiers 20
Les formulaires 21 <?php echo "Bienvenue ".$_POST["nom"]." "; echo "votre adresse est ".$_POST["adresse"]." "; ?> Page formulaire confirm.php
Accès aux champs d’un formulaire Si le formulaire est envoyé avec la méthode « get », alors on utilise : $_GET["nom"] Si la méthode d’envoi est « post », alors $_POST["nom"] 22
La super-globale $_SERVER $_SERVER est un tableau contenant des informations comme les en-têtes, dossiers et chemins du script. Les entrées de ce tableau sont créées par le serveur web. $_SERVER['HTTP_USER_AGENT'] Nom et version du fureteur Ex : Mozilla/4.6 $_SERVER['REMOTE_ADDR'] Adresse IP du client $_SERVER['REQUEST_METHOD'] "GET" ou "POST" $_SERVER['QUERY_STRING'] Pour un requête GET la string CGI Ex.: nom=Daniel&prenom=Bourry 23
Opérations sur des fichiers Lecture d’un fichier // Nom du fichier $nomFichier = “acme.txt"; // Ouverture du fichier en mode lecture $fichier = fopen($nomFichier, 'r'); // Lecture du fichier dans une variable $variable = fread($fichier, filesize($nomFichier)); // Fermeture du fichier fclose($fichier); 24
Opérations sur des fichiers (suite) Écriture d’un fichier // Nom du fichier $nomFichier = “acme.txt"; // Ouverture du fichier en mode écriture. Si erreur, arrêt du script PHP $fichier = fopen($ nomFichier, 'w') or die("can't open file"); // Écriture du texte $texteAEcrire = “Eddie Valliant\n"; fwrite($fichier, $ texteAEcrire); // Écriture d’un autre texte $texteAEcrire = “Roger Rabbit\n"; fwrite($fichier, $texteAEcrire); // Fermeture du fichier fclose($fichier ); 25
Fonction file_get_contents() Lit un URL/fichier et le place dans une variable Exemple <?php $page = file_get_contents(' echo $page; ?> 26
Les cookies <?php setcookie("NomToon", "Roger", time()+3600); ?> … Comme pour les sessions, il est très important de placer le cookie avant tout autre chose et ne pas laisser d'espace avant la balise <?php et le début du fichier. Warning: Cannot modify header information - headers already sent 27
Lecture d’un cookie PHP place les cookies reçus dans un tableau appelé $_COOKIE[] Ex.: $_COOKIE["nom"] Pour vérifier si une variable globale existe utiliser la fonction isset ( ) Syntaxe : int isset(mixed var) Retourne true si la variable existe. Exemple : if(isset($_COOKIE["usager"]))… 28