QCM : Identification utilisateur en PHP — 16 questions

Questions et réponses du QCM

1. En PHP, quelle différence correspond le mieux à la manière dont un cookie et une session identifient un utilisateur ?

Le cookie stocke les informations sur le serveur, tandis que la session les stocke sur l’ordinateur client
Le cookie et la session utilisent uniquement des variables temporaires en mémoire côté navigateur
Le cookie et la session stockent tous deux les informations uniquement sur le serveur
Le cookie stocke les informations sur l’ordinateur client, tandis que la session les stocke sous forme de variables sur le serveur

Le cookie stocke les informations sur l’ordinateur client, tandis que la session les stocke sous forme de variables sur le serveur

Explication

Un cookie identifie l’utilisateur en stockant ses informations sur le client, alors qu’une session stocke ces informations sous forme de variables sur le serveur. La proposition opposée est donc incorrecte.

2. Dans quel cas peut-on dire qu’un utilisateur peut être identifié en PHP à l’aide de cookies ou de sessions ?

Lorsque l’authentification se fait uniquement par mot de passe envoyé à chaque requête
Lorsque le serveur utilise des mécanismes de persistance côté client (cookies) ou côté serveur (sessions)
Lorsque l’identification dépend uniquement de l’adresse IP du navigateur
Lorsque l’application n’utilise ni stockage et n’enregistre aucune information

Lorsque le serveur utilise des mécanismes de persistance côté client (cookies) ou côté serveur (sessions)

Explication

Le contenu indique qu’en PHP un utilisateur peut être identifié au moyen des cookies ou des sessions. Les autres choix décrivent des mécanismes différents ou incomplets.

3. Que désigne précisément un cookie dans le fonctionnement PHP classique côté client ?

Un enregistrement stocké dans la base de données uniquement, sans stockage côté navigateur
Un petit fichier que le serveur stocke sur l’ordinateur du client et que le navigateur renvoie à chaque demande de page
Un protocole qui chiffre automatiquement toutes les requêtes HTTP du client
Une variable stockée exclusivement en mémoire sur le serveur jusqu’à la fermeture du navigateur

Un petit fichier que le serveur stocke sur l’ordinateur du client et que le navigateur renvoie à chaque demande de page

Explication

Un cookie est un petit fichier stocké sur l’ordinateur du client par le serveur, puis renvoyé par le navigateur à chaque demande. Les distracteurs décrivent des objets ou mécanismes qui ne correspondent pas à cette définition.

4. Quelle instruction PHP est correcte pour créer un cookie en respectant la contrainte selon laquelle un seul paramètre est obligatoire ?

setcookie("session_id", "abc123", "path=/")
setcookie("session_id", "abc123", "/", "example.com", true, true)
setcookie("session_id", "abc123", time()+3600, "/", "example.com", true)
setcookie("session_id", "abc123")

setcookie("session_id", "abc123")

Explication

La fonction setcookie exige uniquement le paramètre name ; la proposition avec uniquement name et value respecte cette règle. Les autres options ajoutent des paramètres sans être nécessaires et peuvent induire en erreur sur l’obligation.

5. Comment récupère-t-on la valeur d’un cookie et comment teste-t-on sa présence avec les outils décrits ?

Avec $_SERVER pour récupérer la valeur, puis un test de date d’expiration
Avec $_SESSION pour récupérer la valeur, puis empty() pour vérifier s’il existe
Avec un appel direct à setcookie() et une comparaison de sa valeur renvoyée
Avec $_COOKIE pour récupérer la valeur, puis isset() pour vérifier si le cookie est défini

Avec $_COOKIE pour récupérer la valeur, puis isset() pour vérifier si le cookie est défini

Explication

Le contenu précise que la valeur d’un cookie se lit via $_COOKIE et qu'isset() permet de vérifier s’il est défini. Utiliser $_SESSION ou $_SERVER correspondrait à d’autres stockages et outils.

6. Que faut-il faire pour modifier un cookie une fois qu’il a été créé ?

Déplacer le cookie sur le serveur avec une session associée
Le redéfinir avec setcookie() en lui attribuant une nouvelle valeur
Supprimer le cookie puis attendre une nouvelle connexion avant de pouvoir le changer
Appeler une fonction dédiée de mise à jour distincte de setcookie()

Le redéfinir avec setcookie() en lui attribuant une nouvelle valeur

Explication

Pour modifier un cookie, il suffit de le redéfinir avec setcookie() en donnant une nouvelle valeur. Il n’existe pas de fonction séparée nécessaire à la modification dans cette logique.

7. Quelle méthode correspond à la suppression d’un cookie décrite ?

Forcer une suppression en redéfinissant le cookie avec une valeur à la chaîne vide sans modifier l’expiration
Supprimer automatiquement le cookie en appelant unset($_COOKIE["user"])
Le redéfinir avec une date d’expiration antérieure, par exemple setcookie("user", "", time() - 3600)
Appeler une fonction removeCookie() prévue par PHP

Le redéfinir avec une date d’expiration antérieure, par exemple setcookie("user", "", time() - 3600)

Explication

Le contenu indique que la suppression se fait en redéfinissant le cookie avec une expiration antérieure, par exemple avec time() - 3600. Les autres propositions ne décrivent pas la logique d’expiration requise.

8. Pourquoi une application utilise-t-elle souvent des sessions PHP plutôt que de supposer que HTTP conserve l’état entre les requêtes ?

Parce que les sessions stockent des informations côté serveur et les réutilisent entre plusieurs requêtes
Parce que HTTP transmet automatiquement les données utilisateur d’une page à l’autre sans intervention
Parce que les sessions remplacent le navigateur dans la gestion des cookies
Parce que les sessions chiffrent automatiquement toutes les données échangées

