Table des matières

Quelques fonctions utiles

ébauche NPDS propose bien entendu des dizaines de fonctions. Voici une liste des fonctions les plus utiles.

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

<?php
include('header.php');
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');
?>

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:

$user = get_userdata_from_id($cookie[0]);
echo $user["email"];

Affiche l'e-mail du visiteur.

send_email(...)

Envoie un e-mail. Contrairement à la simple 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

send_email('toto@mail.com', 'Sujet', 'Message', 'Webmaster<webmaster@mail.com>', '3', 'text');

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

$chaine = '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>';
echo removeHack($chaine);

Ceci mettra des ! autour de jascript:

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>

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:

$chaine = "J'ai faim";
$chaine = FixQuotes($chaine);
echo $chaine.'<br />';
$chaine = delQuotes($chaine);
echo $chaine;

Affichera

J\'ai faim
J'ai faim

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:

$chaine = 'Voici un mot en <b>gras</b> et un en <i>italique</i>';
echo check_html($chaine, "nohtml");

Affichera

Voici un mot en gras et un en italique

check_words(str)

Censure les mots interdits par la variable $CensorList

Exemple:

$chaine = "I've a big cock";
echo check_words($chaine);

Affichera

I've a big ****

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:

$chaine = "I've a <b>big</b> cock";
echo filter_text($chaine, "nohtml");

Affichera

I've a big ****