QCMUP.COM

Liste QCM PHP Corrigé – Partie 8

Entraînez-vous avec des questions corrigées, progressez étape par étape, puis consolidez vos notions grâce aux définitions et explications.

30 questions Réponses expliquées Réviser → Pratiquer
Liste QCM PHP Corrigé – Partie 8 – PHP

Ces QCM portent sur un thème très concret et incontournable : la communication entre un formulaire HTML et un script PHP.

C’est une compétence fondamentale, car elle intervient dans la majorité des projets web, qu’il s’agisse d’une page de contact, d’une inscription, d’une connexion ou d’un système de recherche.

Pour réussir ce type d’exercices, il faut comprendre comment un formulaire envoie des données, comment ces données sont transportées par HTTP, et comment PHP les récupère via ses superglobales.

Vous travaillez également des points essentiels de sécurité et de qualité : contrôler la soumission, éviter les erreurs liées aux champs absents, et protéger l’affichage contre des contenus malveillants.

Ces notions sont très souvent évaluées en examens, car elles reflètent la capacité à coder un traitement fiable, propre et sécurisé.

Ces QCM portent sur un thème très concret et incontournable : la communication entre un formulaire HTML et un script PHP.

C’est une compétence fondamentale, car elle intervient dans la majorité des projets web, qu’il s’agisse d’une page de contact, d’une inscription, d’une connexion ou d’un système de recherche.

Pour réussir ce type d’exercices, il faut comprendre comment un formulaire envoie des données, comment ces données sont transportées par HTTP, et comment PHP les récupère via ses superglobales.

Vous travaillez également des points essentiels de sécurité et de qualité : contrôler la soumission, éviter les erreurs liées aux champs absents, et protéger l’affichage contre des contenus malveillants.

Ces notions sont très souvent évaluées en examens, car elles reflètent la capacité à coder un traitement fiable, propre et sécurisé.

QCM 1 Corrigé

Quel attribut de la balise HTML <form> définit le fichier PHP qui recevra les données ?

A. method
B. target
C. action
D. name
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : C

Justification :
L'attribut 'action' contient l'URL du script chargé de traiter les informations du formulaire.

QCM 2 Corrigé

Quelle méthode d'envoi affiche les données saisies directement dans l'URL du navigateur ?

A. POST
B. GET
C. SEND
D. REQUEST
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : B

Justification :
La méthode GET transmet les paramètres via la chaîne de requête (query string) dans l'URL.

QCM 3 Corrigé

En PHP, quelle variable superglobale permet de récupérer les données envoyées par la méthode POST ?

A. $_POST
B. $POST
C. $_GET
D. $_HTTP_POST
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : A

Justification :
La superglobale $_POST est un tableau associatif contenant les valeurs envoyées via cette méthode.

QCM 4 Corrigé

Pour créer un champ de mot de passe masqué à l'écran, quel type d'input utilise-t-on ?

A. type="text"
B. type="hidden"
C. type="secret"
D. type="password"
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : D

Justification :
Le type 'password' remplace les caractères saisis par des points ou des astérisques.

QCM 5 Corrigé

Quel attribut HTML est indispensable pour que PHP puisse identifier une donnée précise dans un formulaire ?

A. id
B. class
C. value
D. name
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : D

Justification :
L'attribut 'name' devient la clé dans les tableaux $_GET ou $_POST côté serveur.

QCM 6 Corrigé

Quelle méthode d'envoi est préférable pour transmettre des données sensibles comme un mot de passe ?

A. POST
B. GET
C. URL
D. QUERY
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : A

Justification :
POST est plus sécurisé car les données ne sont pas visibles dans l'historique ou l'URL du navigateur.

QCM 7 Corrigé

Comment vérifie-t-on en PHP si un formulaire a bien été soumis ?

A. if ($form == true)
B. if (isset($_POST['nom_du_bouton']))
C. if (empty($submit))
D. if (check_form())
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : B

Justification :
isset() permet de tester si une clé existe dans la superglobale d'envoi.

QCM 8 Corrigé

Quelle fonction PHP est essentielle pour protéger les données affichées contre les failles XSS ?

A. strip_tags()
B. md5()
C. htmlspecialchars()
D. mysqli_real_escape_string()
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : C

Justification :
Cette fonction convertit les caractères spéciaux en entités HTML, empêchant l'exécution de scripts malveillants.

QCM 9 Corrigé

Que contient la superglobale $_REQUEST ?

