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 :

Erreur sur authentification du protocole HTTP


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2008
    Messages
    142
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 142
    Points : 71
    Points
    71
    Par défaut Erreur sur authentification du protocole HTTP
    Bonjour a tous,
    Je patines depuis quelques heure avec mon script pour l'identification d'accès au back-office géré par authentification du protocole HTTP (est-ce la bonne solution?).

    En local avec ce code tous allait bien mais dès que je test sur serveur voici les trois messages d'erreur concernant les 3 header sans aucune apparition du popup d'authentification .

    Les messages d'erreur :

    Warning: Cannot modify header information - headers already sent by (output started at /home/b/a/n/bankokash/www/test/newsphp/admin/index.php:9) in /home/b/a/n/bankokash/www/test/newsphp/admin/index.php on line 14

    Warning: Cannot modify header information - headers already sent by (output started at /home/b/a/n/bankokash/www/test/newsphp/admin/index.php:9) in /home/b/a/n/bankokash/www/test/newsphp/admin/index.php on line 15

    Warning: Cannot modify header information - headers already sent by (output started at /home/b/a/n/bankokash/www/test/newsphp/admin/index.php:9) in /home/b/a/n/bankokash/www/test/newsphp/admin/index.php on line 16


    Je débute veuillez être indulgent

    Lien vers le back office (lien admin) :http://bankocodes.fr/test/newsphp/index.php

    Codes PHP:

    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
     
    <html>
    <head>
    <title>Acceuil admin</title>
    </head>
    <body>
    <div align="center">
    <a href="gestion.php">Gestions des news</a>||<a href="ajouter.php">ajouter news</a>||
     
    <?php include('config.php');
    $user = "admin";
    $password = "test";
     
    if(!($_SERVER['PHP_AUTH_USER']=="$user" && $_SERVER['PHP_AUTH_PW']=="$password")){
    header("status: 401 Unauthorised");
    header("HTTP/1.0 401 Unauthorized");
    header('WWW-authenticate: Basic'.'realm="acces securise au back-office"');
    print("mauvais pseudo ou mot de passe");
    }
    print("Bienvenue ".$pseudo);
    ?>	
    </div>
    </body>
    </html>

  2. #2
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Points : 1 769
    Points
    1 769
    Par défaut
    Bonsoir,

    La fonction header requiert qu'aucun caractère n'ait été affiché sur le client. Autrement dit, même si un simple espace HTML est affiché, header ne pourra être exécuté.

    Dans ton cas, tu mets carrément un lien a href avant tes header, c'est à cette raison que ça ne marche pas.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Août 2008
    Messages
    142
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 142
    Points : 71
    Points
    71
    Par défaut
    Ha ok c'est un peu comme session_start() en haut de la page
    Merci j'y aurais même pas pensé sur le long terme

  4. #4
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Points : 1 769
    Points
    1 769
    Par défaut
    Oui, c'est un peu comme session_start()

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Août 2008
    Messages
    142
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 142
    Points : 71
    Points
    71
    Par défaut
    J'ai fais deux essais en vidant la mise en cache :
    Et toujours les trois message d'erreur cela proviendrai t'il pas du serveur je précise que j'ai suivi la syntaxe de cour a l'identique.
    Ne faut-il pas spécifié l'host du serve ou autre dans un des header?
    Faisant des cours pas correspondance quand je ne comprend pas et que j'ais épuisés les serveur de google pour mes recherche vous êtes ma seul aide très bonne idées ce forum

    L'include peut-il joué sur ce sujet et si oui comment faire pour ce connecter a la BDD si je souhaite avoir plusieurs utilisateur utiliser la requête connections classique sans include ?

    Essai 1:

    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
     
    <?php include('config.php');
     
    $user = "admin";
    $password = "test";
     
    if(!($_SERVER['PHP_AUTH_USER']=="$user" && $_SERVER['PHP_AUTH_PW']=="$password")){
    header("status: 401 Unauthorised");
    header("HTTP/1.0 401 Unauthorized");
    header('WWW-authenticate: Basic'.'realm="acces securise au back-office"');
    print("mauvais pseudo ou mot de passe");
    }
    print("Bienvenue ".$pseudo);
     
    ?>
     
    <html>
    <head>
    <title>Acceuil admin</title>
    </head>
    <body>
    <div align="center">
    <a href="gestion.php">Gestions des news</a>||<a href="ajouter.php">ajouter news</a>||
     
    </div>
    </body>
    </html>
    Essai 2je le trouve un peu suréaliste cette essai mais bon...)

    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
    29
     
    <?php
    header("status: 401 Unauthorised");
    header("HTTP/1.0 401 Unauthorized");
    header('WWW-authenticate: Basic'.'realm="acces securise au back-office"');
     
     include('config.php');
     
    $user = "admin";
    $password = "test";
     
    if(!($_SERVER['PHP_AUTH_USER']=="$user" && $_SERVER['PHP_AUTH_PW']=="$password")){
    print("mauvais pseudo ou mot de passe");
    }
    print("Bienvenue ".$pseudo);
     
    ?>
     
    <html>
    <head>
    <title>Acceuil admin</title>
    </head>
    <body>
    <div align="center">
    <a href="gestion.php">Gestions des news</a>||<a href="ajouter.php">ajouter news</a>||
     
    </div>
    </body>
    </html>

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 138
    Points : 123
    Points
    123
    Par défaut
    Salut,

    L'include peut-il joué sur ce sujet et si oui comment faire pour ce connecter a la BDD si je souhaite avoir plusieurs utilisateur utiliser la requête connections classique sans include ?
    Rassure moi, tu as quand même le fichier config.php au même niveau de l'arborescence que ton fichier qui possède l'include?

    Enfin plus simplement, peux tu mettre le code de ton fichier config.php ?
    Si tu peux c'est que tu l'as, sinon non ^^.

    Ton fichier que tu inclus ne possède aucun echo ?

    Après tu fais tes tests en local ? car à vu d'oeil en local $user = "root", $pass = "", $host = "localhost".

    Ensuite il y a un dernier petit chose qui dérange, tu génères du code HTML avant la balise HTML... c'est pas super saint ^^.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    header('WWW-authenticate: Basic'.'realm="acces securise au back-office"');
    print("mauvais pseudo ou mot de passe");
    }
    print("Bienvenue ".$pseudo);
     
    ?>
     
    <html> <!---- REGARDE ------>
    Voilà, j'ai mis un peu tt ce qui me passait par la tête... en espérant que ca t'aidera un peu.

    Cordialement,

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

Discussions similaires

  1. Mettre en place le protocole HTTPS sur EasyPHP
    Par djamess dans le forum Apache
    Réponses: 20
    Dernier message: 06/03/2008, 14h42
  2. [PhpMyVisites] problème sur la prise en charge du protocole https
    Par gorgonite dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 29/01/2007, 08h09
  3. erreur sur tomcat (HTTP Status 500)
    Par DEV-10 dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 08/11/2006, 16h25
  4. Réponses: 1
    Dernier message: 21/02/2006, 17h53
  5. identification sur le protocole HTTP
    Par windob dans le forum Développement
    Réponses: 20
    Dernier message: 31/03/2004, 22h52

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