Fiche de révision : Bases de PHP et applications web

Plan du Cours

  1. Fonctionnement du Web et syntaxe PHP
  2. Variables, types et opérateurs
  3. Conditions et boucles
  4. Fonctions et portée des variables
  5. Chaînes, nombres, dates et tableaux
  6. Formulaires et validation des données
  7. Sécurité des applications PHP
  8. Fichiers, sessions et cookies
  9. Base de données avec PDO
  10. Exceptions, débogage et projet

1. Fonctionnement du Web et syntaxe PHP

★ À maîtriser

  • PHP s’exécute principalement côté serveur et renvoie généralement une réponse HTML au navigateur, qui ne reçoit pas directement le code source PHP.

  • Le cycle d’une requête web comprend la demande d’une URL par le navigateur, sa transmission à PHP par le serveur web, l’exécution du programme et la production d’une réponse affichée par le navigateur.

Compléments

  • La commande php -S localhost:8000 lance le serveur intégré pour les essais locaux, mais ce serveur est destiné au développement et non à l’hébergement public.

📌 Dans un fichier PHP pur, la balise de fermeture est généralement omise pour éviter l’envoi accidentel d’espaces ou de retours à la ligne.

Astuce mémo

Requête du navigateur → exécution PHP → réponse affichée

2. Variables, types et opérateurs

Notions clés & Définitions

  • Variable PHP : Une variable PHP stocke une valeur, son nom commence par $ puis par une lettre ou un souligné, et il ne peut pas commencer par un chiffre.

★ À maîtriser

  • Les types courants en PHP sont :
    • string pour le texte
    • int pour les entiers
    • float pour les nombres décimaux
    • bool pour les valeurs logiques
    • null pour l’absence de valeur
    • array pour les collections de valeurs
    • object pour les instances de classes

📌 L’opérateur == compare les valeurs de façon souple, tandis que === exige la même valeur et le même type ; le cours recommande ===.

Compléments

📌 Les noms de variables sont sensibles à la casse : $nom et $Nom désignent deux variables différentes.

  • Les opérateurs logiques courants sont :
    • && pour ET
    • || pour OU
    • ! pour NON

📌 Une constante déclarée avec const ou define() ne s’écrit pas avec le préfixe $.

Astuce mémo

== compare les valeurs ; === compare valeur et type

3. Conditions et boucles

Notions clés & Définitions

  • Condition : Permet d’exécuter un bloc uniquement si une expression est vraie.

★ À maîtriser

📌 switch traite plusieurs cas et nécessite souvent break, tandis que match, disponible depuis PHP 8, renvoie une valeur, compare strictement et ne passe pas au cas suivant.

📌 for convient quand le nombre d’itérations est connu, while quand la répétition dépend d’une condition et foreach pour parcourir un tableau.

Compléments

📌 Une boucle doit avoir une condition susceptible de devenir fausse, sinon elle risque de devenir infinie.

📌 Dans une boucle, continue passe à l’itération suivante, tandis que break arrête la boucle.

Astuce mémo

for compte, while attend une condition, foreach parcourt un tableau

4. Fonctions et portée des variables

Notions clés & Définitions

  • Fonction : Une fonction regroupe du code réutilisable, peut recevoir des paramètres et peut renvoyer un résultat avec return.

★ À maîtriser

📌 Une variable définie à l’intérieur d’une fonction est locale ; il est préférable de transmettre les valeurs nécessaires en paramètres plutôt que de dépendre de variables globales.

Compléments

📌 Une fonction s’exécute lorsqu’elle est appelée, et les types des paramètres et du retour peuvent être déclarés pour améliorer la lisibilité.

  • Dans function calculerTTC(float $prix, float $taux = 0.20): float, le taux est facultatif et vaut 0.20 lorsqu’il n’est pas fourni.

5. Chaînes, nombres, dates et tableaux

★ À maîtriser

  • strlen() compte les octets d’une chaîne et non nécessairement ses caractères en UTF-8 ; mb_strlen() est adapté au texte UTF-8 si l’extension mbstring est disponible.

📌 Les indices d’un tableau numérique commencent généralement à 0, tandis qu’un tableau associatif utilise des clés nommées.

Compléments

  • explode() découpe une chaîne en tableau et implode() rassemble les éléments d’un tableau dans une chaîne.

  • Les fonctions numériques présentées sont :

    • abs()
    • round()
    • ceil()
    • floor()
    • min()
    • max()
    • random_int()

📌 sort() trie et réindexe le tableau reçu en le modifiant, contrairement aux fonctions qui renvoient un nouveau tableau sans modifier celui reçu.

6. Formulaires et validation des données

★ À maîtriser

  • GET place généralement les données du formulaire dans l’URL, tandis que POST les transmet dans le corps de la requête et ne chiffre pas les données à lui seul.

  • La validation côté serveur est obligatoire même si le formulaire HTML utilise l’attribut required.

  • La validation vérifie que les données respectent le format attendu, tandis que l’échappement protège leur contexte de sortie, notamment le HTML.

  • Pour afficher une entrée utilisateur dans du HTML, il faut échapper les caractères spéciaux avec htmlspecialchars().

Compléments