A. Uniquement les cookies
B. Les variables de session
C. La configuration du serveur
D. Le contenu de $_GET, $_POST et $_COOKIE
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : D

Justification :
$_REQUEST regroupe par défaut les données provenant de plusieurs sources de saisie.

QCM 10 Corrigé

Quelle balise HTML permet de créer une liste déroulante dans un formulaire ?

A. <select>
B. <list>
C. <input type="dropdown">
D. <option>
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : A

Justification :
<select> définit la liste, tandis que <option> définit chaque élément de celle-ci.

QCM 11 Corrigé

Comment récupère-t-on la valeur d'une case à cocher (checkbox) si elle n'est pas cochée ?

A. Elle vaut 0
B. Elle vaut false
C. Elle n'est pas transmise au serveur
D. Elle vaut une chaîne vide
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : C

Justification :
Si une checkbox n'est pas cochée, PHP ne recevra aucune clé correspondante dans $_POST ou $_GET.

QCM 12 Corrigé

Quelle méthode HTTP est limitée par la taille maximale d'une URL ?

A. GET
B. POST
C. PUT
D. DELETE
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : A

Justification :
GET est limité par les navigateurs et serveurs (souvent environ 2000 caractères), contrairement à POST.

QCM 13 Corrigé

Si j'ai <input name="age">, comment récupérer cette valeur en PHP après un envoi POST ?

A. $_POST['age']
B. $age
C. $_GET['age']
D. POST['age']
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : A

Justification :
L'accès se fait via le tableau $_POST avec le nom du champ comme index.

QCM 14 Corrigé

Quel attribut permet d'envoyer des fichiers (upload) via un formulaire ?

A. method="FILE"
B. enctype="multipart/form-data"
C. action="upload.php"
D. type="file-sender"
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : B

Justification :
Cet attribut d'encodage est obligatoire pour que le serveur traite l'envoi de fichiers binaires.

QCM 15 Corrigé

Quelle superglobale PHP gère les informations sur les fichiers téléchargés ?

A. $_POST
B. $_UPLOAD
C. $_FILES
D. $_DATA
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : C

Justification :
$_FILES contient le nom, le type, la taille et l'emplacement temporaire des fichiers.

QCM 16 Corrigé

Comment s'appelle l'action de nettoyer les données reçues avant traitement ?

A. L'encapsulation
B. Le formatage
C. Le débogage
D. La sanitisation
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : D

Justification :
La sanitisation consiste à filtrer les données pour éviter les injections et erreurs.

QCM 17 Corrigé

Dans une balise <input type="radio">, que permet l'utilisation du même 'name' pour plusieurs boutons ?

A. D'envoyer toutes les valeurs en même temps
B. De créer un choix unique parmi plusieurs options
C. De lier les boutons visuellement
D. De valider le formulaire automatiquement
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : B

Justification :
Le groupe de boutons radio portant le même nom garantit qu'un seul choix est possible.

QCM 18 Corrigé

Quelle fonction PHP permet de supprimer les espaces en début et fin de chaîne saisie ?

A. strip()
B. clean()
C. trim()
D. cut()
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : C

Justification :
trim() est très utilisée pour nettoyer les saisies textuelles des erreurs de frappe (espaces superflus).

QCM 19 Corrigé

Quelle est la valeur par défaut de l'attribut 'method' d'un formulaire si on ne le précise pas ?

A. POST
B. GET
C. REQUEST
D. NONE
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : B

Justification :
Si l'attribut method est omis, le navigateur utilise la méthode GET par défaut.

QCM 20 Corrigé

Comment peut-on récupérer plusieurs valeurs d'un champ <select multiple> ?

A. En ajoutant [] au nom du champ (ex: name="choix[]")
B. PHP le fait automatiquement avec le nom simple
C. En utilisant la superglobale $_MULTIPLE
D. Ce n'est pas possible en PHP
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : A

Justification :
Les crochets indiquent à PHP de stocker les valeurs sélectionnées dans un tableau.

QCM 21 Corrigé

Quelle fonction permet de vérifier si une chaîne de caractères reçue est vide ?

A. is_null()
B. check()
C. empty()
D. void()
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : C

Justification :
empty() renvoie vrai si la variable n'existe pas ou si sa valeur est considérée comme vide (0, '', null).

QCM 22 Corrigé

Où sont stockées les données envoyées par POST ?

A. Dans les cookies du navigateur
B. Dans l'URL
C. Dans le cache du serveur
D. Dans le corps de la requête HTTP
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : D

