Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1894 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

   nom prenom utilisateur

 


 Mot :   Pseudo :  
 
 Page :   1  2  3
Page Précédente
Auteur Sujet :

nom prenom utilisateur

n°2079709
quelu
Posté le 01-06-2011 à 10:30:10  profilanswer
 

Bonjour à tous  :hello: ,
 
J'aurais besoin d'un petit coup de main... , j'aimerais afficher le nom et le prénom d'un utilisateur  
 
Est-il possible de récupérer les logs de la session Windows ou d'aller chercher dans l'active directory le nom et prénom de l'utilisateur qui c'est identifié sur l'ordinateur ?  
 
Merci de votre aide !


Message édité par quelu le 23-06-2011 à 14:34:35
mood
Publicité
Posté le 01-06-2011 à 10:30:10  profilanswer
 

n°2079773
flo850
moi je
Posté le 01-06-2011 à 11:35:40  profilanswer
 

oui avec le NTLM ( avec IE )


---------------

n°2079844
quelu
Posté le 01-06-2011 à 14:10:12  profilanswer
 

merci flo850 mais pouvez vous développer votre réponse s'il vous plait ?

 


Message édité par quelu le 23-06-2011 à 14:32:56
n°2079867
AzOo
Posté le 01-06-2011 à 14:50:25  profilanswer
 

Si ton intranet est en PHP :
 
http://www.phpcs.com/code.aspx?ID=25272


---------------
*** [Feed-Back] AzOo ***
n°2080605
quelu
Posté le 06-06-2011 à 11:09:03  profilanswer
 

bonjour,
merci de votre réponse rapide mais j'obtiens ces erreurs :  
 
Warning: session_start() [function.session-start]: Cannot send session cookie -
Warning: session_start() [function.session-start]: Cannot send session cache limiter  
Warning: Cannot modify header information  
Warning: Cannot modify header information  

n°2080948
Metatr0n
http://www.microcontest.com
Posté le 07-06-2011 à 11:31:49  profilanswer
 

IL faut appeler session_start avant toute chose (avant de générer du code HTML en fait)
 
Essaie d'appeler cette fonction au tout début de ton code php


Message édité par Metatr0n le 07-06-2011 à 11:51:34

---------------
http://www.microcontest.com - Site de challenges de programmation : Cryptographie - Multimedia - Intelligence Artificielle - Réseaux - Algorithmique - Mathématiques
n°2081017
quelu
Posté le 07-06-2011 à 13:57:51  profilanswer
 

j'ai pourtant placer ce code dans le header

n°2081019
Metatr0n
http://www.microcontest.com
Posté le 07-06-2011 à 14:02:30  profilanswer
 

le fichier qui contient session_start(), est-il inclus par une autre page?


---------------
http://www.microcontest.com - Site de challenges de programmation : Cryptographie - Multimedia - Intelligence Artificielle - Réseaux - Algorithmique - Mathématiques
n°2081020
quelu
Posté le 07-06-2011 à 14:06:33  profilanswer
 

oui il y a une page d'accueil avec un lien parmi d'autre qui redirige vers la page ou je veux afficher le bienvenu nom prénom

n°2081025
Metatr0n
http://www.microcontest.com
Posté le 07-06-2011 à 14:15:12  profilanswer
 

D'accord mais je veux dire, as-tu écrit dans une autre page : include('ta_page.php') ?
Car dans ce cas, il faut faire attention que la page qui inclut celle qui contient le session_start() ne génère pas de code html avant l'inclusion. Si par contre ta page est visitée normalement (lien direct vers elle comme tu as l'air de le dire), je ne comprends pas trop pourquoi tu as cette erreur.
Ca me fait penser à un problème que j'ai rencontré, j'avais la même erreur à cause du fait que mon fichier de code était encodé en UTF8 avec BOM. Le BOM est une information qui est placée au début de ton fichier, sans que tu le vois. Hors le serveur considère ces caractères comme du texte, ce qui fait que tu génères bien de l'html avant ton appel à session_start. La solution dans ce cas est d'ouvrir ton fichier avec notepad++ par exemple, de cliquer sur encodage et convertir en utf8 sans BOM ou en ANSI comme tu veux. Mais je ne garantis pas que ce soit ça ton erreur.


