Précédent   Forum des professionnels en informatique > PHP > Langage > Fonctions
Fonctions Forum d'entraide sur les fonctions PHP. Avant de poster -> FAQ fonctions et Sources diverses
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/08/2011, 09h27   #1
Futur Membre du Club
 
Homme
Analyste d'exploitation
Inscription : novembre 2008
Messages : 130
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Analyste d'exploitation
Secteur : Industrie

Informations forums :
Inscription : novembre 2008
Messages : 130
Points : 16
Points : 16
Par défaut Variable PHP $_SERVER['PHP_AUTH_USER']

Bonjour à tous,
J'ai commencer à développer un site internet en local avec wamp server et tout s'est bien déroulé.
J'ai donc voulu le mettre sur internet via l'hebergement ovh.
J'ai rencontre un problème avec la variable $_SERVER['PHP_AUTH_USER'] qui n'était pas reconnu dans un premier temps.
Ensuite ovh m'a répondu et m'a dit qu'il fallait mettre le fichier .htaccess de cette manière là (avec la php_version) :
Code :
1
2
3
4
5
6
AuthUserFile /homez.356/athleticg/www/admin/.htpasswd
AuthGroupFile /dev/null
AuthName "Protection - Zone privée"
AuthType Basic
require valid-user
SetEnv PHP_VER 5_TEST
Cette dernière est maintenant reconnu mais je ne comprends pas j'ai toujours une erreur comme si la variable était vide :
Code :
1
2
3
Notice: Undefined index: PHP_AUTH_USER in /homez.356/athleticg/www/admin/index.php on line 23
 
Notice: Undefined index: PHP_AUTH_USER in /homez.356/athleticg/www/admin/index.php on line 26
Voici mon code :
Code :
1
2
3
4
5
6
// Traitement pour les groupe
$sql="SELECT groupe from user where login='".$_SERVER['PHP_AUTH_USER']."'";
$req=mysql_query($sql)or die('Erreur SQL ! '.mysql_error());
$data=mysql_fetch_array($req);
echo " Variable : ".$_SERVER['PHP_AUTH_USER'] ;
$contenu="";
Titiii25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2011, 11h38   #2
Membre chevronné
 
Homme
Développeur Web
Inscription : mars 2011
Messages : 399
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : Finance

Informations forums :
Inscription : mars 2011
Messages : 399
Points : 662
Points : 662
La variable globale $_SERVER, comme son nom l'indique dépend du serveur.
Et effectivement $_SERVER['PHP_AUTH_USER'] a, entre autre, besoin de PHP5 pour être présente.

Malheureusement, $_SERVER['PHP_AUTH_USER'] n'est pas rempli si l'utilisateur a annulé l'authentification, d'où l'erreur de PHP_AUTH_USER absent du tableau $_SERVER.

Tu peux suivre les exemples de la doc officielle http://php.net/manual/fr/features.http-auth.php
__________________
Membre de StackOverflow, je suis un fervant utilisateur de PHP et de jQuery.
Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web mais aussi plusieurs projets personnels.
Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, un raccourcisseur d'url, un bookmarklet pour envoyer l'url de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc...
Shikiryu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2011, 12h49   #3
Futur Membre du Club
 
Homme
Analyste d'exploitation
Inscription : novembre 2008
Messages : 130
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Analyste d'exploitation
Secteur : Industrie

Informations forums :
Inscription : novembre 2008
Messages : 130
Points : 16
Points : 16
J'ai donc essayer le premier script :
Code :
1
2
3
4
5
6
7
8
9
10
11
<?php
if (!isset($_SERVER['PHP_AUTH_USER'])) {
    header('WWW-Authenticate: Basic realm="My Realm"');
    header('HTTP/1.0 401 Unauthorized');
    echo 'Texte utilisé si le visiteur utilise le bouton d\'annulation';
    exit;
} else {
    echo "<p>Bonjour, {$_SERVER['PHP_AUTH_USER']}.</p>";
    echo "<p>Votre mot de passe est {$_SERVER['PHP_AUTH_PW']}.</p>";
}
?>
Voici l'erreur maintenant :
Code :
1
2
3
4
Warning: Cannot modify header information - headers already sent by (output started at /homez.356/athleticg/www/admin/index.php:8) in /homez.356/athleticg/www/admin/index.php on line 24
 
Warning: Cannot modify header information - headers already sent by (output started at /homez.356/athleticg/www/admin/index.php:8) in /homez.356/athleticg/www/admin/index.php on line 25
Texte utilisé si le visiteur utilise le bouton d'annulation
Est-ce bien cela qu'il fallait faire ? Comment corriger cette erreur ?
Titiii25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2011, 12h57   #4
Membre chevronné
 
Homme
Développeur Web
Inscription : mars 2011
Messages : 399
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : Finance

Informations forums :
Inscription : mars 2011
Messages : 399
Points : 662
Points : 662
Il suffit de lire la doc : http://php.net/manual/fr/function.header.php
__________________
Membre de StackOverflow, je suis un fervant utilisateur de PHP et de jQuery.
Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web mais aussi plusieurs projets personnels.
Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, un raccourcisseur d'url, un bookmarklet pour envoyer l'url de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc...
Shikiryu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2011, 13h24   #5
Futur Membre du Club
 
Homme
Analyste d'exploitation
Inscription : novembre 2008
Messages : 130
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Analyste d'exploitation
Secteur : Industrie

Informations forums :
Inscription : novembre 2008
Messages : 130
Points : 16
Points : 16
Après avoir lu la doc, j'ai donc placer le code avec le header au début de la page php, cependant, il y a toujours un problème.
En effet, lorsque je me connecte sur cette page à accès restreint, il me demande les login et mot de passe que j'ai eu dans mon fichier .htpasswd mais après il me demande une seconde authentication avec en texte "My Realm".
Est-ce que cela correspond a la ligne de code :
Code :
header('WWW-Authenticate: Basic realm="My Realm"');
Dois-je modifier cette variable "Basic realm" ?
Et si oui que dois-je mettre à la place ?
Merci de votre réponse.
Titiii25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2011, 14h14   #6
Membre chevronné
 
Homme
Développeur Web
Inscription : mars 2011
Messages : 399
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : Finance

Informations forums :
Inscription : mars 2011
Messages : 399
Points : 662
Points : 662
Oublie cette ligne de header. (et essaye d'apprendre ce que sont les headers par la même occasion )
__________________
Membre de StackOverflow, je suis un fervant utilisateur de PHP et de jQuery.
Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web mais aussi plusieurs projets personnels.
Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, un raccourcisseur d'url, un bookmarklet pour envoyer l'url de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc...
Shikiryu est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 26/08/2011, 14h34   #7
Futur Membre du Club
 
Homme
Analyste d'exploitation
Inscription : novembre 2008
Messages : 130
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Analyste d'exploitation
Secteur : Industrie

Informations forums :
Inscription : novembre 2008
Messages : 130
Points : 16
Points : 16
Le but du header est de modifier l'en tete http, et donc le "www authenticate basic real .." permet de redemander l'authentification. Je me trompe ?


Merci de votre réponse.
Titiii25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2011, 15h48   #8
Futur Membre du Club
 
Homme
Analyste d'exploitation
Inscription : novembre 2008
Messages : 130
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Analyste d'exploitation
Secteur : Industrie

Informations forums :
Inscription : novembre 2008
Messages : 130
Points : 16
Points : 16
Personne pour m'aider et m'orienté sur une solution ?

Merci de votre réponse.
Titiii25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2011, 15h53   #9
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
fait
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h02.


 
 
 
 
Partenaires

Hébergement Web