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

Langage PHP Discussion :

Problème NTLM Bloquant POST ?


Sujet :

Langage PHP

  1. #1
    Membre actif
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2005
    Messages : 103
    Points : 203
    Points
    203
    Par défaut Problème NTLM Bloquant POST ?
    Bonjour,

    J'ai posté dans ce forum ne sachant pas exactement d'où vient l'erreur, j'hésite entre une erreur apache ou une erreur php, (la seconde hypothése semble la plus probable).

    Mon problème est simple et étrange à la fois, j'ai une erreur sur la méthode POST, d'un de mes formulaires d'envois de fichiers. Mais cette erreur n'apparait pas toujours.

    Pour faire mes test j'ai donc crée un formulaire de base et un fichier php récupérant le nom du fichier envoyé :

    Page : test.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <html>
    <body>
    <p>
    <form method="post" enctype="multipart/form-data" action="test2.php">
        <input type="file" name="userfile" size="50">
        <br>
        <input type="submit" value="Envoi">
    </form>
    </p>
    </body>
    </html>
    Page test2.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
     
        echo "Le fichier ".$_FILES['userfile']['name'];
     
    ?>
    J'ai fait volontairement simple pour pouvoir voir l'erreur, si j'execute ce code dans mon environnement Easyphp 2.0 (pour situer l'environnement), sans avoir rien executé avant le script fonctionne correctement.

    Par contre si je l'éxecute (en appelant ces pages) dans l'intranet que je fait. Le script ne fonctionne pas il en va de même pour toutes mes méthodes POST elles se retrouvent bloquées.

    Une fois l'intranet lancé et plusieurs pages éxecuté notament celle de ce script, si par la suite je relance toute seule la page test.php, elle bug toujours.

    Je suppose que quelques choses bloques les méthodes POST, dans cet Intranet, j'utilise pas mal l'ajax, et pour les retours de donées sous ie j'ai posé ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
    	header('Last-Modified: ' . gmdate("D, d M Y H:i:s") . ' GMT');
    	header('Cache-Control: no-store, no-cache, must-revalidate');
    	header('Cache-Control: post-check=0, pre-check=0', false);
    	header('Pragma: no-cache');
    Le problème peut-il venir de là ? Faut il chercher ailleurs ? Quelqu'un a une idée ?

    Précision : je n'utilise pas ssl_security donc l'erreur post je pense ne vient pas du bug entre ceci et apache 2.

    Merci d'avance pour vos réponses, car moi je comprend vraiment pas d'où ca peut venir.

  2. #2
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    • Tu as testé plusieurs l'upload avec le même fichier ?
    • Avec set_time_limit(0) ?
    • Après ton post, le dossier tmp d'apache contient-il bien un fichier de taille égale à celui envoyé ?
    • As-tu essayé l'upload avec le code proposé dans la faq ?
    http://antoine-herault.developpez.co...ls/php/upload/

  3. #3
    Membre actif
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2005
    Messages : 103
    Points : 203
    Points
    203
    Par défaut
    Comme je l'ai déjà dit l'upload fonctionne correctement, et même l'envoi multiple de fichier, et tout les formulaires en méthode POST marche aussi quand je l'ai lancé directement sans avoir lancé une seule fois l'intranet que je développe.

    Je viens de refaire des test, j'avais pas testé certaines partie, mais le problème s'étend à tout l'intranet que je développe, dés qu'il s'agit d'une méthode POST dans un formulaire celle-ci ne renvois rien.

    Pour info, avant était déjà exploité un module de l'intranet et il marchait parfaitement notament ses divers formulaires d'uploads et formulaires utilisant méthode POST.

    On m'a demandé par la suite de développer, d'autres modules et de les ratacher à un portail Intranet, le portail Intranet est basique il sert de menu, et permet de vérifier que la personne peut accéder à l'intranet, ensuite les modules sont gréffés dessus, notamelement le module déjà en exploitation qui ne marche plus maintenant.

    Donc d'après les nouvelles recherches il y a bien quelque chose dans mon application Intranet qui bloque les méthodes POST, mais quoi ?

    Ce qui a changé par rapport à l'ancien module qui tournait tout seul :
    - l'authentification ce fait maintenant par NTLM
    - l'utilisation d'AJAX dans pas mal de traitement

    Sinon tout le reste est basique.

  4. #4
    Membre actif
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2005
    Messages : 103
    Points : 203
    Points
    203
    Par défaut
    C'est encore moi, désolé je vous fait un peu du live là, j'ai cherché ce qui changé entre ma phase de test et celle d'exploitation et j'ai localisé précisement le problème.

    En désactivant le module d'authentification NTLM (comme durant mes test), toutes mes méthodes POST remarche et tout fonctionne correctement donc le problème vient de se coter là.

    Me faut maintenant trouver une solution, si au passage quelqu'un sait pourquoi le NTLM bloque les méthodes POST

    merci d'avance.

  5. #5
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Je n'avais pas bien saisi ta question, surtout le rapport avec PHP dans tout ça... Bref. Maintenant que tu as localisé le bug sur le NTLM, je pense qu'il faudrait expliquer comment tu as ajouté cette authentification. D'après ce que j'ai pu lire sur le net à propos de l'auhentification NTLM, il faut installer un service suplémentaire au serveur...

    http://modntlm.sourceforge.net/
    http://davenport.sourceforge.net/ntlm.html
    http://fr.wikipedia.org/wiki/NTLM
    http://www.thebluesmokeband.com/mod_ntlm.php

    [EDIT] ps: Tu as bien fait de modifier le titre du sujet

  6. #6
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    J'ai trouvé ce code PHP sur le net qui permet de faire l'authentification NTLM. Apparemment, il pose les mêmes problèmes que toi. Je t'envoi le lien par MP (site concurent). Si tu trouves une solution, merci de nous en faire profiter.

  7. #7
    Membre actif
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2005
    Messages : 103
    Points : 203
    Points
    203
    Par défaut
    Merci pour les deux liens, j'avais déjà trouvées ces deux sujets, notament le second, j'essaye de voir comment faire par cookies comme il le dit lui.

    Petite explication de mon script, la personne entre dans son navigateur l'adresse, arrive sur une page avec un bouton connexion, elle clique dessus, de là,
    je fais par ajax, une interrogation d'un fichier connexion.php, qui contient la verification ntlm, plus l'ajout de la session dans la base de donnée.
    Ensuite la personne est redirigé sur la page principale index.php
    Qui vérifie dans la base de données les informations sur l'utilisateur et si un session est ouverte, si c'est le cas, l'affichage est celui de l'intranet, sinon c'est le bouton connexion.

    Voilà, donc visiblement si l'authentification NTLM est utilisé, les pages par la suite ne peuvent utiliser la méthode POST (pour le ntlm j'utilise un code différent du lien que tu m'as envoyés, mais j'ai fait les tests aussi avec ce code est même problème, les deux codes sont sur le même principe).

    Par contre je vois pas comment utiliser un cookies pour régler le problème, si tu as une idée.

  8. #8
    Membre actif
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2005
    Messages : 103
    Points : 203
    Points
    203
    Par défaut
    Bon j'ai trouvé une solution,

    je qui me permet après l'utilisation de l'authentification NTLM de récupérer les méthodes POST, je renvoi au header de changer de mode, on quitte le ntlm pour repasser en negociate :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header('WWW-Authenticate: Negotiate');

  9. #9
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 13
    Points : 11
    Points
    11
    Par défaut
    Salut,

    J'ai le même problème que toi, et ta solution marche (donc merci ), mais j'ai une fenêtre qui me demande de m'authentifier (Connexion à ..... Nom utilisateur : ...... Mot de passe : .......... OK / Annuler). Lorsque je clic sur Annuler c'est bon, mais n'y a-t'il pas moyen d'enlever cette fenêtre ??

    Merci d'avance

  10. #10
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Ce problème me concerne également pour l'authentification dans un intranet.

    Il semblerait que l'authentification NTLM n'impacte que son niveau d'arborescence. c'est à dire que si le formulaire POST permettant l'upload de fichier est à un niveau plus haut de l'arborescence où est appelée l'auth. NTLM, dans ce cas il n'est pas impacté par le blocage des soumissions par POST.

    A suivre mais a priori c'est une piste pour l'upload de fichiers.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB.NET, SOAP, WEBSERVICE] Problème avec le POST
    Par Couston dans le forum Services Web
    Réponses: 1
    Dernier message: 19/02/2008, 20h19
  2. problème avec la post-incrémentation
    Par peperaleur dans le forum Débuter
    Réponses: 6
    Dernier message: 30/01/2008, 20h54
  3. Problème sur mon poste ordinateur
    Par lebienestrare dans le forum Ordinateurs
    Réponses: 10
    Dernier message: 11/01/2007, 17h06
  4. [C#] Problème action bloquante: chargement d'une form
    Par LE NEINDRE dans le forum Windows Forms
    Réponses: 5
    Dernier message: 24/05/2006, 16h00

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