Fonction PHP

Fermé
mrh Messages postés 51 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 3 mars 2009 - 7 févr. 2008 à 13:38
Scalpweb Messages postés 1467 Date d'inscription samedi 13 mars 2004 Statut Membre Dernière intervention 5 mai 2010 - 7 févr. 2008 à 15:37
Bonjour,
J'aimerais connaitre la fonction PHP qui permet de récupérer la valeur du nom de l'utilisateur windows qui se connecte à mon site intranet?!
A voir également:

23 réponses

Scalpweb Messages postés 1467 Date d'inscription samedi 13 mars 2004 Statut Membre Dernière intervention 5 mai 2010 43
7 févr. 2008 à 13:40
Elle n'existe pas...

Ce n'est pas possible directement.
0
mrh Messages postés 51 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 3 mars 2009
7 févr. 2008 à 13:41
Dans ce cas , comment faire pour récupérer le nom de l'utilisateur windows!?
0
reltak Messages postés 261 Date d'inscription mercredi 22 août 2007 Statut Membre Dernière intervention 14 janvier 2012 41
7 févr. 2008 à 13:43
Bonjour,

Laisse-moi te dire que ce n'est pas simple...

Il y a une explication avec le code source suivant :

https://codes-sources.commentcamarche.net/

Mais même pour le développeur que je suis, c'est pas tout à fait clair alors...

Reltak.
0
mrh Messages postés 51 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 3 mars 2009
7 févr. 2008 à 13:51
J'avais déja essayer ce code j'obtient ceci:

Notice: A session had already been started - ignoring session_start() in c:\www_intranet_new\test.php on line 19

Notice: Undefined index: Authorization in c:\www_intranet_new\test.php on line 26

Warning: Cannot modify header information - headers already sent by (output started at c:\www_intranet_new\test.php:19) in c:\www_intranet_new\test.php on line 27

Warning: Cannot modify header information - headers already sent by (output started at c:\www_intranet_new\test.php:19) in c:\www_intranet_new\test.php on line 28
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Scalpweb Messages postés 1467 Date d'inscription samedi 13 mars 2004 Statut Membre Dernière intervention 5 mai 2010 43
7 févr. 2008 à 13:52
alors apparemment il y a un souci avec les sessions.

Appel tu ta page par un include ?
0
mrh Messages postés 51 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 3 mars 2009
7 févr. 2008 à 13:56
J'accede à la page avec un lien :<div align="center" ><a href="./test.php" >ici</a></div>
0
Scalpweb Messages postés 1467 Date d'inscription samedi 13 mars 2004 Statut Membre Dernière intervention 5 mai 2010 43
7 févr. 2008 à 14:00
Marque nous les 19 premières lignes stp...
0
mrh Messages postés 51 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 3 mars 2009
7 févr. 2008 à 14:05
Les 19 lignes sont du commentaire et l'ouverture session :

<?php

/***********************************************************************

************************************************************************
*
* PHP NTLM GET LOGIN
* Version 0.2.1
* http://www.secusquad.com/ntlm/
* Copyright (c) 2004 Nicolas GOLLET ( Nicolas (dot) gollet (at) secusquad (dot) com )
* Copyright (c) 2004 Flextronics Saint-Etienne
*
* This program is free software. You can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License.
*
***********************************************************************/

session_start();
0
Scalpweb Messages postés 1467 Date d'inscription samedi 13 mars 2004 Statut Membre Dernière intervention 5 mai 2010 43
7 févr. 2008 à 14:08
Bon... les 30èmes finalement...
0
mrh Messages postés 51 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 3 mars 2009
7 févr. 2008 à 14:13
-18
session_start();

$headers = apache_request_headers(); // Récupération des l'entêtes client

if (@$_SERVER['HTTP_VIA'] != NULL){ // nous verifions si un proxy est utilisé : parceque l'identification par ntlm ne peut pas passer par un proxy
echo "Proxy bypass!";
}
elseif($headers['Authorization'] == NULL){ //si l'entete autorisation est inexistante
header( "HTTP/1.0 401 Unauthorized" ); //envoi au client le mode d'identification
header( "WWW-Authenticate: NTLM" ); //dans notre cas le NTLM
exit; //on quitte

}
-31
0
Scalpweb Messages postés 1467 Date d'inscription samedi 13 mars 2004 Statut Membre Dernière intervention 5 mai 2010 43
7 févr. 2008 à 14:16
C'est bizarre...

Tu es sur que c'ets vraiment la début de ta page ? cette page ne vient pas en compléter une autre ou quoi que ce soit ?
0
mrh Messages postés 51 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 3 mars 2009
7 févr. 2008 à 14:35
J'accede a cette page a partir d'une autre , mais c'est tout.
0
Scalpweb Messages postés 1467 Date d'inscription samedi 13 mars 2004 Statut Membre Dernière intervention 5 mai 2010 43
7 févr. 2008 à 14:44
Et si tu la lances directement ?
0
mrh Messages postés 51 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 3 mars 2009
7 févr. 2008 à 14:52
Ca me lance le meme message qu'avant -_- :


Notice: A session had already been started - ignoring session_start() in c:\program files\easyphp1-8\www\test\index.php on line 23

Notice: Undefined index: Authorization in c:\program files\easyphp1-8\www\test\index.php on line 30

Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\test\index.php:5) in c:\program files\easyphp1-8\www\test\index.php on line 31

Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\test\index.php:5) in c:\program files\easyphp1-8\www\test\index.php on line 32
0
Scalpweb Messages postés 1467 Date d'inscription samedi 13 mars 2004 Statut Membre Dernière intervention 5 mai 2010 43
7 févr. 2008 à 14:54
Essayes de virer tes commentaires au départ, juste pour voire...

Et ta page commence tout de suite par le <?php, on est d'accord ?
0
mrh Messages postés 51 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 3 mars 2009
7 févr. 2008 à 15:06
J'ai enlever les com. du début et fait en sorte qu'il n'y ait que du php cela me donne:


Notice: A session had already been started - ignoring session_start() in c:\program files\easyphp1-8\www\test\index.php on line 4

Notice: Undefined index: Authorization in c:\program files\easyphp1-8\www\test\index.php on line 11

Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\test\index.php:2) in c:\program files\easyphp1-8\www\test\index.php on line 12

Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\test\index.php:2) in c:\program files\easyphp1-8\www\test\index.php on line 13

En fait rien a bouger excepté le n° de ligne.
0
Scalpweb Messages postés 1467 Date d'inscription samedi 13 mars 2004 Statut Membre Dernière intervention 5 mai 2010 43
7 févr. 2008 à 15:07
C'ets fou...

Dsl mais, stp, mets moi le code en entier.
0
mrh Messages postés 51 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 3 mars 2009
7 févr. 2008 à 15:09
C'est exactement le code de ce lien :

https://codes-sources.commentcamarche.net/

le code :
<?php

session_start();

$headers = apache_request_headers(); // Récupération des l'entêtes client

if (@$_SERVER['HTTP_VIA'] != NULL){ // nous verifions si un proxy est utilisé : parceque l'identification par ntlm ne peut pas passer par un proxy
echo "Proxy bypass!";
}
elseif($headers['Authorization'] == NULL){ //si l'entete autorisation est inexistante
header( "HTTP/1.0 401 Unauthorized" ); //envoi au client le mode d'identification
header( "WWW-Authenticate: NTLM" ); //dans notre cas le NTLM
exit; //on quitte

}

if(isset($headers['Authorization'])) //dans le cas d'une authorisation (identification)
{
if(substr($headers['Authorization'],0,5) == 'NTLM '){ // on vérifit que le client soit en NTLM

$chaine=$headers['Authorization'];
$chaine=substr($chaine, 5); // recuperation du base64-encoded type1 message
$chained64=base64_decode($chaine); // decodage base64 dans $chained64

if(ord($chained64{8}) == 1){
// |_ byte signifiant l'etape du processus d'identification (etape 3)

// verification du drapeau NTLM "0xb2" à l'offset 13 dans le message type-1-message (comp ie 5.5+) :
if (ord($chained64[13]) != 178){
echo "NTLM Flag error!";
exit;
}

$retAuth = "NTLMSSP".chr(000).chr(002).chr(000).chr(000).chr(000).chr(000).chr(000).chr(000);
$retAuth .= chr(000).chr(040).chr(000).chr(000).chr(000).chr(001).chr(130).chr(000).chr(000);
$retAuth .= chr(000).chr(002).chr(002).chr(002).chr(000).chr(000).chr(000).chr(000).chr(000);
$retAuth .= chr(000).chr(000).chr(000).chr(000).chr(000).chr(000).chr(000);

$retAuth64 =base64_encode($retAuth); // encode en base64
$retAuth64 = trim($retAuth64); // enleve les espaces de debut et de fin
header( "HTTP/1.0 401 Unauthorized" ); // envoi le nouveau header
header( "WWW-Authenticate: NTLM $retAuth64" ); // avec l'identification supplémentaire
exit;

}

else if(ord($chained64{8}) == 3){
// |_ byte signifiant l'etape du processus d'identification (etape 5)

// on recupere le domaine
$lenght_domain = (ord($chained64[31])*256 + ord($chained64[30])); // longueur du domain
$offset_domain = (ord($chained64[33])*256 + ord($chained64[32])); // position du domain.
$domain = str_replace("\0","",substr($chained64, $offset_domain, $lenght_domain)); // decoupage du du domain

//le login
$lenght_login = (ord($chained64[39])*256 + ord($chained64[38])); // longueur du login.
$offset_login = (ord($chained64[41])*256 + ord($chained64[40])); // position du login.
$login = str_replace("\0","",substr($chained64, $offset_login, $lenght_login)); // decoupage du login

if ( $login != NULL){
// stockage des données dans des variable de session
$_SESSION['Login']=$login;
header("Location: newpage.php");
exit;
}
else{
echo "NT Login empty!";
}


}
}

}

?>
?>
0
Scalpweb Messages postés 1467 Date d'inscription samedi 13 mars 2004 Statut Membre Dernière intervention 5 mai 2010 43
7 févr. 2008 à 15:11
Commence par mettre en commentaire tout les lignes echo, puis enlèves le deuxième ?> en bas.
0
mrh Messages postés 51 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 3 mars 2009
7 févr. 2008 à 15:14
Cela ne change rien , toujour les même erreurs a l'écran.
0
Scalpweb Messages postés 1467 Date d'inscription samedi 13 mars 2004 Statut Membre Dernière intervention 5 mai 2010 43
7 févr. 2008 à 15:19
Je ne sais vraiment pas quoi te dire...

L'erreur suivante :

Notice: A session had already been started - ignoring session_start() in c:\program files\easyphp1-8\www\test\index.php on line 4 


Veut dire que les sessions sont déjà ouvertes... En gros, qu'un session_start existe déjà. Alors deux solution : soit la page est un include d'une autre qui a déjà un session_start, mais tu me dis que non, soit la page s'apelle elle même mais je ne vois rien de tel...

Je suis perdu.
0