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 :

[Sécurité] Fenêtre d'authentification en php


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 100
    Par défaut [Sécurité] Fenêtre d'authentification en php
    Bonjour.

    Suivant les cours de développez.com en php et voulant créer une fenêtre d'authentification, j'ai tapé le code suivant:
    if (! $PHP_AUTH_USER || ! $PHP_AUTH_PW)
    {
    header('status: 401 Unauthorized');
    header('HTTP/1.0 401 Uauthorized');
    header("WWW-authenticate: Basic realm=\"test de l'authentification HTTP\"");
    }

    Malheureusement, lorsque je lance cela avec easyphp (v 1.8 ), ca me lance une erreur:
    Notice: Undefined variable: PHP_AUTH_USER in c:\program files\easyphp1-8\www\index.php on line 10
    Je change donc la condition et je met a la place:
    if ( !isset($PHP_AUTH_USER) || !isset($PHP_AUTH_PW) )
    Cela m'affiche donc une fenêtre d'authentification mais les variables $PHP_AUTH_PW et $PHP_AUTH_USER ne sont jamais enregistrées!

    Pour cela j'ai fait un test simple. Voici mon code php:

    <?php

    if ( !isset($PHP_AUTH_USER) || !isset($PHP_AUTH_PW) )
    {
    header('status: 401 Unauthorized');
    header('HTTP/1.0 401 Uauthorized');
    header("WWW-authenticate: Basic realm=\"test de l'authentification HTTP\"");
    }
    else
    {
    echo "test";
    }
    ?>
    Et cela ne m'affiche rien...
    Quelqu'un voit l'erreur dans ce que j'ai écrit? (pour information cela marchait très bien avec la version 1.5de EasyPhp, pas de compaptibilité entre ces deux versions?)

    Merci d'avance

  2. #2
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 76
    Par défaut
    A tout les coups, en changeant de version tu es passé en mode safe...

    Il te faut accéder à tes variables par $_POST['PHP_AUTH_USER'] par exemple...

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 100
    Par défaut
    J'avais déja essayé de faire ca, et avec
    if( isset($_POST['PHP_AUTH_USER']))
    {
    $PHP_AUTH_USER=$_GET['PHP_AUTH_USER'];
    }
    if( isset($_POST['PHP_AUTH_PW']))
    {
    $PHP_AUTH_PW=$_GET['PHP_AUTH_PW'];
    }
    en début de programme, ca ne marche pas mieux...
    Ni avec $_GET...

  4. #4
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 76
    Par défaut
    Je ne connais pas le script que tu utilises...

    Vérifie en retournant sur ta première version et modifie ton php.ini en metant register_globals à OFF...

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 100
    Par défaut
    Effectivement si j'ai bien compris la ligne
    register_globals = Off
    empêche les variables de passer directement et on est obigé d'utiliser $_quelquechose['nomvariable'] pour récupérer la variable.
    Pourtant cela ne marche pas, que ce soit avec $_REQUEST["variable"], $_GET["variable"], $_POST["variable"], $_COOKIE["variable"] ni $_FILES["variable"].

    Je vais maintenant faire comme indiqué: "Also, you can look at the import_request_variables() function."
    (enfin je regarderai ca demain, il commence a se faire tard). Merci

  6. #6
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    657
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 657
    Par défaut
    Salut, c'est $_SERVER['PHP_AUTH_USER'] qu'il faut utiliser

  7. #7
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 18
    Par défaut
    Citation Envoyé par Taum Voir le message
    Salut, c'est $_SERVER['PHP_AUTH_USER'] qu'il faut utiliser
    Merci, je viens de tourner en rond pendant 2heures en utilisant des tutos sur 3 sites qui étaient obsolètes ...

    Dommage que j'ai pas pu voir ce post avant :/

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 100
    Par défaut
    eh bé voila ca marche

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

Discussions similaires

  1. Une erreur 233 de ms sql server
    Par Hokage dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 05/10/2009, 17h40
  2. Erreur 233 sous sql server
    Par brajae85 dans le forum Oracle
    Réponses: 3
    Dernier message: 18/05/2009, 16h12
  3. Réponses: 2
    Dernier message: 05/10/2004, 22h43

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