IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Apache Discussion :

Problème avec mod_rewrite sur une redirection des requêtes PUT


Sujet :

Apache

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 23
    Points : 10
    Points
    10
    Par défaut Problème avec mod_rewrite sur une redirection des requêtes PUT
    Bonjour,

    J'ai depuis plusieurs jours un problème que je n'arrive pas à résoudre avec modRewrite.
    J'ai simplifié il y a 1 semaine les URL de mon site web en suppriment un niveau (on accède plus au site via www.monsite.com/bla/start mais directement via www.monsite.com/start). Je redirige les utilisateurs utilisant les anciens URL via un RedirectMatch 301.
    Cependant des acteurs externes upload des fichiers sur mon serveur via la requête HTTP PUT et ils ne supportent pas la redirection via un statut 301 et ne peuvent pas modifier les URL avant un long moment.

    J'ai donc essayé d'utiliser mod_rewrite pour pouvoir continuer à recevoir les fichiers mais sans succès...

    J'ai déjà posé ma question sur StackOverflow mais je n'ai toujours pas résolu mon problème.

    Voici l'URL pour avoir plus de détail sur le problème et sur mes tests :
    http://stackoverflow.com/questions/2...or-put-request


    Cela serait super si quelqu'un pouvait me donner quelques pistes à essayé. J'ai déjà fait le tour des docs du mod rewrite de Apache sans succes...

    Merci

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Le comportement observé est parfaitement normal et même attendu : la spec HTTP ne dit rien de précis en ce qui concerne le comportement d'un navigateur (quel qu'il soit) s'il reçoit une réponse de redirection sur un POST ou PUT, tout simplement parce que le navigateur, avec une demande de redirection, de savoir si la redirection est le résultat normal de sa requête POST ou PUT ou si c'est une erreur. Les navigateurs qui reçoivent une réponse 301 ou 302 sur un POST ou un PUT font donc un GET comme requête suivante.

    Ton problème peut être corrigé avec mod_rewrite de la manière suivante : on ne redirige sur les URL sans le bla pour les requêtes qui ne sont pas des PUT. Cette règle remplace le RedirectMatch. Mais avant de donner la solution complète, il me manque un élément : quand tu dis que tu as simplifié les URL, c'est parce que le répertoire bla n'existe plus où bien c'est parce que tu as une RewriteRule qui rajoute le /bla manquant ?

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 23
    Points : 10
    Points
    10
    Par défaut
    Salut,

    Le répertoire bla existe toujours dans le serveur. J'ai fait une migration de serveur et le serveur host maintenant plus que 1 seul site. C'est pourquoi je souhaitais faire la simplification sans pour autant changer la structure de fichier sur le serveur.

    Le répertoire "bla" correspond au repertoire "test" sur ma question sur StackOverflow.

    J'ai déjà commencé à faire des essais avec mod_rewrite (comme tu peux le voir sur StackOverflow) mais pour l'instant sans succès. Je suis en effet passé d'une status 301 à une erreur 404...

    Merci pour ton aide!

  4. #4
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Si je reprends la conf que tu donnes sur stackoverflow, il faut mettre ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    RewriteEngine on
     
    # Redirection si on vient avec /bla... et que ce n'est pas une requete PUT
    # Remplace le RedirectMatch
    RewriteCond %{REQUEST_METHOD} !PUT
    RewriteCond %{REQUEST_URI} ^/bla
    RewriteCond %{QUERY_STRING} !internal_redirect=1
    RewriteRule ^/bla/?(.*) /$1 [R=301,L]
     
    # Reecriture sur /bla
    RewriteCond %{REQUEST_URI} !^/bla
    RewriteRule (.*) /bla$1?internal_redirect=1 [QSA,L]
    Dans ce cas, s'il y a une requête PUT, l'ancienne URL en /bla continuera de fonctionner. A TESTER.

  5. #5
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 23
    Points : 10
    Points
    10
    Par défaut
    Merci beaucoup!

    Je vais tester cela.
    Je ne comprend pas bien à quoi correspond les lignes avec "internal_redirect".

    Pourrais tu m'éclairer?

  6. #6
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Ben je pense que si on ne met pas un truc pour faire la différence entre les requêtes sur /bla venant d'un navigateur et venant d'une réécriture interne, toutes tes pages vont partir en redirection infinie. Il faut savoir que ce n'est pas parce qu'on met un [L] que mod_rewrite arrête son boulot : il rejoue n fois (n = 10 au maximum par défaut) les règles jusqu'à aboutir à une URL qui n'est plus réécrite. Donc si tu demandes /toto, par exemple, la première règle n'est pas activée car ça ne commence pas par /bla et la seconde est activée car justement ça commence pas par /bla. On obtient donc /bla/toto. Maintenant, on recommence la bazar avec ce /bla/toto. Si on n'a pas pris soin de mettre le internal_redirect=1, la première va être activée. En effet, ce n'est pas une requête PUT, l'URL commence par /bla et elle n'a pas l'internal_redirect par hypothèse. Résultat : redirection du navigateur. CQFD. Pour t'amuser et vérifier le raisonnement, tu peux retirer le internal_redirect de la seconde règle. Et n'oublie pas de vider le cache du navigateur après tes tests

  7. #7
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 23
    Points : 10
    Points
    10
    Par défaut
    Salut!

    J'ai fait des tests et ca ne marche pas...

    Voici le log du rewrite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    XX.XXX.XXX.XXX - - [21/May/2010:07:47:50 +0000] [www.myserver.com/sid#7f394dfa7d30][rid#7f394e2aa9b8/initial] (2) init rewrite engine with requested uri /login/homeXX.XXX.XXX.XXX - - [21/May/2010:07:47:50 +0000] [www.myserver.com/sid#7f394dfa7d30][rid#7f394e2aa9b8/initial] (3) applying pattern '^/bla/?(.*)' to uri '/login/home'
    XX.XXX.XXX.XXX - - [21/May/2010:07:47:50 +0000] [www.myserver.com/sid#7f394dfa7d30][rid#7f394e2aa9b8/initial] (3) applying pattern '(.*)' to uri '/login/home'XX.XXX.XXX.XXX - - [21/May/2010:07:47:50 +0000] [www.myserver.com/sid#7f394dfa7d30][rid#7f394e2aa9b8/initial] (4) RewriteCond: input='/login/home' pattern='!^/bla' => matched
    XX.XXX.XXX.XXX - - [21/May/2010:07:47:50 +0000] [www.myserver.com/sid#7f394dfa7d30][rid#7f394e2aa9b8/initial] (2) rewrite '/login/home' -> '/bla/login/home?internal_redirect=1'XX.XXX.XXX.XXX - - [21/May/2010:07:47:50 +0000] [www.myserver.com/sid#7f394dfa7d30][rid#7f394e2aa9b8/initial] (3) split uri=/bla/login/home?internal_redirect=1 -> uri=/bla/login/hom
    e, args=internal_redirect=1XX.XXX.XXX.XXX - - [21/May/2010:07:47:50 +0000] [www.myserver.com/sid#7f394dfa7d30][rid#7f394e2aa9b8/initial] (2) local path result: /bla/login/home
    XX.XXX.XXX.XXX - - [21/May/2010:07:47:50 +0000] [www.myserver.com/sid#7f394dfa7d30][rid#7f394e2aa9b8/initial] (2) prefixed with document_root to /var/www/html/bla/login/home
    XX.XXX.XXX.XXX - - [21/May/2010:07:47:50 +0000] [www.myserver.com/sid#7f394dfa7d30][rid#7f394e2aa9b8/initial] (1) go-ahead with /var/www/html/bla/login/home [OK]XX.XXX.XXX.XXX - - [21/May/2010:07:47:50 +0000] [www.myserver.com/sid#7f394dfa7d30][rid#7f394e2afeb8/initial/redir#1] (2) init rewrite engine with requested uri /error/HTTP_NOT_FOUND.
    html.varXX.XXX.XXX.XXX - - [21/May/2010:07:47:50 +0000] [www.myserver.com/sid#7f394dfa7d30][rid#7f394e2afeb8/initial/redir#1] (3) applying pattern '^/bla/?(.*)' to uri '/error/HTTP_NOT_FOUND
    .html.var'
    XX.XXX.XXX.XXX - - [21/May/2010:07:47:50 +0000] [www.myserver.com/sid#7f394dfa7d30][rid#7f394e2afeb8/initial/redir#1] (3) applying pattern '(.*)' to uri '/error/HTTP_NOT_FOUND.html.va
    r'
    XX.XXX.XXX.XXX - - [21/May/2010:07:47:50 +0000] [www.myserver.com/sid#7f394dfa7d30][rid#7f394e2afeb8/initial/redir#1] (4) RewriteCond: input='/error/HTTP_NOT_FOUND.html.var' pattern='
    !^/bla' => matched
    XX.XXX.XXX.XXX - - [21/May/2010:07:47:50 +0000] [www.myserver.com/sid#7f394dfa7d30][rid#7f394e2afeb8/initial/redir#1] (2) rewrite '/error/HTTP_NOT_FOUND.html.var' -> '/bla/error/HTTP
    _NOT_FOUND.html.var?internal_redirect=1'
    XX.XXX.XXX.XXX - - [21/May/2010:07:47:50 +0000] [www.myserver.com/sid#7f394dfa7d30][rid#7f394e2afeb8/initial/redir#1] (3) split uri=/bla/error/HTTP_NOT_FOUND.html.var?internal_redirect=1 -> uri=/bla/error/HTTP_NOT_FOUND.html.var, args=internal_redirect=1
    XX.XXX.XXX.XXX - - [21/May/2010:07:47:50 +0000] [www.myserver.com/sid#7f394dfa7d30][rid#7f394e2afeb8/initial/redir#1] (2) local path result: /bla/error/HTTP_NOT_FOUND.html.var
    XX.XXX.XXX.XXX - - [21/May/2010:07:47:50 +0000] [www.myserver.com/sid#7f394dfa7d30][rid#7f394e2afeb8/initial/redir#1] (2) prefixed with document_root to /var/www/html/bla/error/HTTP_NOT_FOUND.html.var
    XX.XXX.XXX.XXX - - [21/May/2010:07:47:50 +0000] [www.myserver.com/sid#7f394dfa7d30][rid#7f394e2afeb8/initial/redir#1] (1) go-ahead with /var/www/html/bla/error/HTTP_NOT_FOUND.html.var [OK]
    le probleme semble venir de la : "prefixed with document_root to /var/www/html/bla/login/home"

    Il faut en effet que cet AliasMatch fonctionne pour que le site s'affiche :
    "AliasMatch ^(/.*)?$ "/var/www/bla/www/index.php$1"

    Merci!

  8. #8
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 23
    Points : 10
    Points
    10
    Par défaut
    Je viens de faire un autre essai avec quelque chose d'un peu different :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    RewriteEngine on
    RewriteCond %{REQUEST_METHOD} =PUT
    RewriteRule ^/bla/(.*) /var/www/bla/www/index.php/$1 [L]
    RedirectMatch 301 ^/bla/(.*)$ http://www.monserveur.com/$1
    Voici le log :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    XX.XXX.XXX.XXX - - [21/May/2010:08:08:06 +0000] [www.monserveur.com/sid#7f527f314d30][rid#7f527f617828/initial] (2) init rewrite engine with requested uri /bla/service/put/00409D416111/bonjour.xml
    XX.XXX.XXX.XXX - - [21/May/2010:08:08:06 +0000] [www.monserveur.com/sid#7f527f314d30][rid#7f527f617828/initial] (3) applying pattern '^/bla/(.*)' to uri '/bla/service/put/00409D416111/bonjour.xml'
    XX.XXX.XXX.XXX - - [21/May/2010:08:08:06 +0000] [www.monserveur.com/sid#7f527f314d30][rid#7f527f617828/initial] (4) RewriteCond: input='PUT' pattern='=PUT' => matched
    XX.XXX.XXX.XXX - - [21/May/2010:08:08:06 +0000] [www.monserveur.com/sid#7f527f314d30][rid#7f527f617828/initial] (2) rewrite '/bla/service/put/00409D416111/bonjour.xml' -> '/var/www/bla/www/index.php/service/put/00409D416111/bonjour.xml'
    XX.XXX.XXX.XXX - - [21/May/2010:08:08:06 +0000] [www.monserveur.com/sid#7f527f314d30][rid#7f527f617828/initial] (2) local path result: /var/www/bla/www/index.php/service/put/00409D416111/bonjour.xml
    XX.XXX.XXX.XXX - - [21/May/2010:08:08:06 +0000] [www.monserveur.com/sid#7f527f314d30][rid#7f527f617828/initial] (1) go-ahead with /var/www/bla/www/index.php/service/put/00409D416111/bonjour.xml [OK]
    XX.XXX.XXX.XXX - - [21/May/2010:08:08:06 +0000] [www.monserveur.com/sid#7f527f314d30][rid#7f527f61d858/subreq] (2) init rewrite engine with requested uri /service/put/00409D416111/bonjour.xml
    XX.XXX.XXX.XXX - - [21/May/2010:08:08:06 +0000] [www.monserveur.com/sid#7f527f314d30][rid#7f527f61d858/subreq] (3) applying pattern '^/bla/(.*)' to uri '/service/put/00409D416111/bonjour.xml'
    XX.XXX.XXX.XXX - - [21/May/2010:08:08:06 +0000] [www.monserveur.com/sid#7f527f314d30][rid#7f527f61d858/subreq] (1) pass through /service/put/00409D416111/bonjour.xml
    J'obtiens une erreur 404...
    Si ca peut aider...

  9. #9
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Pourquoi tu gardes le RedirectMatch ? J'ai dit qu'il fallait le remplacer par un RewriteRule pour pouvoir l'associer plus clairement au test "méthode PUT ou pas".

    Pourquoi tu fais une réécriture /var/www/bla/www/index.php/$1 ?

  10. #10
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 23
    Points : 10
    Points
    10
    Par défaut
    Salut,

    J'ai fait ds tests avec ta proposition (premier post avec un log) mais cela me fait planté complétement le site (erreur 404 pour toutes les pages). D'aprés ce que j'ai vu dans le log je me suis mis à essayer une autre solution que j'ai mise dans mon dernier post. C'était juste un essai.

    Le probleme dans ta solution semble venir de la :
    "prefixed with document_root to /var/www/html/bla/login/home"

    Je fais une réécriture /var/www/bla/www/index.php/$1 car toutes les URLs (à part certaine supporté par des AliasMatch comme AliasMatch ^/images/(.*)?$ "/var/www/test/www/images/$1") sont traité par mon script php dont le début est index.php. L'application détermine ensuite quoi faire avec le $1 qui correspond à "controllerName/pageName" en général.

    Les requetes PUT sont ainsi traité par le controller "service" de mon application.

    Merci pour ton aide!

    Benjamin

  11. #11
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    La trace que tu donnes avec mes règles me semble incomplète, je n'arrive pas à retracer tout le cheminement fait par mod_rewrite. Peux-tu refaire un test pour me redonner un log complet avec mes règles, et redonne toute la conf (comme sur stackoverflow) utilisée pour ces tests. Il y a des trucs qui n'apparaissent pas, notamment le test sur la méthode PUT et comme tu le dis, pourquoi on a "prefixed with document_root...".

  12. #12
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 23
    Points : 10
    Points
    10
    Par défaut
    Salut,

    Le test que j'avais fait avec ta solution était juste un test vers le site réel (accès à la page www.monsite.com/login/home). Cette page me retournant déjà une erreur 404 je n'ai pas continué plus loin.
    C'est en effet un site en production et je ne peux pas me permettre de le laisser trop longtemps offline...

    Pour tester ta proposition j'ai exactement mis ta solution avec en plus ces lignes au début :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    RewriteEngine on
    RewriteLog "/etc/httpd/logs/rewrite.log"
    RewriteLogLevel 9
    et celle ci à la fin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    AliasMatch ^/style/(.*)?$ "/var/www/bla/www/style/$1"
    AliasMatch ^/js/(.*)?$ "/var/www/bla/www/js/$1"
    AliasMatch ^/min/(.*)?$ "/var/www/bla/www/min/$1"
    AliasMatch ^/downloads/(.*)?$ "/var/www/bla/www/downloads/$1"
    AliasMatch ^/images/(.*)?$ "/var/www/bla/www/images/$1"
    AliasMatch ^/chart/(.*)?$ "/var/www/bla/www/graphs/$1"
    AliasMatch ^(/.*)?$ "/var/www/bla/www/index.php$1"
     
    <Directory "/var/www/test">
        AllowOverride None
        Allow from all
    </Directory>
    J'avais bien évidemment enlevé le RedirectMatch et tous les anciens Rewrite.

    Merci pour ton aide!

    Benjamin

  13. #13
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Citation Envoyé par bsoufflet Voir le message
    Pour tester ta proposition j'ai exactement mis ta solution avec en plus ces lignes au début
    Désolé de t'embêter avec ça mais pourrais-tu donner la conf complète que tu as utilisée ? Il y a des risques d'interprétation si je remplace moi-même des bouts de ta conf avec ce que j'ai écrit. Donc si ça ne te gêne pas j'aimerais que tu copies ici toute la conf que tu avais utilisée. Je te remercie.

  14. #14
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 23
    Points : 10
    Points
    10
    Par défaut
    Voici la configuration que j'avais utilisé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    RewriteEngine on
    RewriteLog "/etc/httpd/logs/rewrite.log"
    RewriteLogLevel 9
     
    # Redirection si on vient avec /bla... et que ce n'est pas une requete PUT
    # Remplace le RedirectMatch
    RewriteCond %{REQUEST_METHOD} !PUT
    RewriteCond %{REQUEST_URI} ^/bla
    RewriteCond %{QUERY_STRING} !internal_redirect=1
    RewriteRule ^/bla/?(.*) /$1 [R=301,L]
     
    # Reecriture sur /bla
    RewriteCond %{REQUEST_URI} !^/bla
    RewriteRule (.*) /bla$1?internal_redirect=1 [QSA,L]
     
    AliasMatch ^/style/(.*)?$ "/var/www/bla/www/style/$1"
    AliasMatch ^/js/(.*)?$ "/var/www/bla/www/js/$1"
    AliasMatch ^/min/(.*)?$ "/var/www/bla/www/min/$1"
    AliasMatch ^/downloads/(.*)?$ "/var/www/bla/www/downloads/$1"
    AliasMatch ^/images/(.*)?$ "/var/www/bla/www/images/$1"
    AliasMatch ^/chart/(.*)?$ "/var/www/bla/www/graphs/$1"
    AliasMatch ^(/.*)?$ "/var/www/bla/www/index.php$1"
     
    <Directory "/var/www/test">
        AllowOverride None
        Allow from all
    </Directory>
    Dis moi si tu as besoin de plus de détails.

    Merci!

  15. #15
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Je te remercie.

    J'ai pu reconstruire le cheminement. A mon avis, le problème ce sont les AliasMatch, notamment le dernier : c'est lui qui produit le chemin file system (pas une URL, attention) /var/www/bla/www/index.php/bla/login/home qui n'existe effectivement pas, d'où l'erreur 404. Il y a une grosse différence entre ce chemin file system et l'URL /bla/www/index.php/bla/login/home car dans le dernier cas, Apache peut, dans certaines circonstances, identifier qu'il faut exécuter /bla/www/index.php. D'où ma question : pourquoi utilises-tu des AliasMatch ? Pourquoi ne pas plutôt utiliser mod_rewrite ? Et quel est ce répertoire /var/www/bla/www ? Pourquoi n'est pas plus simplement /var/www/bla sans le dernier www ?

Discussions similaires

  1. [MySQL] [MySQL] Problème d'update sur une redirection
    Par Boons49 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 09/03/2009, 16h16
  2. Problème avec coun(*) sur une requête
    Par Kaoru-tabris dans le forum Requêtes
    Réponses: 1
    Dernier message: 10/03/2007, 16h00
  3. [CSS] Problème avec cadre sur une image lien
    Par Strix dans le forum Mise en page CSS
    Réponses: 7
    Dernier message: 24/12/2006, 11h09
  4. Problème export excel sur une requete avec critère
    Par eddyG dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 20/09/2006, 12h46
  5. Problème avec DBI sur une bd access
    Par tfdarklink dans le forum SGBD
    Réponses: 2
    Dernier message: 01/08/2006, 20h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo