coincoins

WebDev PHP

CoursUn peu de théorie

Pré requis impératif

Le PHP sert à produire du HTML. Il faut impérativement avoir des bases en HTML, le CSS est un plus.

Pour la partie BDD de ce cours, il faut avoir vu le SQL pour lire et écrire des données avec des requêtes.

Autres langages :

Langage de programmation vus :

  • 1SIO & maths : DOS, Python, mathlab, php, javascript (la star), C
  • 1SIO ou autoformation : php, java, c++, C#
  • 2SISR : powershell, shell/Bash
  • Ceux qu'on oublie : B, D, Ada, VBa (VB for applications), perl, ruby, ajax,
  • Et les vieux (presque obsolètes) : prolog, cobol, fortran, basic, visual basic, RPG (ibm AS-400)

Mise en forme : HTML, css, XML, json
Gestion des données et BDD : SQL

1. Préparation (rappels)

C'est le moment d'aller (re)voir le doc sur l'architecture.

Mais en bref :

Pour programmer en PHP, il nous faut un éditeur de texte, le même que celui utilisé pour HTML, pas besoin de quelque chose de sophistiqué et cher ou compliqué.

Nous avons aussi besoin d'un serveur web (là il faut vraiment faire un tour dans l'architecture).

Eventuellement, nous pourrons utiliser un outil de conception de BDD comme mysqlWorkbench à utiliser dans les chapitres avec BDD.

Remarque sur le nommage des variables, des fichiers, etc.

  • Les noms de fichiers, variables ou fonctions ne contiendront aucun caractère spécial, accentué ou espace (c.à.d. : pas de &, ç, - (tiret 6), =, é, è, …). On évitera de commencer les noms par un chiffre (oui = abcxyz.txt, non = 123xyz.txt).
  • Les noms des fichiers et répertoire seront significatifs :
    • Exemples NON : accueil.php, page01.php, page-02.php
    • Exemples OUI : index.php, mentionsLegales.php, enregistrement.php, …
  • On pourra utiliser des majuscules (preféré) ou le caractère _ (=underscore, tiret bas 8 ; éventuellement) pour séparer les mots dans le nom d'un fichier :
    • Exemples NON : mentionslegales.html, listedesarticles.php, accueil-gestion production.php, …
    • Exemples OUI : mentionsLegales.php, listeDesArticles.php, index_gestionProduction.php, …

2. PHP, c'est quoi déjà ?

Le PHP est un langage de programmation comme un autre

Il est exécuté sur le serveur et dont l'objet est de produire du code HTML dynamique, envoyé au navigateur du client.
Il est écrit dans des fichiers dont l'extension est .php .

Il contient les structures de contrôles classiques d'un langage :

  • Alternatives : if...else, switch ... case
  • Boucles : for, while et foreach (pas de until)
  • Classes objet, pas aussi puissantes qu'en Java ou C++ et C#

De même, la syntaxe est assez classique mais :

  • Les variables commencent par $ et ne sont pas typées,
  • Les lignes finissent par un ; (point-virgule),
  • Les commentaires commencent par // (1 seule ligne) ou sont encadrés par /* et */ si plusieurs lignes,
  • Les chaînes de caractères sont entourées de guillemets doubles " ou simples '

On peut définir ses propres fonctions


Et c'est un langage open-source !

RAPPEL : il sert à produire du code HTML

Le code PHP contient beaucoup de mot-clés qui sont autant d'instructions de ce langage.
Nous en verrons quelques uns (seulement) dans ce cours. Seule l'exercice et l'expérience vous permettra d'acquérir un niveau certain.

C'est tout

1. Avant de commencer
Quelques règles de base sur la syntaxe

1. Intégrer du PHP dans le code HTML

Le sybmole <? est une ouverture de balise qui indique au navigateur qu'on va exécuter un langage.
La balise de code se termine par ?>
ce langage peut être php, asp (µ$), ...
en PHP, nous utiliserons donc : <?php code php <?php

Cependant, Si on n'a besoin d'afficher qu'une variable, on va pouvoir faire un raccouci.

Effectivement, ce code est plutôt long : <?php echo "$prenom" ?>

Il est plus simple d'écrire ceci, non ? : <?= $prenom ?>

Exemple de code :

<?php // début PHP
$prenom="Alexandre";
$nom="Legrand";
?>
<!-- début html -->
Bonjour <?= $prenom ?><?= $nom ?>

On voit bien, ci-dessus, le début et la fin du script php dans les 4 premières lignes et le php intégré au code html pour l'affichage des données.

2. Le cycle d'une page

En PHP, chaque page a (en moyenne) quatres phases principales bien distinctes :

  1. Récupération des paramètres,
  2. Contrôle des données (paramètres ou données extraites de la DBB),
  3. Exécution des traitements métiers et de mise en forme des données,
  4. Production de l'affichage résultant en HTML avec des commandes echo

Chaque page php est un script autonome dont la finalité est l'envoi d'une image écran (en html) au navigateur du client

Exemple codes du TP : Un formulaire en html :

Source formulaire.html (html5)
Un petit formulaire ?<br>
<form action="traitement.php">
    Donnez votre nom : <input type="text" name="nom"><br>
    Et votre prénom :  <input type="text" name="prenom"><br>
    <input type=submit name=go>
</form>

Et la page de traitement en php :

Source traitement.php (php)
<?php
// 1) récupération des paramètres
	$parm_Nom    =$_GET['nom'];    
	$parm_Prenom =$_GET['prenom']; 
 
// pas de données de travail ni de traitement des données ici
 
// 4) construction de l'affichage
	echo "bonjour ".$prenom." ".$nom;  
?>

2. Exemples simples
Exemples simples pour servir de kit de survie ...

Code Simple

Source page2.php (php)
<?php
	// initialisation des données
	date_default_timezone_set("Europe/Paris"); // pour ne pas avoir de pbm de fuseau horaire
	$aujourdhui=date("d/m/Y");
 
	// affichage
	echo "Quel jour sommes nous ?<br>";
	echo "<br>";
	echo "Nous sommes le ".$aujourdhui;
?>

Method or not Method

Faire un script, c'est bien mais utiliser des paramètres, c'est mieux

Dans l'exemple vu plus haut, on présente deux pages : la première, le formulaire, en HTML, la seconde, le traitement, en PHP.

le formulaire sert à la saisie des données

On y précise le nom de la page de traitement dans l'attribut "action" du formulaire.
Les valeur saisies seront transmises à la page de traitement dans un tableau dont le nom est donné par le système.

Ici, ce sera $_GET.
Les paramètres seront écrits dans l'URL de la page de traitement : traitement.php?nom=Krock&prenom=Odile
Le ? marque le début des paramètres, le & sépare les paramètres.

Pour des raisons de sécurité (login, password, ...), on va vouloir masquer ces paramètres.
Pour cela, nous allons ajouter l'attribut method="POST" dans le formulaire et nous allons utiliser $_POST dans le script de traitement :

Le formulaire html :

Source formulaire2.html (html5)
Formulaire ?<br>
<form action="traitement.php" method='POST'>
    Donnez votre nom : <input type="text" name="nom"><br>
    Et votre prénom :  <input type="text" name="prenom"><br>
    <input type=submit name=go>
</form>

Et la page de traitement en php :

Source traitement2.php (php)
<?php
	$parm_Nom    =$_POST['nom'];    
	$parm_Prenom =$_POST['prenom']; 
	echo "bonjour ".$prenom." ".$nom;  
?>

3. Liens sympa à voir pour comprendre et aller plus loin

La théorie de base, c'est fini, voyons la suite.

Une liste de sites pour vous aider … :