10 questions. Une seule bonne réponse par question, et
l'explication s'affiche dès que vous avez répondu.
Le cours · La fiche
0 / 10
1Pourquoi la sécurité se fait-elle en PHP et non en JavaScript ?
Le code PHP ne quitte jamais le serveur : le visiteur reçoit le résultat, pas les instructions. Le JavaScript, lui, part en clair dans la page et le visiteur peut le modifier. D'où la règle : valider en JS = confort, revalider en PHP = sécurité.
2$b vaut "ami". Qu'affiche echo 'bonjour $b'; ?
Les apostrophes ne remplacent rien : la chaîne s'affiche telle quelle. Seuls les guillemets doubles interprètent les variables — "bonjour $b" donne bonjour ami. C'est l'inverse de l'intuition, et ça se vérifie en une ligne.
3Comment coller deux chaînes en PHP ?
Le point concatène ; le + est réservé à l'addition. Écrire "bon" + "jour" ne donne pas « bonjour » mais tente une somme de deux chaînes — soit 0, soit une erreur selon la version. Le contraire de JavaScript, où + fait les deux.
4Quelle est la différence entre include et require ?
La question à se poser est simple : le site a-t-il un sens sans ce fichier ? Un bandeau publicitaire absent, on continue — include. Une connexion à la base absente, il faut s'arrêter net plutôt que d'afficher une page cassée — require.
5Un formulaire demande une quantité. L'utilisateur saisit 0, et le code la refuse. Quel test est en cause ?
empty() tient pour vide 0, "0", la chaîne vide, null, false et le tableau vide. Un zéro légitime tombe donc dans le panneau. Pour savoir si un champ a été envoyé, la bonne question est isset().
6En PHP, quelle est la clé de $_POST pour un champ de formulaire ?
C'est name qui devient la clé : <input name="nom"> arrive en $_POST["nom"]. L'id ne sert qu'au CSS, au JavaScript et au <label for> ; il n'est jamais envoyé au serveur.
7Avant d'afficher un texte saisi par un visiteur, on écrit :
htmlspecialchars() transforme < et > en entités : une saisie contenant une balise s'affiche alors comme du texte au lieu de s'exécuter. C'est la parade au XSS, et elle se met à l'affichage, pas à l'enregistrement.
8Où doit se trouver session_start() ?
La session voyage par un cookie, donc par les en-têtes HTTP — et les en-têtes partent avant le corps de la page. Un seul espace, ou une ligne vide avant <?php, suffit à déclencher headers already sent.
9Quel mode de fopen() ajoute une ligne à un journal sans effacer le reste ?
"a" pour append : le curseur se place à la fin. "w" vide le fichier d'abord — la faute la plus coûteuse sur un journal. "r" est en lecture seule, "x" échoue si le fichier existe déjà. Et on termine toujours par fclose().
10POST est-il chiffré ?
POST place les données dans le corps de la requête au lieu de l'URL : elles sortent de la barre d'adresse, de l'historique et des journaux — mais circulent en clair sur le réseau. Seul HTTPS chiffre, et il chiffre GET comme POST.