1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171
| <?php
function afficher_tableau($tableau,$titre="",$niveau=0) {
// Paramètres
// - $tableau = tableau dont il faut afficher le contenu
// - $titre = titre à afficher au dessus du contenu
// - $niveau = niveau d'affichage
// s'il y a un titre, l'afficher
if ($titre != "") {
echo "<P><B>$titre</B><BR>\n";
}
// tester s'il y des données
if (isset($tableau)) { // il y a des données
// parcourir le tableau passé en paramètre
reset ($tableau);
while (list ($cle, $valeur) = each ($tableau)) {
// afficher la clé (avec indentation fonction
// du niveau)
echo
str_pad("",12*$niveau, " ").
htmlentities($cle)." = ";
// afficher la valeur
if (is_array($valeur)) { // c'est un tableau ...
// mettre une balise <BR>
echo "<BR>";
// et appeler récursivement afficher_tableau pour
// afficher le tableau en question (sans titre et au
// niveau supérieur pour l'indentation)
afficher_tableau($valeur,"",$niveau+1);
} else { // c'est une valeur scalaire
// afficher la valeur
echo htmlentities($valeur)."<BR>";
}
}
} else { // pas de données
// mettre une simple balise <BR>
echo "<BR>\n";
}
}
function supprimer_encodage_MQ_GPC() {
// Si magic quotes est actif ...
if (get_magic_quotes_gpc()) {
// Définir une fonction "strip_slashes" qui accepte un
// paramètre par référence (important) et qui lui applique
// la fonction "stripslashes".
function strip_slashes(&$valeur) {
$valeur = stripslashes($valeur);
}
// Appliquer cette fonction "strip_slashes" de façon récursive
// à tous les tableaux GPC.
array_walk_recursive($_POST, 'strip_slashes');
array_walk_recursive($_GET, 'strip_slashes');
array_walk_recursive($_REQUEST, 'strip_slashes');
array_walk_recursive($_COOKIE, 'strip_slashes');
}
}
function supprimer_encodage_MQ($valeur) {
// si magic quotes est actif, retourner
// la valeur après suppression de l'encodage
// (=> appel à stripslashes), sinon, retourner
// la valeur
return (get_magic_quotes_gpc())?
stripslashes($valeur):$valeur;
}
function valeur_saisie($valeur) {
return supprimer_encodage_MQ (trim($valeur));
}
function vers_formulaire($valeur) {
// affichage dans un formulaire
// encoder tous les caractères HTML spéciaux
// - ENT_QUOTES : dont " et '
return htmlentities($valeur,ENT_QUOTES,'UTF-8');
}
function vers_page($valeur) {
// affichage direct dans une page
// 1. encoder tous les caractères HTML spéciaux
// - ENT_QUOTES : dont " et '
// 2. transformer les sauts de ligne en <BR>
return nl2br(htmlentities($valeur,ENT_QUOTES,'UTF-8'));
}
function construire_requête($db,$sql) {
// Récupérer le nombre de paramètre.
$nombre_param = func_num_args();
// Boucler sur tous les paramètres à partir du troisième
// (le premier contient la requête de base).
for($i=2;$i<$nombre_param;$i++) {
// Récupérer la valeur du paramètre.
$valeur = func_get_arg($i);
// Si c'est une chaîne, l'échapper.
if (is_string($valeur)) {
$valeur = mysqli_escape_string($db,$valeur);
}
// Mettre la valeur à son emplacement %n (n = $i-1).
$sql = str_replace('%'.($i-1),$valeur,$sql);
}
// Retourner la requête.
return $sql;
}
function identifiant_unique() {
// génération de l'identifiant
return md5(uniqid(rand()));
}
function url($url) {
// si la directive de configuration session.use_trans_sid
// est à 0 (pas de transmission automatique par l'URL) et
// si SID est non vide (le poste a refusé le cookie) alors
// il faut gérer soi même la transmission
if ((get_cfg_var("session.use_trans_sid") == 0) and (SID != "")) {
// ajouter la constante SID derrière l'URL avec un ?
// s'il n'y a pas encore de paramètre ou avec un & dans
// le cas contraire
$url .= ((strpos($url,"?") === FALSE)?"?":"&").SID;
}
return $url;
}
?> |
Partager