Différences

Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.

Lien vers cette vue

codeur:fonction [2007/03/17 17:22]
tito removeHack
codeur:fonction [2007/08/14 17:31] (Version actuelle)
delennege
Ligne 1: Ligne 1:
 ====== Quelques fonctions utiles ====== ====== Quelques fonctions utiles ======
 +{{message>ébauche}}
 NPDS propose bien entendu des dizaines de fonctions. Voici une liste des fonctions les plus utiles. NPDS propose bien entendu des dizaines de fonctions. Voici une liste des fonctions les plus utiles.
  
-===== removeHack(str) ===== + 
-Cette fonction supprime les tentatives de piratage dans la chaine que vous lui soumettezIl est conseillé de faire passer toutes les chaines que les utilisateurs peuvent modifier (formulaires, cookie) dans cette fonction.+===== autorisation(int) ===== 
 +Retourne ''true'' ou ''false'' selon les droits d'accès du visiteur. 
 + 
 +Dans certains codes, il peut être très intéressant de limiter l'accès à certaines personnes, ou d'afficher un contenu différent. NPDS permet différents niveaux de protection : anonyme, membre, administrateur ou membre d'un groupe 
 + 
 +Voici la liste des nombres que vous pouvez mettre en paramètre. 
 +^ Nombre ^ autorisation() retourne true si... ^ 
 +^  -127  | le visiteur est administrateur | 
 +^  -1  | le visiteur est anonyme (et n'est pas membre
 +^  1  | le visiteur est membre | 
 +^  > 1  | le visiteur est membre du groupe ayant l'ID indiqué | 
 +^  0  | inutile donc indispensable : retourne true dans tous les cas |
  
 **Exemple** **Exemple**
 <code php><?php <code php><?php
 include('header.php'); include('header.php');
-$chaine = 'Je suis un vilain pirate qui va mettre du+if(autorisation(-127)) { //Admin 
 +  echo 'Vous êtes administrateur<br />'; 
 +
 +if(autorisation(1)) { //Membre 
 +  echo 'Vous êtes membre du site <br />'; 
 +
 +if(autorisation(-1)) { //Anonyme 
 +  echo "Vous êtes anonyme<br />"; 
 +
 +if(autorisation(10)) { //Membre du groupe d'ID 10 
 +  echo "Vous êtes membre du groupe d'ID 10<br />"; 
 +
 +if(autorisation(0)) { //Tous 
 +  echo "Vous faites partie d'une réalité où 1=1. Félicitations! ;-)<br />"; 
 +
 +include('footer.php'); 
 +?></code> 
 + 
 + 
 +===== get_userdata(pseudo) et get_userdata_from_id(id) ===== 
 +Retourne les informations de l'utilisateur ''user'' ou d'id ''id'' sous forme de tableau associatif. 
 + 
 +**Astuce:** vous pouvez récupérer le pseudo du visiteur grâce à la varibale ''$cookie[1]''. 
 + 
 +**Exemple:** <code php>$user = get_userdata_from_id($cookie[0]); 
 +echo $user["email"];</code> 
 +Affiche l'e-mail du visiteur. 
 + 
 +===== send_email(...) ===== 
 +Envoie un e-mail. Contrairement à la simple [[http://php.net/manual/fr/function.mail.php|fonction mail]], send_email respecte les paramètres de NPDS (par exemple le choix de la fonction mail ou email). 
 + 
 +Les paramètres sont: 
 +''send_email($email, $subject, $message, $from, $priority, $mime)''. Voici l'explication de chaque paramètre : 
 +^ Paramètre ^ Description ^ 
 +^  $email  | L'adresse de destination. Ex: //toto@mail.com// | 
 +^  $subject  | L'objet du message. Ex: //Merci de votre inscription// | 
 +^  $message  | Le contenu du message. Ex: //Vous êtes maintenant inscrit!// | 
 +^  $from  | L'expéditeur du message. Ex: //webmaster@votre-site// ou  //VotreSite<webmaster@votre-site>// | 
 +^  $priority  | Nombre définissant le niveau d'importance de votre message. Va de 1(très haut) à 5(très bas). Normal: 3. Ex: //3// | 
 +^  $mime  | Format du message (et donc de $message). //html// ou //text// | 
 + 
 +**Exemple** 
 +<code php>send_email('toto@mail.com', 'Sujet', 'Message', 'Webmaster<webmaster@mail.com>', '3', 'text');</code> 
 + 
 +===== Filtres ===== 
 +==== removeHack(str) ==== 
 +Supprime les tentatives de piratage dans la chaine que vous lui soumettez. Il est conseillé de faire passer toutes les chaines que les utilisateurs peuvent modifier (formulaires, cookie) dans cette fonction. 
 + 
 +**Exemple** 
 +<code php>$chaine = 'Je suis un vilain pirate qui va mettre du
     javascript pour pouvoir pirater tous les gentils     javascript pour pouvoir pirater tous les gentils
     visiteurs ignorants!     visiteurs ignorants!
     <script type="text/javascript">alert('Haha!');</script>';     <script type="text/javascript">alert('Haha!');</script>';
-echo removeHack($chaine)+echo removeHack($chaine);</code>
-include('footer.php'); +
-?>;</code>+
  
 Ceci mettra des ! autour de jascript: Ceci mettra des ! autour de jascript:
 <code xml>Je suis un vilain pirate qui va mettre du !javascript! pour pouvoir pirater tous les gentils visiteurs ignorants! <code xml>Je suis un vilain pirate qui va mettre du !javascript! pour pouvoir pirater tous les gentils visiteurs ignorants!
 <script type="text/!javascript!">alert('Haha!');</script></code> <script type="text/!javascript!">alert('Haha!');</script></code>
 +
 +==== FixQuotes(str) et delQuotes(str) ====
 +FixQuotes retourne la chaîne str, 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 ("), anti-slashes (\) et NULL.
 +
 +delQuotes supprime l'effet de FixQuotes.
 +
 +**Exemple:** <code php>$chaine = "J'ai faim";
 +$chaine = FixQuotes($chaine);
 +echo $chaine.'<br />';
 +$chaine = delQuotes($chaine);
 +echo $chaine;
 +</code>
 +Affichera <code>J\'ai faim
 +J'ai faim</code>
 +
 +==== check_html(str[,strip]) ====
 +Supprime tout ou une partie des tags HTML d'une chaine.
 +
 +Si **strip** est défini à "**nohtml**", tous les tags HTML seront supprimés. S'il est différent ou non défini, les seuls tags qui resteront sont ceux définis par la variable ''$AllowableHTML'' de votre fichier config.php.
 +
 +**Exemple:** <code php>$chaine = 'Voici un mot en <b>gras</b> et un en <i>italique</i>';
 +echo check_html($chaine, "nohtml");</code>
 +Affichera <code>Voici un mot en gras et un en italique</code>
 +
 +==== check_words(str) ====
 +Censure les mots interdits par la variable ''$CensorList''
 +
 +**Exemple:** <code php>$chaine = "I've a big cock";
 +echo check_words($chaine);</code>
 +Affichera <code>I've a big ****</code>
 +
 +
 +//Cette fonction devrait évoluée (notamment avec les meta-mot) mais elle restera pour assurer la compatibilité//
 +
 +==== filter_text(str[,strip]) ====
 +Englobe check_html et check_words : revient à faire check_words(check_html(str[,strip])).
 +
 +**Exemple:** <code php>$chaine = "I've a <b>big</b> cock";
 +echo filter_text($chaine, "nohtml");</code>
 +Affichera <code>I've a big ****</code>

Index


Utilisateur

Vous n'ètes pas identifié. Vous pouvez vous inscrire ou vous connecter.



Page