★ À 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
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.
Requête du navigateur → exécution PHP → réponse affichée
$ puis par une lettre ou un souligné, et il ne peut pas commencer par un chiffre.★ À maîtriser
string pour le texteint pour les entiersfloat pour les nombres décimauxbool pour les valeurs logiquesnull pour l’absence de valeurarray pour les collections de valeursobject 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 :
$nomet$Nomdésignent deux variables différentes.
&& pour ET|| pour OU! pour NON📌 Une constante déclarée avec
constoudefine()ne s’écrit pas avec le préfixe$.
== compare les valeurs ; === compare valeur et type
★ À maîtriser
📌
switchtraite plusieurs cas et nécessite souventbreak, tandis quematch, disponible depuis PHP 8, renvoie une valeur, compare strictement et ne passe pas au cas suivant.
📌
forconvient quand le nombre d’itérations est connu,whilequand la répétition dépend d’une condition etforeachpour parcourir un tableau.
Compléments
📌 Une boucle doit avoir une condition susceptible de devenir fausse, sinon elle risque de devenir infinie.
📌 Dans une boucle,
continuepasse à l’itération suivante, tandis quebreakarrête la boucle.
for compte, while attend une condition, foreach parcourt un tableau
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é.
function calculerTTC(float $prix, float $taux = 0.20): float, le taux est facultatif et vaut 0.20 lorsqu’il n’est pas fourni.★ À 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.
★ À 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
named’un champ correspond à la clé utilisée pour récupérer sa valeur dans$$_POSTou$$_GET.
La validation vérifie l’entrée ; l’échappement protège la sortie HTML
★ À 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.
📌 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 etpassword_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é.
★ À 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 HTTPSHttpOnlySameSite📌 Un cookie n’est pas un emplacement fiable pour stocker un secret ou une autorisation.
Une session conserve des données côté serveur ; un cookie est renvoyé par le navigateur
★ À maîtriser
📌 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érerSELECT pour lireUPDATE pour modifierDELETE 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.
Préparer la requête → transmettre les paramètres séparément
★ À maîtriser
📌 Un bloc
trypermet de traiter une exception danscatch, mais les détails techniques ne doivent pas être affichés aux visiteurs en production.
Compléments
📌 Une fonction peut lever une exception avec
throw, par exempleInvalidArgumentExceptionlorsque 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.
Méthodes de boucle
| Boucle | Usage indiqué | Particularité |
|---|---|---|
| for | Nombre d’itérations connu | Utilise initialisation, condition et évolution |
| while | Répétition dépendant d’une condition | Répète tant que la condition est vraie |
| do...while | Répétition dépendant d’une condition | Exécute le bloc au moins une fois |
| foreach | Parcours d’un tableau | Parcourt les valeurs ou les clés et valeurs |
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 ?
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.
Importe ton cours et l'IA génère fiches, QCM et flashcards en 30 secondes.
Générateur de fiches