Justification :
Les données POST sont encapsulées dans le corps de la requête, ce qui les rend invisibles dans l'URL.

QCM 23 Corrigé

Quel est l'avantage principal de la méthode GET ?

A. Sécurité accrue
B. Possibilité de mettre la page en favori avec les paramètres
C. Transfert de fichiers volumineux
D. Cache serveur désactivé
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : B

Justification :
Comme les paramètres sont dans l'URL, l'utilisateur peut enregistrer le lien avec sa recherche.

QCM 24 Corrigé

Quel type d'input est utilisé pour un bouton qui efface tous les champs du formulaire ?

A. type="delete"
B. type="clear"
C. type="reset"
D. type="cancel"
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : C

Justification :
Le type 'reset' remet tous les contrôles du formulaire à leur valeur initiale.

QCM 25 Corrigé

Que renvoie la superglobale $_POST si on accède à une clé qui n'existe pas ?

A. Une erreur de type Notice ou Warning
B. La valeur 0
C. Une chaîne vide
D. La valeur false
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : A

Justification :
Accéder à une clé inexistante dans un tableau génère un message d'erreur de niveau Notice.

QCM 26 Corrigé

Quel attribut HTML permet de rendre un champ de formulaire obligatoire ?

A. mandatory
B. required
C. validate
D. force
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : B

Justification :
L'attribut 'required' bloque la soumission du formulaire tant que le champ n'est pas rempli.

QCM 27 Corrigé

Quelle fonction PHP est recommandée pour valider un format d'email ?

A. check_email()
B. verify_format()
C. validate_mail()
D. filter_var()
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : D

Justification :
filter_var($email, FILTER_VALIDATE_EMAIL) est la méthode standard et fiable.

QCM 28 Corrigé

Quel symbole sépare les variables dans une URL lors d'un envoi en GET ?

A. Le symbole &
B. Le symbole ?
C. Le symbole #
D. La virgule
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : A

Justification :
Le '?' commence la liste des paramètres, et le '&' sépare chaque couple clé=valeur.

QCM 29 Corrigé

Pourquoi ne doit-on jamais faire confiance aux données d'un formulaire ?

A. Parce que l'utilisateur peut se tromper
B. Parce que les données peuvent être interceptées
C. Parce qu'elles peuvent être manipulées pour attaquer le serveur
D. Toutes les réponses ci-dessus
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : D

Justification :
La sécurité web repose sur le principe de ne jamais faire confiance aux entrées utilisateurs.

QCM 30 Corrigé

Quelle balise permet de regrouper logiquement plusieurs champs dans un formulaire ?

A. <group>
B. <fieldset>
C. <section>
D. <div>
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : B

Justification :
<fieldset> regroupe les éléments et est souvent accompagné de la balise <legend>.

Mots & Définitions
Consultez les définitions des termes importants.

Un formulaire HTML est un ensemble de champs qui permet à un utilisateur d’envoyer des informations vers un serveur. Il sert à collecter des données comme un nom, un email ou un mot de passe. Son bon paramétrage conditionne la récupération correcte des données côté PHP.

L’attribut action indique l’adresse de la ressource qui recevra et traitera les données du formulaire. C’est généralement un fichier PHP ou une route serveur. Sans action explicite, l’envoi se fait souvent vers la page courante.

GET envoie les données dans l’URL sous forme de paramètres. Elle est pratique pour les recherches, filtres ou pages partageables, car l’URL peut être copiée ou mise en favori. En revanche, elle n’est pas adaptée aux données sensibles.

POST transmet les données dans le corps de la requête HTTP, ce qui évite de les afficher dans l’URL. Elle est privilégiée pour les données sensibles ou volumineuses, comme les mots de passe ou les formulaires complets. Elle est aussi indispensable pour certains envois complexes, comme l’upload de fichiers.

$_POST est un tableau PHP qui contient les données envoyées par la méthode POST. On y accède avec le nom du champ, par exemple $_POST['email']. Avant de lire une clé, il est recommandé de vérifier son existence pour éviter des avertissements.

$_GET contient les paramètres passés dans l’URL lors d’un envoi en GET. Elle permet de récupérer facilement une valeur transmise dans la query string. Comme toute donnée externe, son contenu doit être validé et nettoyé.

$_REQUEST regroupe plusieurs sources de données, notamment celles de $_GET, $_POST et $_COOKIE. Elle peut simplifier certains accès, mais elle rend l’origine des données moins claire. Pour un code plus fiable, il est souvent préférable d’utiliser $_GET ou $_POST explicitement.

