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
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
A voir également:
- Fonction PHP
- Fonction si et - Guide
- Easy php - Télécharger - Divers Web & Internet
- Fonction moyenne excel - Guide
- Fonction somme excel - Guide
- Fonction miroir - Guide
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
7 févr. 2008 à 13:40
Elle n'existe pas...
Ce n'est pas possible directement.
Ce n'est pas possible directement.
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
7 févr. 2008 à 13:41
Dans ce cas , comment faire pour récupérer le nom de l'utilisateur windows!?
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
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.
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.
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
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
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
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
7 févr. 2008 à 13:52
alors apparemment il y a un souci avec les sessions.
Appel tu ta page par un include ?
Appel tu ta page par un include ?
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
7 févr. 2008 à 13:56
J'accede à la page avec un lien :<div align="center" ><a href="./test.php" >ici</a></div>
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
7 févr. 2008 à 14:00
Marque nous les 19 premières lignes stp...
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
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();
<?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();
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
7 févr. 2008 à 14:08
Bon... les 30èmes finalement...
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
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
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
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
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 ?
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 ?
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
7 févr. 2008 à 14:35
J'accede a cette page a partir d'une autre , mais c'est tout.
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
7 févr. 2008 à 14:44
Et si tu la lances directement ?
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
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
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
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
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 ?
Et ta page commence tout de suite par le <?php, on est d'accord ?
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
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.
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.
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
7 févr. 2008 à 15:07
C'ets fou...
Dsl mais, stp, mets moi le code en entier.
Dsl mais, stp, mets moi le code en entier.
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
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!";
}
}
}
}
?>
?>
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!";
}
}
}
}
?>
?>
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
7 févr. 2008 à 15:11
Commence par mettre en commentaire tout les lignes echo, puis enlèves le deuxième ?> en bas.
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
7 févr. 2008 à 15:14
Cela ne change rien , toujour les même erreurs a l'écran.
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
7 févr. 2008 à 15:19
Je ne sais vraiment pas quoi te dire...
L'erreur suivante :
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.
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.