---------------
http://www.microcontest.com - Site de challenges de programmation : Cryptographie - Multimedia - Intelligence Artificielle - Réseaux - Algorithmique - Mathématiques
mood
Publicité
Posté le 07-06-2011 à 14:15:12  profilanswer
 

n°2081034
quelu
Posté le 07-06-2011 à 14:31:40  profilanswer
 

merci pour cette réponse je vais essayer!!  
 
par contre si je met le code php avant le <html><body> code ... </body> </html>
 
la page ce charge sans problème mais le code a était pris en compte ?

n°2081035
Metatr0n
http://www.microcontest.com
Posté le 07-06-2011 à 14:33:20  profilanswer
 

oui oui le code php est pris en compte même si tu le mets avant <html>...


Message édité par Metatr0n le 08-06-2011 à 15:42:28

---------------
http://www.microcontest.com - Site de challenges de programmation : Cryptographie - Multimedia - Intelligence Artificielle - Réseaux - Algorithmique - Mathématiques
n°2081041
quelu
Posté le 07-06-2011 à 14:44:20  profilanswer
 

donc je suppose que sa marche mais rien n'est affiché


Message édité par quelu le 07-06-2011 à 14:44:32
n°2081049
quelu
Posté le 07-06-2011 à 15:02:45  profilanswer
 

j'obtiens:

 

NTLM Flag error!


Message édité par quelu le 07-06-2011 à 15:04:38
n°2081053
Paulp
~, sweet ~
Posté le 07-06-2011 à 15:10:50  profilanswer
 

Il y a plus simple :
 
Si ton site est hébergé sur IIS, dans les options de sécurité, tu décoches authentification anonyme, et tu coches l’authentification windows intégrée, et normalement, si l'utilisateur à les droits d'accès au pages web, tu auras le login dans $_SERVER

n°2081057
quelu
Posté le 07-06-2011 à 15:16:35  profilanswer
 

j'ai reussi grace a un autre code a afficher le login Windows mais est -il possible d'aller chercher le nom et prénom dans l'active directory ?
 
 
voici le code :
 
http://www.commentcamarche.net/for [...] p-via-ntlm

n°2081207
quelu
Posté le 08-06-2011 à 09:04:51  profilanswer
 

Bonjour ,

 

j'ai de nouveau un problème :(

 

Le bienvenue $user ce trouve sur une page avec un formulaire .
je récupère les données ( nom , achat etc ) dans la page d'après.

 

cependant si je laisse le script du log il ne récupère plus mes variables achat dans la page "d'après".
je dois alors effacer le script d'affichage du login , supprimer les cookies et sa fonctionne pour récupérer les variables.

 

Que faire ?

 

merci

 

( je suis stagiaire qu'est ce que ISS ?)


Message édité par quelu le 08-06-2011 à 09:06:08
n°2081215
Paulp
~, sweet ~
Posté le 08-06-2011 à 09:43:57  profilanswer
 

C'est la station spatiale internationale.

 

IIS, c'est un serveur HTTP. L'équivalent d'Apache par Microsoft.
L'avantage est qu'il gère nativement l'authentification via le compte windows avec internet explorer.

 

edit : peux-tu décrire plus précisément ton problème de variables non récupérées ?


Message édité par Paulp le 08-06-2011 à 09:48:05
n°2081220
quelu
Posté le 08-06-2011 à 09:55:12  profilanswer
 

lol.

 

J'ai demandé , l'entreprise n'utilise pas et ne connait pas IIS.

 

et bien il y a un formulaire sur la page ou je veux afficher le bienvenue et lorsqu'on clique sur envoyer , je récupère les $_POST[' '] , je les écrits dans un fichier texte et les affiches dans un tableau sur une page sécurisé par mot de passe .

 

donc si j'utilise le script NTLM les $_POST[' '] sont vide et si je ne l'utilise pas les $_POST[' '] sont bien récupéré mais il me manque le nom..

 

Il n'y a pas une histoire de session ?

 

merci de votre aide


Message édité par quelu le 08-06-2011 à 09:55:24
n°2081222
Paulp
~, sweet ~
Posté le 08-06-2011 à 10:07:59  profilanswer
 

Les données sont bien présentes dans le formulaire ? Ce sont des champs de quel type (text/select/checkbox ou hidden) ?
 
Le NTLM est activé uniquement pour le premier formulaire ou bien pour sa cible aussi ?

n°2081231
quelu
Posté le 08-06-2011 à 10:26:24  profilanswer
 

oui les donnees sont bien présentes.
 
 
si je fais un echo $user; dans la partit <html>  </html> ou dans le formulaire rien ne s'affiche. Donc impossible de récupérer le $_POST['user'] .
 
Comment activé le NTLM pour le formulaire et sa cible ?
 
merci


Message édité par quelu le 17-06-2011 à 09:38:51
n°2081237
Paulp
~, sweet ~
Posté le 08-06-2011 à 10:37:34  profilanswer
 

Dans le formulaire, où tu mets en place NTLM, tu n'arrives pas à afficher $user ? Es-tu sur de récupérer le login ? N'y a-t-il pas un conflit de nommage avec une autre variable $user dans le code ?

 

Je ne pense pas qu'il soit bien d'activer NTLM pour la cible.

 

PS : ton HTML est affreux : on met les balises et les noms d'attributs en minuscules, et les valeurs d'attributs entre guillemets (double quotes)
Il faut aussi fermer la balise input :
<input type="text" name="cinema" onkeyup="..." onchange="..." />


Message édité par Paulp le 08-06-2011 à 10:38:26
n°2081269
quelu
Posté le 08-06-2011 à 11:54:23  profilanswer
 

merci du conseil pour le HTML j'ai tous modifié c'est clair que c'est plus jolie.

 

pour le NTLM je ne peux pas le placer dans le formulaire , il faut a tout pris le placer avant le <html> sinon j'obtient

 


Warning: Cannot modify header information pour les lignes

 

header('HTTP1.0 401 Unauthorized');
header($ntlm);

 

si je met ces deux lignes en commentaire j'ai :

 

Sorry NTLM auth failed

 

edit : quand je met le script avant le <html> j'ai quand meme l'erreur  :

 

Warning: Cannot modify header information pour les lignes

 

header('HTTP1.0 401 Unauthorized');
header($ntlm);

 

mais le $user s'affiche et je met les deux lignes en commentaire et cela fonctionne toujours.


Message édité par quelu le 08-06-2011 à 11:59:44
n°2081276
Paulp
~, sweet ~
Posté le 08-06-2011 à 12:09:36  profilanswer
 

J'ai rien compris.
 
Tu en es où ?
 
Poste le code le plus simple reproduisant ton problème (deux fichiers .php : un avec le formulaire, un avec l'affichage des données du formulaire).

n°2081354
quelu
Posté le 08-06-2011 à 15:20:32  profilanswer
 

lol ben moi non plus je n'y comprend rien.
 


Message édité par quelu le 17-06-2011 à 09:39:34
n°2081359
Paulp
~, sweet ~
Posté le 08-06-2011 à 15:26:29  profilanswer
 

- Où se passe l'authentification NTLM ?
- Le code HTML est affreux. Utilise du css, des ul & li au lieu de mettre les puces à la main, ...
- utilise des balises code [ code=php] [ /code] (sans les espaces) =>

Code :
  1. <body>
  2. <?php
  3. $total=$_POST['total'];
  4. if ($total<5)
  5. {
  6. echo " Votre commande est vide et ne sera pas prise en compte";
  7. }
  8. else
  9. {
  10. echo "Merci votre commande a été prise en compte !";
  11. $source = "commandes.txt";
  12. $nom = "";
  13. $cinema=$_POST['cinema'];
  14. $piscineenfant=$_POST['piscineenfant'];
  15. if ($zooenfant>0) {
  16. fwrite($fichier, "$nom;" );
  17. fwrite($fichier, "$zooenfant place(s) de zoo enfant;" );
  18. fwrite($fichier, "$zooenf €;" );
  19. fwrite($fichier, "$remarque.\r\n" );
  20. }
  21. }
  22. ?>
  23.  
  24. </body>


Message édité par Paulp le 08-06-2011 à 15:26:58
n°2081363
quelu
Posté le 08-06-2011 à 15:40:59  profilanswer
 

désolé pour le html , j'essaie d'abord de faire fonctionner la chose et je met en page ensuite.

 

pour l'autentification NTML

Code :
  1. <?php
  2. /*
  3. Le code source qui suit est disponible sur la toile, l'auteur ne s'est pas authentifier dans les lignes de commentaires.
  4. Ce code focntionne parfaitement. il faut que tu places un require_once('ntlm.php'); dans la première ligne.
  5. Ensuite la variable de session user te permet de faire les contrôle qui vont bien tout au long de la session.
  6. */
  7.  
  8. //header('WWW-Authenticate: NTLM '); En activant cette ligne on peut saisir le login que l'on veut pour tester les accès aux différentes pages - outil de développement -
  9.  
  10.  
  11. define('_NTLM_AUTH_FAILED',1);
  12. define('_NTLM_PROXY',2);
  13.  
  14. function getInfosFromNTLM() {
  15.  
  16. if (!empty($_SERVER['HTTP_VIA'])) {
  17. return _NTLM_PROXY;
  18. }
  19.  
  20. $auth = isset($header['Authorization']) ? $header['Authorization'] : null;
  21.  
  22. if (is_null($auth)) {
  23. return unAuthorized();
  24. }
  25.  
  26. if ($auth && (substr($auth,0,4) == 'NTLM')) {
  27.  
  28. $c64 = base64_decode(substr($auth,5));
  29. $state = ord($c64{8});
  30.  
  31. switch ($state) {
  32.  
  33. case 1:
  34. $chrs = array(0,2,0,0,0,0,0,0,0,40,0,0,0,1,130,0,0,0,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0);
  35. $ret = "NTLMSSP";
  36. foreach ($chrs as $chr) {
  37. $ret .= chr($chr);
  38. }
  39. return unAuthorized(trim(base64_encode($ret)));
  40. break;
  41.  
  42. case 3:
  43. $l = ord($c64{31}) * 256 + ord($c64{30});
  44. $o = ord($c64{33}) * 256 + ord($c64{32});
  45. $domain = str_replace("\0","",substr($c64,$o,$l));
  46.  
  47. $l = ord($c64{39}) * 256 + ord($c64{38});
  48. $o = ord($c64{41}) * 256 + ord($c64{40});
  49. $user = str_replace("\0","",substr($c64,$o,$l));
  50. echo "Bienvenue $user";
  51. return array('domain'=>$domain,'user'=>$user);
  52.  
  53. break;
  54.  
  55. }
  56.  
  57. }
  58. }
  59.  
  60. function unAuthorized($msg=null) {
  61. $ntlm = 'WWW-Authenticate: NTLM';
  62. if ($msg) {
  63. $ntlm .= ' '.$msg;
  64. }
  65. header('HTTP1.0 401 Unauthorized');
  66. header($ntlm);
  67.  
  68. return _NTLM_AUTH_FAILED;
  69. }
  70.  
  71. // identification
  72. $infos = getInfosFromNTLM();
  73. switch ($infos) {
  74. case _NTLM_PROXY:
  75. die('No proxy for ntlm');
  76. case _NTLM_AUTH_FAILED:
  77. die('Sorry NTLM auth failed');
  78. default:
  79. //$_SERVER['REMOTE_USER'] = strtolower($infos['user']) ;
  80. $_SESSION['user'] = strtolower($infos['user']) ;
  81. //print_r($infos);
  82. break;
  83. }
  84. // Voila ça me récupère bien les utilisateurs... Si vous voulez faire de la compatibilité avec d'autres scripts qui utilisent la variable serveur faites :
  85. $_SERVER['REMOTE_USER'] = $infos['user'];
  86.  
  87. //header('HTTP/1.1 401 Unauthorized');
  88. //header('Authenticate: NTLM '); // cette ligne permet d'éviter le rappel de login et cloture parfaitement l'opération. Ainsi les fonction POST sont remises en fonction.
  89.  
  90. /*
  91. Ensuite tu peux suivre les visites dans un fichier txt
  92.  
  93. // suivi des visites
  94.  
  95. setlocale(LC_TIME, 'fr', 'fr_FR', 'fr_FR.ISO8859-1');
  96. $fichier = 'suivi.txt';
  97. $contenu = $REMOTE_ADDR.chr(9).chr(9) ; // adresse IP du client
  98. $domaine = gethostbyaddr($_SERVER['REMOTE_ADDR']) ;
  99. $contenu = $contenu . substr($domaine, 0, strpos($domaine,"." ) ).chr(9).chr(9) ; // nom du poste client
  100. $contenu = $contenu . $_SESSION['user'].chr(9).chr(9) ; //login du client
  101. if (strlen($_SESSION['user']) < 8 ) // tabulation pour la mise en page dans le fichier txt
  102. $contenu = $contenu .chr(9) ;
  103. $contenu = $contenu . strftime("%A %d %B %Y" ).chr(9).chr(9) ; // date format fr
  104. $contenu = $contenu . date("H:i:s" ).chr(10) ; // heure
  105.  
  106. if ($_SESSION['user'] != "xxx" ) { // n'enregistre pas les essais du webmaster
  107. $handle = fopen($fichier, 'a') ; // ouverture du fichier txt
  108. fputs($handle, $contenu) ; // écriture des données
  109. fclose($handle) ; // fermeture du fichier
  110. */
  111.  
  112. ?>
  113. <html>
  114. <body>

 

merci de ton aide !


Message édité par quelu le 08-06-2011 à 15:55:09
n°2081366
Paulp
~, sweet ~
Posté le 08-06-2011 à 15:52:57  profilanswer
 

Ce code est présent dans quel fichier ?

n°2081367
quelu
Posté le 08-06-2011 à 15:56:25  profilanswer
 

Il est présent dans le fichier


Message édité par quelu le 17-06-2011 à 09:40:06
n°2081374
Paulp
~, sweet ~
Posté le 08-06-2011 à 16:13:16  profilanswer
 

OK
 
Et là, tu as quel résultat quand tu soumets le formulaire ?
Est-ce que tu as une version accessible en ligne pour tester ?

n°2081376
quelu
Posté le 08-06-2011 à 16:24:19  profilanswer
 

lorsque je soumet le formulaire j'ai la page : la commande est vide. j'ai essayer avec le méthode get , on vois bien les variables  envoyer dans la barre d'adresse mais elles sont vides.

 

si je fais un echo $user; dans le formulaire rien ne se passe. Je crois que le script doit empêcher l'exécution du body mais je ne vois pas pourquoi :'(

 

Pas de version en ligne désolé , c'est de l'intranet.


Message édité par quelu le 08-06-2011 à 16:24:44
n°2081392
Paulp
~, sweet ~
Posté le 08-06-2011 à 17:34:11  profilanswer
 

Installe firebug et regarde ce qui se passe dans l'onglet réseau.
 

n°2081488
quelu
Posté le 09-06-2011 à 09:23:04  profilanswer
 

Sur le reseaux , c'est IE qui est utilisé .

 

J'ai essayer sur Firefox , il ma demander mes log session avant d'ouvrir la page du formulaire , il a bien affiché mon nom et ma commande a bien fonctionner .En revanche toujours impossible de récupéré le $user dans le formulaire afin de l'envoyer au fichier txt.

 

firebug n'a rien signalé

 

Un problème de navigateur ?


Message édité par quelu le 09-06-2011 à 10:29:05
n°2081513
Paulp
~, sweet ~
Posté le 09-06-2011 à 10:29:16  profilanswer
 

Tu n'as pas l'user dans la session ?
 
dans $_SERVER, ce n'est pas la peine, cette variable est remise à zéro à chaque nouvelle requête.
 
Enlève le @ devant session_start et partout en général : ça te masque les erreurs. Il vaut mieux les afficher en debug ... En production, tu peux ensuite créer ton handler personnalisé ou les masquer si tu préfères ...
essaye un print_r($_SESSION) à la fin de la page de formulaire, et un au début de la cible (juste après le session_start).

n°2081518
quelu
Posté le 09-06-2011 à 10:43:25  profilanswer
 

j'ai toujours cette erreur qui reviens :

 

Warning: Cannot modify header information

 

pour les lignes :

 

header('HTTP1.0 401 Unauthorized');
header($ntlm);
header('HTTP/1.1 401 Unauthorized');
header('Authenticate: NTLM ');

 

et firebug affiche 1 request pour Get ticket.php

 

//header('Authenticate: NTLM '); // cette ligne permet d'éviter le rappel de login et cloture parfaitement l'opération. Ainsi les fonction POST sont remises en fonction.

 

c'est exactement ce qu'il me faut mais cela ne fonctionne pas

 

print_r($_SESSION) n'affiche rien a la fin du formulaire


Message édité par quelu le 09-06-2011 à 10:45:08
n°2081758
Paulp
~, sweet ~
Posté le 10-06-2011 à 09:29:23  profilanswer
 

Remets le code de la page en l'état actuel

n°2081766
quelu
Posté le 10-06-2011 à 09:48:39  profilanswer
 

http://www.commentcamarche.net/for [...] s-nt-logon
 
voila enfaite le NTML bloque les POST sous IE , donc le NTLM est inutilisable dans mon cas

n°2081769
Paulp
~, sweet ~
Posté le 10-06-2011 à 09:59:52  profilanswer
 

Je préfère mille fois utiliser du logiciel libre, mais vu le besoin, je te conseille vivement de reconsidérer IIS ...
Faire une authentification compte windows / IE / IIS, ça se fait tout seul ...

n°2081771
quelu
Posté le 10-06-2011 à 10:08:09  profilanswer
 

comment ca se passe pour IIS ?

n°2081774
Paulp
~, sweet ~
Posté le 10-06-2011 à 10:20:36  profilanswer
 

Tu installes IIS sur un serveur windows, tu installes l'extension fastcgi, tu installes PHP, et tu coches dans la configuration du site 'Authentification windows integrée'.
 
Si tu t'orientes vers ce choix, envoie moi un mp avec ton mail, je te ferai parvenir une doc

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

   nom prenom utilisateur

 

Sujets relatifs
Afficher une image avec header(..jpeg) et readfile en phpBesoin d'aide pour un site web ...
Demander à l'utilisateur de definir le nom d'un objetAfficher du HTML dans une JFrame
Publier site NetBean Aide SvpIncorporer morceau site externe
[VBS]Tester l'appartenance d'un utilisateur à un groupe ADFaire afficher une zone ENUM
Modif site Web dreamweaverUtilisateur universel
Plus de sujets relatifs à : nom prenom utilisateur


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR