From da1d9737b3bb867118d0b2b0da4113b62950188d Mon Sep 17 00:00:00 2001 From: Jim Jagielski Date: Wed, 6 Feb 2013 20:43:02 +0000 Subject: [PATCH] xforms git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1443203 13f79535-47bb-0310-9956-ffa450edef68 --- docs/manual/expr.html.fr | 3 +- docs/manual/expr.xml.fr | 2 +- docs/manual/howto/ssi.html.fr | 8 -- docs/manual/howto/ssi.xml.meta | 2 +- docs/manual/mod/mod_cache.html.fr | 14 +-- docs/manual/mod/mod_cache.xml.meta | 2 +- docs/manual/mod/mod_lua.html.fr | 196 +++++++++++++++++++++++++++++ docs/manual/mod/mod_lua.xml.fr | 2 +- 8 files changed, 209 insertions(+), 20 deletions(-) diff --git a/docs/manual/expr.html.fr b/docs/manual/expr.html.fr index 16804edc11..c16696850b 100644 --- a/docs/manual/expr.html.fr +++ b/docs/manual/expr.html.fr @@ -436,7 +436,8 @@ listfunction ::= listfuncname "(" word ")" resp Lit l'en-tête de réponse HTTP reqenv - Recherche une variable d'environnement de requête + Recherche une variable d'environnement de requête (on + peut aussi utiliser le raccourci v). osenv Recherche une variable d'environnement du système d'exploitation diff --git a/docs/manual/expr.xml.fr b/docs/manual/expr.xml.fr index ac04584134..e158474e9f 100644 --- a/docs/manual/expr.xml.fr +++ b/docs/manual/expr.xml.fr @@ -1,7 +1,7 @@ - + diff --git a/docs/manual/howto/ssi.html.fr b/docs/manual/howto/ssi.html.fr index 29c3f86c2d..20dde9131e 100644 --- a/docs/manual/howto/ssi.html.fr +++ b/docs/manual/howto/ssi.html.fr @@ -28,8 +28,6 @@  ja  |  ko 

-
Cette traduction peut être périmée. Vérifiez la version - anglaise pour les changements récents.

Les SSI permettent d'ajouter du contenu dynamique à des documents HTML préexistants.

@@ -481,12 +479,6 @@ HTML pr <!--#endif -->

-

Notez que je n'ai rien contre IE sur Macintosh - J'ai juste - phosphoré quelques heures la semaine dernière pour faire fonctionner - du JavaScript sous IE sur Macintosh, alors qu'il fonctionnait sous - tout autre environnement. Ce qui précède a constitué un - contournement provisoire.

-

Toute autre variable (que vous avez définie, ou une variable d'environnement normale) peut être utilisée dans les expressions conditionnelles. Associée à la possibilité avec Apache de définir diff --git a/docs/manual/howto/ssi.xml.meta b/docs/manual/howto/ssi.xml.meta index 1c020635eb..0d8deb802c 100644 --- a/docs/manual/howto/ssi.xml.meta +++ b/docs/manual/howto/ssi.xml.meta @@ -8,7 +8,7 @@ en - fr + fr ja ko diff --git a/docs/manual/mod/mod_cache.html.fr b/docs/manual/mod/mod_cache.html.fr index 82dba0de50..e65b71411e 100644 --- a/docs/manual/mod/mod_cache.html.fr +++ b/docs/manual/mod/mod_cache.html.fr @@ -29,8 +29,6 @@  ja  |  ko 

-
Cette traduction peut être périmée. Vérifiez la version - anglaise pour les changements récents.
@@ -551,23 +549,25 @@ URL] être activée.

-# Mise en cache de contenu
+# Mise en cache de contenu (gestionnaire normal seulement)
+CacheQuickHandler off
 <Location /foo>
     CacheEnable disk
 </Location>
 
-# Mise en cache via une expression rationnelle
+# Mise en cache via une expression rationnelle (gestionnaire normal seulement)
+CacheQuickHandler off
 <LocationMatch foo$>
     CacheEnable disk
 </LocationMatch>
 
-# Mise en cache des URLs mandatées
+# Mise en cache des URLs mandatées (gestionnaire normal ou rapide)
 CacheEnable  disk  /
 
-# Mise en cache des URLs FTP mandatées
+# Mise en cache des URLs FTP mandatées (gestionnaire normal ou rapide)
 CacheEnable  disk  ftp://
 
