23Fermer25
squale92Le 13/10/2014 à 19:33
Rapidement, sans lire les réponses qui ont suivi (Edit: désolé, j'ai pas tellement répondu aux questions, je crois. j'espère que les notes ci-dessous t'apporteront quand même quelques infos intéressantes).

1> j'ai du mal à voir l'utilité de la question : soit le gars sait ce qu'est l'opérateur ternaire soit il ne sait pas... quoi qu'il en soit, utiliser un ternaire dans ce cas n'est pas "mieux" que de ne pas en utiliser.

2> je vois à peu près l'intérêt de la question. je laisserais le candidat parler librement. en gros, je lui demanderais à quoi il pense quand il s'agit de sécurité et je verrais jusqu'où va sa réponse (css et sqli c'est les classiques ; la réponse peut aller plus loin, des fois). Moyens de s'en protéger, surtout pour les xss, il faut penser que c'est dépendant du contexte (tu htmlspecialchars() quand tu génères du html, mais pas quand tu génères du javascript, par exemple -- beaucoup oublient ce détail ^^ ).

3> moué. à la limite, pour voir si ton candidat a quelques notions de regex. en tant que recruteur, sur une question comme ça, j'aimerais beaucoup qu'un candidat me réponde qu'il va commencer par mettre en place des tests (c'est un cas d'école quasi parfait pour du TDD ^^ )

4> au-delà de la différence de visibilité évidente, l'utilité me semble plus importante (donc aller plus loin que la question ne le sous-entend : *pourquoi* jouer avec la visibilité ? )

5> si par valeur "null" tu entends le type null (et pas la chaine de caractères "null"), tu vois une autre solution que if (null === $foo) et if (is_null($foo)) ? (isset fera plus que ça ; empty fera plus que ça ; !$foo fera plus que ça ; 0 == $foo ou false == $foo ou null == $foo feront plus que ça)

6> aucune de tes propositions : PHP fournit password_hash() depuis PHP 5.5 -- c'est *la* fonction à utiliser si tu ne veux pas avoir à t'emmerder à gérer des trucs que tu comprends pas forcément toujours bien. Pour PHP 5.4 (et 5.3 hormis les plus vieilles) tu as une couche de compatibilité écrite en PHP. De mémoire, cela dit, password_hash() fait par défaut du bcrypt, au moins en PHP 5.5

7> la réponse attendue est "n'omettez jamais les break, sauf à mettre un commentaire explicitant que c'était voulu" ?

8> tu as en tête le truc de barbare à base de explode + implode ? ou tu penses à quelque chose de plus moderne et plus safe genre DateTime::createFromFormat puis DateTime->format ?

9> purement une question inutile, pour moi (le paamayim nekudotaiym, ça a d'intérêt que pour un quizz piégeur, si tu demandes aux gens de l'écrire :-p )

10 > $a=4 et $b=3 ? vu que $a est passé par référence ?

11 > il manque un exit() après tes header() de redirection. Et pour Location, la RFC HTTP dit que tu devrais utiliser des URLs absolues (même si les navigateurs ont tendance à accepter des URLs relatives)