Parce que les sessions stockent des informations côté serveur et les réutilisent entre plusieurs requêtes

Explication

Les sessions résolvent le problème de l’absence d’état de HTTP en conservant des informations utilisateur entre plusieurs requêtes. Les autres choix décrivent des mécanismes qui ne répondent pas à ce besoin d’état.

9. Quel mécanisme relie une visite du visiteur à un ensemble de variables de session dans une session PHP ?

Un identifiant unique de session, associé aux variables, qui est stocké dans un cookie ou propagé dans l’URL
Une adresse IP stockée directement dans les variables de session
Une clé secrète renvoyée à chaque affichage de page dans la réponse HTML
Un nom de variable fixe transmis à chaque requête sans identifiant

Un identifiant unique de session, associé aux variables, qui est stocké dans un cookie ou propagé dans l’URL

Explication

Une session crée un identifiant unique pour chaque visiteur et les variables de session sont associées à cet identifiant (via cookie ou URL). Les distracteurs évoquent des éléments non mentionnés comme lien principal entre requêtes et variables.

10. En quoi une session PHP se distingue-t-elle d’un stockage permanent comme une base de données ?

Les sessions ne peuvent stocker aucune information ; elles ne servent qu’à compter les visites
Les informations de session sont temporaires et disparaissent après le départ de l’utilisateur du site
Les informations de session sont permanentes et restent disponibles même après fermeture du navigateur
Les sessions stockent uniquement des données chiffrées, ce qui les rend plus durables

Les informations de session sont temporaires et disparaissent après le départ de l’utilisateur du site

Explication

Les informations de session sont temporaires et sont supprimées après que l’utilisateur a quitté le site, contrairement à un stockage permanent possible avec une base de données. Les autres options contredisent explicitement cette caractéristique.

11. Quand faut-il appeler session_start() dans une page PHP pour utiliser des variables de session ?

Uniquement à l’intérieur d’une boucle foreach
Après la dernière balise HTML
Avant toute balise HTML
Une seule fois au moment de la connexion, puis jamais ailleurs

Avant toute balise HTML

Explication

Une session PHP est démarrée avec session_start(), qui doit être placée avant toute balise HTML. Les autres propositions ne garantissent pas que la session soit initialisée avant l’usage des variables.

12. Dans quelle variable globale PHP les variables de session sont-elles accessibles une fois définies ?

Dans $_COOKIE
Dans $GLOBALS
Dans $_SERVER
Dans $_SESSION

Dans $_SESSION

Explication

Les variables de session sont définies et accessibles dans la variable globale $_SESSION. Les autres variables globales correspondent à d’autres types de données (cookies, contexte serveur, etc.).

13. Comment une page peut-elle accéder aux variables de session déjà définies sur une autre page ?

En relisant automatiquement les cookies sans toucher à la session
En récupérant une variable unique transmise dans l’URL pour chaque donnée
En appelant session_start(), puis en lisant leurs valeurs dans $_SESSION
En utilisant directement les variables sans redémarrer la session

En appelant session_start(), puis en lisant leurs valeurs dans $_SESSION

Explication

Pour accéder aux variables de session définies ailleurs, il faut appeler session_start() puis lire les valeurs via $_SESSION. Les distracteurs supposent une transmission directe des variables ou une lecture automatique sans initialisation de session.

14. Comment modifier la valeur d’une variable stockée dans la session en cours ?

En appelant unset sur toutes les variables puis en les redéfinissant
En remplaçant la valeur dans $_SESSION, par exemple $_SESSION["favcolor"] = "yellow"
En supprimant la session entière puis en la recréant
En utilisant session_destroy() pour changer une seule valeur

En remplaçant la valeur dans $_SESSION, par exemple $_SESSION["favcolor"] = "yellow"

Explication

Pour modifier une variable de session, il suffit de remplacer sa valeur dans $_SESSION (exemple $_SESSION["favcolor"] = "yellow"). Les autres options correspondent à des suppressions plus globales ou à des destructions de session.

15. Que fait la fonction session_unset() ?

Elle supprime uniquement le cookie contenant l’identifiant de session
Elle efface le contenu de la page sans toucher aux variables de session
Elle détruit la session en cours
Elle supprime toutes les variables de session

Elle supprime toutes les variables de session

Explication

session_unset() supprime toutes les variables de session. Les distracteurs confondent cette action avec la destruction de la session (session_destroy) ou avec la gestion des cookies.

16. Quelle fonction utiliser pour supprimer uniquement une variable nommée var dans la session en cours ?

$_SESSION['var'] = null
session_unset()
unset($_SESSION['var'])
session_destroy()

unset($_SESSION['var'])

Explication

unset($_SESSION['var']) détruit uniquement la variable var de la session en cours. session_unset() supprime toutes les variables et session_destroy() détruit la session entière.

Révisez avec les flashcards

Mémorisez les réponses avec 32 flashcards sur Identification utilisateur en PHP.

Comment un utilisateur peut-il être identifié en PHP ?

Par les cookies ou les sessions.

Où un cookie stocke-t-il les informations utilisateur ?

Sur l'ordinateur client.

Où une session stocke-t-elle les informations utilisateur ?

Sur le serveur sous forme de variables.

Voir les flashcards →

Approfondir avec la fiche

Consultez la fiche de révision complète sur Identification utilisateur en PHP.

Voir la fiche →

Cours similaires

Crée tes propres QCM

Importe ton cours et l'IA génère des QCM avec corrections en 30 secondes.

Générateur de QCM