-# Mise en cache des contenus situés dans www.example.org
+# Mise en cache des contenus situés dans www.example.org (gestionnaire normal ou rapide)
 CacheEnable  disk  http://www.example.org/
     
diff --git a/docs/manual/mod/mod_cache.xml.meta b/docs/manual/mod/mod_cache.xml.meta index 29181a9f48..92f1aa1403 100644 --- a/docs/manual/mod/mod_cache.xml.meta +++ b/docs/manual/mod/mod_cache.xml.meta @@ -8,7 +8,7 @@ en - fr + fr ja ko diff --git a/docs/manual/mod/mod_lua.html.fr b/docs/manual/mod/mod_lua.html.fr index 8d3809fac2..d50f8700b1 100644 --- a/docs/manual/mod/mod_lua.html.fr +++ b/docs/manual/mod/mod_lua.html.fr @@ -84,6 +84,7 @@ jour.
  • Structures de données
  • Fonctions de journalisation
  • Paquet apache2
  • +
  • Connectivité aux bases de données
  • top
    @@ -487,6 +488,13 @@ end corps de la réponse + +
    +	r:dbacquire(dbType[, dbParams]) -- Acquiert une connexion à une
    +base de données et renvoie une classe database. Voir 'Connectivité aux bases de données' pour plus de
    +détails.
    +        
    + @@ -531,6 +539,194 @@ contenu suivant :

    Constantes internes utilisées par mod_proxy

    Les autres codes d'état HTTP ne sont pas encore implémentés.

    +
    top
    +
    +

    Connectivité aux bases de données

    + +

    Mod_lua implémente une fonctionnalité basique de connexion aux +bases de données permettant d'envoyer des requêtes ou d'exécuter des +commandes auprès des moteurs de base de données les plus courants +(mySQL, PostgreSQL, FreeTDS, ODBC, SQLite, Oracle), ainsi que mod_dbd. +

    +

    L'exemple suivant montre comment se connecter à une base de +données et extraire des informations d'une table :

    +
    +function handler(r)
    +    -- connexion à la base de données
    +    local database, err = r:dbacquire("mysql", "server=localhost,user=root,dbname=mydb")
    +    if not err then
    +        -- Sélection de certaines informations
    +        local results, err = database:select(r, "SELECT `name`, `age` FROM `people` WHERE 1")
    +        if not err then
    +            local rows = results(0) -- extrait tous les enregistrements en mode synchrone
    +            for k, row in pairs(rows) do
    +                r:puts( string.format("Name: %s, Age: %s<br/>", row[1], row[2]) )
    +            end
    +        else
    +            r:puts("Database query error: " .. err)
    +        end
    +        database:close()
    +    else
    +        r:puts("Connexion à la base de données impossible : " .. err)
    +    end
    +end
    +    
    + +

    + Pour utiliser mod_dbd, spécifiez +mod_dbd comme type de base de données, ou laissez le champ +vide : +

    +
    +    local database = r:dbacquire("mod_dbd")
    +    
    + +

    L'objet database et ses méthodes

    + +

    L'objet database renvoyé par dbacquire possède +les méthodes suivantes :

    +

    Sélection normale et requête vers une base de données +:

    +
    +-- Exécution d'une requête et renvoie du nombre d'enregistrements
    +affectés :
    +local affected, errmsg = database:query(r, "DELETE FROM `tbl` WHERE 1")
    +
    +-- Exécution d'une requête et renvoie du résultat qui peut être utilisé
    +en mode synchrone ou asynchrone :
    +local result, errmsg = database:select(r, "SELECT * FROM `people` WHERE 1")
    +    
    + +

    Utilisation de requêtes préparées (recommandé) :

    +
    +-- Création et exécution d'une requête préparée :
    +local statement, errmsg = database:prepare(r, "DELETE FROM `tbl` WHERE `age` > %u")
    +if not errmsg then
    +    local result, errmsg = statement:query(20) -- exécute la requête pour age > 20
    +end
    +
    +-- Extrait une requête préparée depuis une directive DBDPrepareSQL :
    +local statement, errmsg = database:prepared(r, "someTag")
    +if not errmsg then
    +    local result, errmsg = statement:select("John Doe", 123) -- injecte les valeurs "John Doe" et 123 dans la requête
    +end
    +
    +
    + +

    Echappement de valeurs, fermeture de la base données, +etc...

    +
    +-- Echappe une valeur pour pouvoir l'utiliser dans une requête :
    +local escaped = database:escape(r, [["'|blabla]])
    +
    +-- Ferme une base de données et libère les liens vers cette dernière :
    +database:close()
    +
    +-- Vérifie si une connexion à une base de données est en service et
    +opérationnelle :
    +local connected = database:active()
    +    
    + + +

    Travail avec les jeux d'enregistrements renvoyés par les requêtes

    + +

    Les jeux d'enregistrements renvoyés par db:select ou par des +requêtes préparées créées par db:prepare permettent de +sélectionner des enregistrements en mode synchrone ou +asynchrone, selon le nombre d'enregistrements spécifié :
    + result(0) sélectionne tous les enregistrements en mode +synchrone en renvoyant une table d'enregistrements.
    + result(-1) sélectionne le prochain enregistrement disponible en +mode asynchrone.
    + result(N) sélectionne l'enregistrement numéro +N en mode asynchrone. +

    +
    +-- extrait un jeu d'enregistrements via une requête régulière :
    +local result, err = db:select(r, "SELECT * FROM `tbl` WHERE 1")
    +
    +local rows = result(0) -- sélectionne tous les enregistrements en mode synchrone
    +local row = result(-1) -- sélectionne le prochain enregistrement disponible en mode asynchrone
    +local row = result(1234) -- sélectionne l'enregistrement 1234 en mode asynchrone
    +    
    + +

    Il est possible de construire une fonction qui renvoie une +fonction itérative permettant de traiter tous les enregistrement en mode +synchrone ou asynchrone selon la valeur de l'argument async : +

    +
    +function rows(resultset, async)
    +    local a = 0
    +    local function getnext()
    +        a = a + 1
    +        local row = resultset(-1)
    +        return row and a or nil, row
    +    end
    +    if not async then
    +        return pairs(resultset(0))
    +    else
    +        return getnext, self
    +    end
    +end
    +
    +local statement, err = db:prepare(r, "SELECT * FROM `tbl` WHERE `age` > %u")
    +if not err then
    +     -- sélectionne des enregistrements en mode asynchrone :
    +    local result, err = statement:select(20)
    +    if not err then
    +        for index, row in rows(result, true) do
    +            ....
    +        end
    +    end
    +
    +     -- sélectionne des enregistrements en mode synchrone :
    +    local result, err = statement:select(20)
    +    if not err then
    +        for index, row in rows(result, false) do
    +            ....
    +        end
    +    end
    +end
    +    
    + + +

    Fermeture d'une connexion à une base de données

    + + +

    Lorsqu'elles ne sont plus utilisées, les connexions aux bases de +données doivent être fermées avec database:close(). Si vous +ne les fermez pas manuellement, mod_lua les fermera peut-être en tant +que résidus collectés, mais si ce n'est pas le cas, vous pouvez finir +pas avoir trop de connexions vers la base de données inutilisées. Les +deux mesures suivantes sont pratiquement identiques : +

    +
    +-- Méthode 1 : fermeture manuelle de la connexion
    +local database = r:dbacquire("mod_dbd")
    +database:close() -- c'est tout
    +
    +-- Méthode 2 : on laisse le collecteur de résidus la fermer
    +local database = r:dbacquire("mod_dbd")
    +database = nil -- on coupe le lien
    +collectgarbage() -- fermeture de la connexion par le collecteur de résidus
    +
    + + +

    Précautions à prendre lorsque l'on travaille avec les bases +de données

    + +

    Bien que les fonctions query et run +soient toujours disponibles, il est recommandé d'utiliser des requêtes +préparées chaque fois que possible, afin d'une part d'optimiser les +performances (si votre connexion reste longtemps en vie), et d'autre part +minimiser le risque d'attaques par injection SQL. Les fonctions +run et query ne doivent être utilisées que +lorsque la requête ne contient pas de variables (requête statique). Dans +le cas des requêtes dynamiques, utilisez db:prepare ou +db:prepared. +

    + +
    top

    LuaAuthzProvider Directive

    diff --git a/docs/manual/mod/mod_lua.xml.fr b/docs/manual/mod/mod_lua.xml.fr index 235def48ea..f8c492d831 100644 --- a/docs/manual/mod/mod_lua.xml.fr +++ b/docs/manual/mod/mod_lua.xml.fr @@ -1,7 +1,7 @@ - + -- 2.40.0
    Description:Filtre de mise en cache HTTP conforme à la RFC 2616
    Statut:Extension
    Identificateur de Module:cache_module