📌 Le nom de l’attribut name d’un champ correspond à la clé utilisée pour récupérer sa valeur dans $$_POST ou $$_GET.

Astuce mémo

La validation vérifie l’entrée ; l’échappement protège la sortie HTML

7. Sécurité des applications PHP

★ À maîtriser

📌 Les valeurs utilisateur ne doivent pas être concaténées dans une requête SQL ; il faut les transmettre séparément à une requête préparée.

📌 Chaque requête sensible doit vérifier côté serveur l’identité, les permissions et la propriété de la ressource ; masquer un bouton ne protège pas l’action.

  • Pour protéger une action qui modifie des données contre les requêtes forgées, il faut utiliser un jeton CSRF lié à la session et le vérifier côté serveur.

📌 Les mots de passe ne doivent pas être stockés en clair ni avec MD5 ou SHA-1 ; PHP fournit password_hash() pour le hachage et password_verify() pour la vérification.

Compléments

📌 En production, les erreurs détaillées ne doivent pas être affichées aux visiteurs et les journaux doivent être conservés dans un emplacement protégé.

8. Fichiers, sessions et cookies

★ À maîtriser

  • require provoque une erreur bloquante si le fichier est introuvable, tandis que include émet un avertissement et permet au script de continuer.

  • session_start() doit être appelé avant toute sortie HTML, et l’identifiant de session doit être régénéré après une connexion réussie avec session_regenerate_id(true).

  • setcookie() doit être appelé avant l’envoi du contenu, et un cookie est renvoyé par le navigateur à chaque requête concernée.

Compléments

  • require_once évite de charger plusieurs fois le même fichier et __DIR__ désigne le dossier du fichier courant.

  • Les options de sécurité citées pour les cookies de session sont :

    • Secure avec HTTPS
    • HttpOnly
    • SameSite

📌 Un cookie n’est pas un emplacement fiable pour stocker un secret ou une autorisation.

Astuce mémo

Une session conserve des données côté serveur ; un cookie est renvoyé par le navigateur

9. Base de données avec PDO

Notions clés & Définitions

  • PDO : PDO fournit une interface PHP pour communiquer avec une base de données ; MySQL est un système de gestion de base de données relationnelle et SQL sert à créer, lire, modifier et supprimer des données.

★ À maîtriser

  • Avec PDO, une insertion sécurisée passe par la préparation de la requête, puis par l’exécution en transmettant séparément les valeurs dans un tableau de paramètres.

📌 Les paramètres d’une requête préparée protègent les valeurs, mais les noms de colonnes et de tables ne peuvent pas être paramétrés comme des valeurs ; leur choix dynamique doit passer par une liste blanche.

Compléments

  • La connexion PDO peut être configurée pour lever des exceptions avec PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION et pour récupérer les résultats sous forme associative avec PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC.

  • Les opérations SQL présentées sont :

    • INSERT pour insérer
    • SELECT pour lire
    • UPDATE pour modifier
    • DELETE pour supprimer

📌 Les identifiants de base de données doivent être placés dans une configuration non publique ou des variables d’environnement, et le compte SQL de production doit avoir des permissions minimales.

Astuce mémo

Préparer la requête → transmettre les paramètres séparément

10. Exceptions, débogage et projet

★ À maîtriser

📌 Un bloc try permet de traiter une exception dans catch, mais les détails techniques ne doivent pas être affichés aux visiteurs en production.

  • Le mini-projet de liste de contacts consiste à créer une table, recevoir un nom et un e-mail, valider les données, puis les enregistrer avec une requête PDO préparée.

Compléments

📌 Une fonction peut lever une exception avec throw, par exemple InvalidArgumentException lorsque le diviseur vaut zéro.

  • var_dump() inspecte le type et la valeur d’une variable, print_r() affiche un tableau de façon lisible et error_log() écrit un événement dans les journaux.

  • Dans le mini-projet, le nom est limité à **100** caractères et le champ email est validé comme adresse e-mail avant l’insertion.

Tableaux de synthèse

Méthodes de boucle

BoucleUsage indiquéParticularité
forNombre d’itérations connuUtilise initialisation, condition et évolution
whileRépétition dépendant d’une conditionRépète tant que la condition est vraie
do...whileRépétition dépendant d’une conditionExécute le bloc au moins une fois
foreachParcours d’un tableauParcourt les valeurs ou les clés et valeurs

Teste tes connaissances

Teste tes connaissances sur Bases de PHP et applications web avec 27 questions à choix multiples et corrections détaillées.

1. Lorsqu’un navigateur demande une page PHP, que reçoit-il généralement après l’exécution du programme ?

2. Quel enchaînement décrit correctement le traitement d’une requête vers une page PHP ?

Faire le QCM →

Révisez avec les flashcards

Mémorisez les concepts clés de Bases de PHP et applications web avec 78 flashcards interactives.

Où PHP s’exécute-t-il principalement ?

Côté serveur.

Que reçoit généralement le navigateur après l’exécution de PHP ?

Une réponse HTML.

Quel élément le navigateur ne reçoit-il pas directement de PHP ?

Le code source PHP.

Voir les flashcards →

Cours similaires

Crée tes propres fiches de révision

Importe ton cours et l'IA génère fiches, QCM et flashcards en 30 secondes.

Générateur de fiches