Catégorie : PHP

  • PHP : Rediriger vers une autre page Web avec header()

    Il arrive qu'un programme Web ait besoin de rediriger automatiquement l'internaute vers une nouvelle page Web. Ce sera le cas par exemple pour une page Web qui doit enregistrer des données puis retourner à la page qui affiche un tableau de l'ensemble des données enregistrées.

    En PHP, c'est la fonction header() qui se charge de cette tâche.

    (suite…)
  • htmlspecialchars() ou htmlentities() pour se protéger contre certaines attaques XSS

    Dans le monde du Web, il est impératif d'être au fait des dangers qui guettent nos données et nos installations.

    Les attaques XSS (Cross-Site Scripting) sont un type d'attaque qui consiste à injecter du code malicieux, souvent sous forme de Javascript (balise <script>), afin de générer des comportements non prévus sur le site Web.

    Cet article vous présente une technique qui vous aidera à protéger votre site : l'encodage des caractères potentiellement dangereux.

    (suite…)
  • Balises input, button, a href et comment déguiser un lien en bouton

    Des boutons, il y en a partout. Des boutons pour soumettre un formulaire, des boutons pour lancer une action, des boutons pour donner notre accord (ou pas), des boutons pour « liker » une page, etc.

    Il y a plusieurs façons de créer un bouton : balise <input>, balise <button> et même balise <a href>. De même, il y a plusieurs façons pour définir le comportement du bouton.

    Examinons les différentes possibilités.

    (suite…)
  • Cryptage, hachage, salage : comment mieux protéger les données sensibles dans une BD

    Quand vient le temps de protéger des informations sensibles stockées dans une base de données, comme les mots de passe, on utilisera les termes cryptage, hachage (en anglais : hash) et salage (en anglais : salt). 

    Afin de comprendre comment bien protéger nos informations, voyons ce que signifient ces termes.

    (suite…)
  • Les requêtes préparées pour prévenir certaines injections SQL

    Lorsqu'une requête SQL doit utiliser une valeur tirée d'une variable, nous exposons notre base de données aux injections SQL. Il s'agit d'une technique utilisée par les « hackers » pour tenter d'obtenir des informations sensibles tirées de la base de données.

    Les variables utilisées dans la requête pourraient tirer leur valeur d'un formulaire Web ($_POST), d'un paramètre dans l'URL ($_GET), d'un cookie ($_COOKIE), etc. Donc, si nous ne prenons pas nos précautions, un utilisateur malveillant pourrait entrer comme valeur des caractères particuliers qui modifieraient le comportement de la requête. Il pourrait ainsi obtenir des accès sans connaître le mot de passe, modifier les données stockées dans la BD, etc.

    C'est pourquoi, lorsqu'une requête contient une valeur tirée d'une variable, nous utiliserons toujours des requêtes préparées, aussi appelées requêtes paramétrables, afin de protéger nos données contre les injections SQL.

    (suite…)
  • Comment bien tester la structure de code pour les requêtes

    À chaque fois que vous écrivez du code, il importe de tester tous les chemins possibles pour assurer que le programme réagira bien à toutes les situations.

    Dans le cas où votre code effectue une requête pour récupérer des informations dans une base de données, vous devez tester les scénarios suivants : 

    • la requête a retourné plusieurs enregistrements;
    • la requête a retourné un  seul enregistrement;
    • elle n'a retourné aucun enregistrement;
    • elle a planté.

    Cet article vous présente quelques astuces pour vous aider à bien tester votre code.

    (suite…)
  • Message d’erreur technique vs message d’erreur destiné à l’usager

    Il existe deux différents types de messages d'erreur :

    • Les messages techniques destinés au programmeur;
    • Les messages conviviaux destinés à l'usager.

    Cet article expose les différences entre ces deux types de messages et propose un style pour effectuer un affichage clair et intéressant visuellement.

    (suite…)
  • Truc pour générer une balise HTML en PHP sans rien oublier

    Prenons le cas où vous devez générer un lien HTML en PHP. Dans notre scénario, la valeur de l'attribut href est contenue dans une variable. Il en va de même pour le texte du lien.

    Si, en bon débutant que vous êtes, vous vous lancez rapidement dans la programmation PHP, vous pourriez obtenir un résultat erronné.

    Je vous expose ici un truc tout simple qui vous aidera à éviter les pièges.

    (suite…)
  • Outils pour ajuster l’indentation du code PHP existant

    Les programmeurs expérimentés ont l'habitude d'indenter leur code au fur et à mesure qu'il est écrit. Afin de leur faciliter la tâche, les outils pour éditer le code offrent généralement une fonctionnalité appelée « auto-indent » qui se charge de placer le curseur au bon endroit pour débuter le code de la ligne suivante lorsqu'on appuie sur la touche Entrée.

    Cependant, il arrive fréquemment que le programmeur ait à réajuster l'indentation, par exemple après avoir ajouté une condition dans du code PHP existant ou une division dans du code HTML existant. Ici encore, la majorité des éditeurs de code offrent cette possibilité.

    Dans le monde du PHP, les développeurs aiment coder à l'aide de logiciels libres. CodeLobster est un environnement de développement qui offre une version gratuite très intéressante, avec entre autres un débogueur, ce qui est plutôt rare en PHP. J'en ai donc fait mon éditeur de choix pour le PHP.

    (suite…)
  • Créer un sous-domaine

    Si vous possédez déjà un nom de domaine (ex : mondomaine.com), il est possible de lui créer un sous-domaine (ex : sousdomaine.mondomaine.com). La majorité des registraires de noms de domaines permettent la création de quelques sous-domaines sans frais.

    La création de sous-domaines (ex : ateliers.mondomaine.com, forum.mondomaine.com) vous permettra d'avoir différents sites Web ou différentes parties d'un même site Web qui seront accessibles avec une adresse qui leur est propre. Le sous-domaine, en plus d'être plus convivial qu'un URL contenant le nom d'un dossier (ex : mondomaine.com/ateliers, mondomaine.com/forum), sera plus efficace au niveau du référencement.

    Une utilisation fréquente consiste à créer un sous-domaine pour chacune des langues d'un site Web (ex : en.mondomaine.com et fr.mondomaine.com)

    (suite…)