version 6.0.5
AP SET WEB FILTERS (filtreEntrée; filtreSortie; jeu)
Paramètre | Type | Description | |
filtreEntrée | Alpha | Nom de la méthode 4D à appeler | |
filtreSortie | Alpha | Nom de la méthode 4D à appeler | |
jeu | Entier long | Jeu de caractères à utiliser pour le filtre de sortie |
Description
La commande AP SET WEB FILTERS désigne les méthodes 4D qui sont appelées lors de l'entrée ou de la sortie d'un stream HTTP. En version client/serveur, cette commande doit être appelée dans une méthode exécutée sur serveur (procédure stockée). Ces filtres sont globaux à tous les process.
Pour ne pas spécifier de filtre d'entrée ou de filtre de sortie, passez une chaîne vide dans le paramètre correspondant.
Le paramètre jeu permet de spécifier le jeu de caractères des données à filtrer :
0 : les données à filtrer sont dans le jeu de caractères du browser.
1 : les données à filtrer sont dans le jeu de caractères Macintosh.
Filtre d'entrée : Le filtre d'entrée est appelé à chaque fois que le browser envoie une requête.
Cette fonction est davantage destinée à recueillir des informations qu'à les filtrer.
Filtre de sortie : Le filtre de sortie est appelé à chaque fois que 4D retourne une réponse au browser (à l'exception des images). Cette fonction est destinée à modifier l'en-tête du stream HTTP ou les données HTML de la page à envoyer.
Exemples
(1) Voici un exemple de méthode appelée en tant que filtre d'entrée :
` Exemple de filtre d'entrée pour connaître l'adresse de celui qui envoie la requête C_BLOB($0;$1) ` $1 contient les données provenant du browser ` $0 contient les données à retourner à 4D ` On suppose que la requête fait moins de 32 ko $flux:=BLOB vers texte($1;Texte sans longueur) $pos:=Position("Host :";$flux) Si ($pos>0) $hote:=Sous chaine($flux;$pos+5;Longueur($flux)) $pos2:=Position(Caractere(13)+Caractere(10);$hote) ` L'adresse de l'hôte est comprise entre Host : et le retour chariot $adressehote:=Sous chaine($hote;1;$pos2-1) ` ... Fin de si $0:=$1 `Retourner les données tel quelles
(2) Voici un exemple de méthode appelée en tant que filtre de sortie :
` Exemple de filtre de sortie qui insère du texte dans la page HTML C_BLOB($0;$1) ` $1 contient les données générées par 4D ` $0 contient les données à envoyer au browser ` On suppose que la page fait moins de 32 ko $0:=$1 `Recopier les données $flux:=BLOB vers texte($0;Texte sans longueur) $pos:=Position("<BODY>";$flux) Si (pos>0) $texte:="<BR><B>Le texte</B><BR><BR>" TEXTE VERS BLOB($texte;$blob;Texte sans longueur) $pos:=$pos+5 `Insérer le texte après <BODY> INSERER DANS BLOB($0;$pos;Longueur($texte)) $postxt:=0 COPIER BLOB($blob;$0;$postxt;$pos;Longueur($texte)) Fin de si