L’attribut name est la clé qui permet au serveur d’identifier une donnée envoyée par un champ de formulaire. C’est ce nom qui devient l’index utilisé dans $_GET ou $_POST. Sans name, la valeur saisie n’est généralement pas exploitable côté PHP.

La soumission correspond à l’envoi des données du formulaire au serveur, généralement via un bouton de type submit. Côté PHP, on vérifie souvent la soumission en testant l’existence d’un champ attendu. Cette étape est importante pour éviter de traiter une page comme si un envoi avait eu lieu.

Un champ de type password masque les caractères saisis à l’écran. Il est utilisé pour éviter l’exposition visuelle d’un mot de passe lors de la saisie. Cela ne remplace pas la sécurité côté serveur, mais améliore la confidentialité côté interface.

Une case à cocher envoie généralement une valeur seulement si elle est cochée. Si elle ne l’est pas, le champ n’est souvent pas transmis au serveur, ce qui oblige à prévoir une vérification avec isset(). C’est un détail fréquent qui explique des résultats “manquants” côté PHP.

Les boutons radio servent à choisir une seule option parmi plusieurs. Leur comportement dépend du fait qu’ils partagent le même attribut name, ce qui les regroupe logiquement. Ainsi, une seule valeur est envoyée pour l’ensemble du groupe.

La balise select permet de créer une liste déroulante dans un formulaire. Les options disponibles sont définies avec des balises option. C’est un composant très utilisé pour proposer un choix contrôlé à l’utilisateur.

L’upload correspond à l’envoi d’un fichier depuis le navigateur vers le serveur. Il nécessite un paramétrage spécifique du formulaire, notamment un encodage adapté. Côté PHP, les informations du fichier sont reçues dans une superglobale dédiée.

La sanitisation consiste à nettoyer et sécuriser les données reçues avant de les utiliser. Elle vise à réduire les risques d’injection, de scripts malveillants ou d’erreurs de traitement. C’est une étape incontournable dès qu’on accepte des entrées utilisateur.

À propos de ce QCM

Au-delà des questions, l’objectif pédagogique est de savoir construire un “circuit complet” de saisie et de traitement.

Côté HTML, la réussite dépend de quelques attributs clés : action définit où les données sont envoyées, method précise comment elles voyagent (GET ou POST), et name donne l’identité de chaque information transmise.

Le choix entre GET et POST n’est pas anodin : GET rend les paramètres visibles dans l’URL, ce qui peut être utile pour partager une recherche, mais impose une limite de taille et n’est pas adapté aux données sensibles.

POST, au contraire, place les données dans le corps de la requête, ce qui améliore la discrétion et permet des envois plus riches, y compris l’upload de fichiers avec un encodage spécifique.

Côté PHP, la récupération se fait avec $_GET ou $_POST selon la méthode, et parfois avec $_REQUEST, qui mélange plusieurs sources mais réduit la clarté.

Un bon réflexe consiste à vérifier la soumission avant de traiter, notamment avec isset() sur un champ attendu, et à anticiper les champs optionnels : une checkbox non cochée, par exemple, n’envoie souvent rien.

La sécurité intervient à deux niveaux : d’abord en validant et nettoyant les données (sanitisation) pour éviter qu’elles ne contiennent des valeurs inattendues, puis en protégeant l’affichage avec une fonction comme htmlspecialchars() pour empêcher l’exécution de scripts injectés.

Enfin, pour des formats spécifiques comme l’email, des outils de validation comme filter_var() permettent d’éviter des saisies incorrectes et d’améliorer la fiabilité de l’application.

Conclusion

En conclusion, ces QCM vous entraînent sur une chaîne de compétences très recherchée : créer un formulaire clair, choisir la bonne méthode d’envoi, récupérer correctement les données côté PHP et appliquer les bons réflexes de sécurité.

En travaillant ces notions, vous gagnez en autonomie pour construire des pages fonctionnelles et robustes, et vous limitez les erreurs classiques liées aux champs manquants ou aux données non fiables.

L’idéal est de mettre immédiatement en pratique sur de petits exemples : un formulaire simple en GET, un formulaire d’inscription en POST, puis un cas d’upload avec $_FILES.

Cette pratique régulière consolide les automatismes et prépare efficacement aux exercices plus avancés de validation et de traitement côté serveur.