nom prenom utilisateur - PHP - Programmation
Marsh Posté le 01-06-2011 à 14:10:12
merci flo850 mais pouvez vous développer votre réponse s'il vous plait ?
Marsh Posté le 01-06-2011 à 14:50:25
Si ton intranet est en PHP :
http://www.phpcs.com/code.aspx?ID=25272
Marsh Posté le 06-06-2011 à 11:09:03
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
Marsh Posté le 07-06-2011 à 11:31:49
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
Marsh Posté le 07-06-2011 à 14:02:30
le fichier qui contient session_start(), est-il inclus par une autre page?
Marsh Posté le 07-06-2011 à 14:06:33
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
Marsh Posté le 07-06-2011 à 14:15:12
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.
Marsh Posté le 07-06-2011 à 14:31:40
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 ?
Marsh Posté le 07-06-2011 à 14:33:20
oui oui le code php est pris en compte même si tu le mets avant <html>...
Marsh Posté le 07-06-2011 à 14:44:20
donc je suppose que sa marche mais rien n'est affiché
Marsh Posté le 07-06-2011 à 15:02:45
j'obtiens:
NTLM Flag error!
Marsh Posté le 07-06-2011 à 15:10:50
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
Marsh Posté le 07-06-2011 à 15:16:35
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
Marsh Posté le 08-06-2011 à 09:04:51
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 ?)
Marsh Posté le 08-06-2011 à 09:43:57
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 ?
Marsh Posté le 08-06-2011 à 09:55:12
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
Marsh Posté le 08-06-2011 à 10:07:59
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 ?
Marsh Posté le 08-06-2011 à 10:26:24
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
Marsh Posté le 08-06-2011 à 10:37:34
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="..." />
Marsh Posté le 08-06-2011 à 11:54:23
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.
Marsh Posté le 08-06-2011 à 12:09:36
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).
Marsh Posté le 08-06-2011 à 15:20:32
lol ben moi non plus je n'y comprend rien.
Marsh Posté le 08-06-2011 à 15:26:29
- 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 :
|
Marsh Posté le 08-06-2011 à 15:40:59
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 :
|
merci de ton aide !
Marsh Posté le 08-06-2011 à 15:56:25
Il est présent dans le fichier
Marsh Posté le 08-06-2011 à 16:13:16
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 ?
Marsh Posté le 08-06-2011 à 16:24:19
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.
Marsh Posté le 08-06-2011 à 17:34:11
Installe firebug et regarde ce qui se passe dans l'onglet réseau.
Marsh Posté le 09-06-2011 à 09:23:04
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 ?
Marsh Posté le 09-06-2011 à 10:29:16
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).
Marsh Posté le 09-06-2011 à 10:43:25
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
Marsh Posté le 10-06-2011 à 09:48:39
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
Marsh Posté le 10-06-2011 à 09:59:52
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 ...
Marsh Posté le 10-06-2011 à 10:20:36
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
Marsh Posté le 01-06-2011 à 10:30:10
Bonjour à tous ,
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