begin process at 2010 02 09 21:26:59
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Chaîne de caratère

 > GÉRER LES ÉCHAPPEMENTS DE CARACTÈRES SUR TABLEAUX MULTIDIMENSIONNELS

GÉRER LES ÉCHAPPEMENTS DE CARACTÈRES SUR TABLEAUX MULTIDIMENSIONNELS


 Information sur la source

Note :
9 / 10 - par 2 personnes
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Chaîne de caratère Niveau :Initié Date de création :03/03/2005 Vu / téléchargé :5 381 / 130

Auteur : GRenard

Ecrire un message privé
Site perso
Commentaire sur cette source (8)
Ajouter un commentaire et/ou une note

 Description

Voici une fonction qui permet de rajouter des backslash devant les caractères qui peuvent être problématique dans votre code.
Mais à quoi ca sert réellement ? Vous pouvez éviter l'injonction SQL, les problèmes d'affichage dans votre site web et vos formulaire.
Vous n'avez qu'à vérifier si la fonction get_magic_quotes_gpc() n'est pas activée. Si tel est le cas, je vous conseille d'utiliser cette fonction.
Cette fonction est récursive, elle s'appelle elle même pour que tout vos valeurs soient problématiques dans un tableau soient précédées d'un backslash.

Source

  • <?php
  • /**
  • * Ajoute des BackSlash avec la fonction addslashes à toutes
  • * les valeurs de $table.
  • * Cette fonction supporte le multi-table.
  • *
  • * @param string[] $table Tableau à ajouter les slashes
  • */
  • function addSlash(&$table){
  • if(is_array($table)){
  • reset($table);
  • while(list($key, $value) = each($table))
  • if(is_array($table[$key]))
  • addSlash($table[$key]);
  • else
  • $table[$key] = addslashes($value);
  • reset($table);
  • }
  • }
  • ?>
  • <?php
  • // Ajoute des \ si le magic_quotes_gpc est a off
  • if(!get_magic_quotes_gpc()){
  • addSlash($_GET);
  • addSlash($_POST);
  • addSlash($_COOKIE);
  • }
  • ?>
<?php
/**
 * Ajoute des BackSlash avec la fonction addslashes à toutes
 * les valeurs de $table.
 * Cette fonction supporte le multi-table.
 *
 * @param string[] $table Tableau à ajouter les slashes
 */
function addSlash(&$table){
	if(is_array($table)){
		reset($table);
		while(list($key, $value) = each($table))
			if(is_array($table[$key]))
				addSlash($table[$key]);
			else
				$table[$key] = addslashes($value);
		reset($table);
	}
}
?>

<?php
// Ajoute des \ si le magic_quotes_gpc est a off
if(!get_magic_quotes_gpc()){
	addSlash($_GET);
	addSlash($_POST);
	addSlash($_COOKIE);
}
?>

 Conclusion

Fonctionne sur PHP4 et PHP5.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture LECTURE/ÉCRITURE DE TAGS ID3 VERSION 1 ET VERSION 2
Source avec Zip Source avec une capture PROJECT SELECTOR (SÉLECTION FACILE DE PROJET AVEC APACHE) ET...
Source avec Zip Source avec une capture STATISTIQUES DE VOTRE PROJET (NOMBRE DE DOSSIERS, FICHIERS, ...
Source avec Zip Source avec une capture AFFICHAGE TABLEAU AVEC TEMPLATE CLASSE
Source avec Zip TRI FUSION - MERGESORT

 Sources de la même categorie

Source avec Zip GÉNÉRER UN MOT DE PASS ALÉATOIRE par narkos2
UNICODE TO HTML ENTITIES par CrazyShooter
Source avec Zip DÉBUTANT : FONCTION POUR TRANSFORMER UN TEMPS EN SECONDES EN... par MonkeyIsBack
FONCTION QUI GÉNÈRE UN CODE GRÂCE À L'ORTOGRAPHE ET LA PRONO... par foofymany
Source avec Zip TRADUCTION DE FICHIERS DE LANGUE AVEC GOOGLE GTRANSLATE par madislak

Commentaires et avis

Commentaire de Anthomicro le 03/03/2005 16:29:15

Salut,

Le problème (si on peut appeler ça comme ça) est que ça fait des addslashes sur tous les tableaux, et pas seulement sur les variables dont on se sert sur le script en cours, perte de performances donc...

Ensuite tu aurais pu faire la même chose avec stripslashes...

Enfin bon ce n'est qu'un détail...

Commentaire de Anthomicro le 03/03/2005 16:30:33

Je fais ma pub au passage :

pour toutes sortes de variables (tableaux, chaînes, etc...), ça gère également le stripslashes :

http://www.phpcs.com/code.aspx?ID=29887

Commentaire de Anthomicro le 03/03/2005 16:40:42

ça m'a donné une idée pour le passage par référence ^^

Commentaire de fuckya le 04/03/2005 11:15:19

Quel floodeur celui la :D

Au fait, c'est pas injEction SQL ?

Commentaire de fuckya le 04/03/2005 11:17:01

Et heu je crois (mais je suis réelement pas sur du tout du tout) que foreach est plus rapide que while(list($key, $value) = each($table)) mais je sais pas si c'est possible d'exécuter ton code avec foreach :)

Commentaire de Anthomicro le 04/03/2005 11:42:13

Lol ^^

ouais pour le flood désolé, sinon c'est bien injection ;-)

Commentaire de GRenard le 04/03/2005 13:06:29

Avec PHP5, la différence est rendu extrèmement minime... par contre avec PHP4, c'est vrai qu'un foreach prend plus de temps. D'après un site web, j'ai fait un tit bench :

1 : foreach($aHash as $val); : 0.080000
2 : while(list(,$val) = each($aHash)); : 0.083000
3: foreach($aHash as $key=>$val); : 0.048000
4: while(list($key,$val)= each($aHash)); : 0.078000
5: foreach($aHash as $key=>$val) $tmp[] = &$aHash[$key]; : 0.102000
6: while(list($key) = each($aHash)) $tmp[]=&$aHash[$key]; : 0.114000
7: Get key-/ value-array: foreach($aHash as $key[]=>$val[]); : 0.071000
8: Get key-/ value-array: array_keys() / array_values() : 0.036000

Il s'agit bien de l'injection SQL.

Stop flood anthomicro... et répond pas à ce message en disant "ok".

Commentaire de Anthomicro le 04/03/2005 13:35:43

Ok ^^

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,343 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales