oujood.com

Fonction addslashes() de PHP: Ajouter des antislashs dans une chaîne

La fonction addslashes — Ajoute des antislashs dans une chaîne

Comment utiliser la fonction addslashes() de PHP


PHP references des fonctions PHP

(PHP 4, PHP 5)

La fonction addslashes() retourne une chaîne avec des antislashs devant les personnages prédéfinis.

Les caractères prédéfinis sont :

  • guillemet simple (')
  • guillemets doubles (")
  • barre oblique inverse (\)
  • NULL
Remarque : PHP exécute les fonctions addslashes() sur toutes les données GET, POST et COOKIE par défaut. C'est pourquoi vous n'employez pas la fonction addslashes() sur des chaînes qui ont été déjà échappés, ce qui cause le double échappement. La fonction get_magic_quotes_gpc() peut servir à vérifier cela.

La fonction PHP addslashes() définition

Retourne la chaîne string, après avoir échappé tous les caractères qui doivent l'être, pour être utilisée dans une requête de base de données. Ces caractères sont les guillemets simples ('), guillemets doubles ("), antislash (\) et NUL (le caractère NULL).

Un exemple d'utilisation d'addslashes() est lorsque vous entrez des données dans une base de données. Par exemple, pour insérer le nom O'reilly dans la base, vous aurez besoin de le protéger. Il est fortement recommandé d'utiliser les fonctions de protection spécifiques à chaque base de données (telle que mysqli_real_escape_string() pour MySQL par exemple).

Syntaxe
 addslashes(string)
 

Paramètre

Description

string

Requis. La chaîne à échapper.


Exemples pratiques d'utilisation :

Exemple 1

Dans cet exemple nous ajouterons des barres obliques inverses aux caractères prédéfinis dans une chaîne :

Exemple :       Copier le code

  <?php
  $chaine = "Qu'est ce qu’un ours?";
  echo $chaine . "  ceci n'est pas sûr dans une requête de base de données.<br
  />";
  echo addslashes($chaine) . "  ceci est  sûr dans une requête de base de
  données";
  ?>
 

Le rendement du code ci-dessus sera :

	Qu'est ce qu'un ours?  ceci n'est pas sûr dans une requête de base de données.
Qu\'est ce qu\'un ours? ceci est sûr dans une requête de base de données

Exemlpe 2: Saisie de commentaires par les utilisateurs à l'aide d'un formulaire HTML.

Supposons que vous avez une page HTML avec un formulaire où les utilisateurs peuvent saisir des commentaires. Vous voulez vous assurer que les commentaires saisis ne contiennent pas de caractères spéciaux qui pourraient potentiellement provoquer des erreurs de syntaxe ou des problèmes de sécurité lorsque vous les traitez en PHP. Voici comment vous pourriez utiliser la fonction addslashes() pour accomplir cela :

Exemple :       Copier le code

<?php
if(isset($_POST['comment'])) {
$comment = addslashes($_POST['comment']);
// Maintenant, $comment ne contiendra pas de caractères pouvant provoquer des problèmes de sécurité ou de syntaxe

// Vous pouvez maintenant utiliser $comment en toute sécurité dans votre code
// Par exemple, pour l'afficher à l'utilisateur ou le sauvegarder dans une base de données
}
?>
 

Dans cet exemple :
Lorsque l'utilisateur soumet le formulaire, le contenu du champ de texte est récupéré en utilisant $_POST['comment'].
La fonction addslashes() est ensuite appliquée à la valeur de ce champ de texte. Cela ajoute un antislash (\) devant les caractères qui pourraient potentiellement causer des problèmes.
Le résultat est stocké dans la variable $comment, qui peut maintenant être utilisée en toute sécurité dans votre code.
Cela aidera à prévenir les erreurs de syntaxe ou les problèmes de sécurité potentiels si les commentaires contiennent des caractères spéciaux tels que des guillemets, des apostrophes, etc.

Cependant, il est important de noter que l'utilisation de addslashes() n'est pas une solution complète pour la sécurité, en particulier dans le contexte des bases de données. Pour éviter les attaques par injection SQL, il est recommandé d'utiliser des techniques plus avancées comme les requêtes préparées ou les fonctions d'échappement spécifiques aux bases de données, telles que mysqli_real_escape_string() pour MySQL.

Astuces et conseils d'utilisation :

1. Bien que l'ajout d'antislash avec addslashes() puisse aider à prévenir les erreurs de syntaxe, il est recommandé d'utiliser des fonctions spécifiques comme mysqli_real_escape_string() pour les requêtes SQL ou de se familiariser avec les requêtes préparées pour éviter les attaques par injection SQL.

2. Notez que depuis PHP 7.4, la fonction get_magic_quotes_gpc() est obsolète. Cette fonction ajoutait automatiquement des antislashs aux données provenant de formulaires et de requêtes HTTP, ce qui pouvait entraîner une double échappement si vous utilisez déjà addslashes().

En conclusion, la fonction addslashes() est utile pour échapper les caractères spéciaux dans les chaînes de caractères, mais elle doit être utilisée avec précaution et en tenant compte des meilleures pratiques de sécurité.



Par carabde 22 Aout 2014



Voir aussi nos tutoriel :

Détermine si une variable est de type objet">is_object

 Détermine si une variable est de type objet

:first-child

Ajoute un style à un élément qui est le premier enfant d'un autre élément

fonction sscanf, sscanf

Analyse une chaîne l'aide d'un format