begin process at 2012 05 29 02:04:49
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

Autre

 > 

connexion


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

connexion

jeudi 1 juillet 2010 à 10:35:27 | connexion

celeste87

Bonjour à tous
j'ai un petit soucis.je suis actuellement en stage et je dois faire un site intranet en utilisant php et une base de données SQL server. pour faire la liaison entre les 2 j'ai télé charger le pilote sql server-php , configurer php.ini et tester avec phpinfo()et meme les echo " " et çà fonctionne.j'insère toujours le code " dl('php_sqlsrv_53_ts_vc9.dll');" au début de chaque fichier php comme demandé dans un tuto que j'ai lu.l'authentification au site se fait par les identifiants Windows (ntlm-compte NT) que je récupère dans le code suivant:

dl('php_sqlsrv_53_ts_vc9.dll');
<?php

define('_NTLM_AUTH_FAILED',1);
define('_NTLM_PROXY',2);

function getInfosFromNTLM() {
$session_start();

if (!empty($_SERVER['HTTP_VIA'])) {
return _NTLM_PROXY;
}
$header = apache_request_headers();
$auth = isset($header['Authorization']) ? $header['Authorization'] : null;

if (is_null($auth)) {
return unAuthorized();
}
if ($auth && (substr($auth,0,4) == 'NTLM')) {

$c64 = base64_decode(substr($auth,5));
$state = ord($c64{8});

switch ($state) {

case 1:
$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);
$ret = "NTLMSSP";
foreach ($chrs as $chr) {
$ret .= chr($chr);
}
return unAuthorized(trim(base64_encode($ret)));
break;

case 3:
$l = ord($c64{31}) * 256 + ord($c64{30});
$o = ord($c64{33}) * 256 + ord($c64{32});
$domain = str_replace("\0","",substr($c64,$o,$l));

$l = ord($c64{39}) * 256 + ord($c64{38});
$o = ord($c64{41}) * 256 + ord($c64{40});

$user = str_replace("\0","",substr($c64,$o,$l));
return array('domain'=>$domain,'user'=>$user);
break;
}
}
}
function unAuthorized($msg=null) {
$ntlm = 'WWW-Authenticate: NTLM';
if ($msg) {
$ntlm .= ' '.$msg;
}
header('HTTP1.0 401 Unauthorized');
header($ntlm);

return _NTLM_AUTH_FAILED
?>

et j'utilise la fonction verif_access() pour vérifier la connexion:
<?php
require_once('ntlm.php');
//
//
// Commun à toutes les pages
// Version 1
// Creation ete
//

// 192.168.29.229

$verif_acces = "Non";
$infos = getInfosFromNTLM();

switch ($infos) {
case _NTLM_PROXY:
die('No proxy for ntlm');
case _NTLM_AUTH_FAILED:
die('Sorry NTLM auth failed');
default:
//$_SERVER['REMOTE_USER'] = strtolower($infos['user']) ;
$_SESSION['user'] = strtolower($infos['user']) ;
print_r($_SESSION['user'] );
echo $_SESSION['user'] ;
//echo $infos['domain'];
break;
}
header('HTTP/1.1 401 Unauthorized');
header('Authenticate: NTLM ');

?>



voici ma fonction pour me connecter à la base:
function connect(){
if(!isset($this->db){
$serverName = "INTBOU73"; $connectionInfo = array( "Database"=>"Celeste");
$this->db = sqlsrv_connect( $serverName, $connectionInfo);//stockage du resultat dans $this->db

if( $this->db )
{
echo "Connexion établie avec succes bienvenue.$_SESSION['user']. \n";
}
else
{
echo "La connection n'a pas pu etre établie.\n";
die( print_r( sqlsrv_errors(), true));
}
}}


Ce qui me pose problème, c'est que quand je mets un echo "" ou phpinfo() dans un simple fichier php j'ai le résultat, par contre quand je veux tester la verif access.php par exemple, le ne vois que l'instruction dl('php_sqlsrv_53_ts_vc9.dll'); qui s'affiche dans une page blanche sans les les info sur l'user, je veux le recuperer pour le comparer avec ma base. Que faire?
Merci.
jeudi 1 juillet 2010 à 10:44:24 | Re : connexion

celeste87

je rappelle que j'utilise apache!!
vendredi 2 juillet 2010 à 14:58:48 | Re : connexion

47

Bonjour,

dl('php_sqlsrv_53_ts_vc9.dll'); est hors d'un bloc php

<?php
dl('php_sqlsrv_53_ts_vc9.dll');

au lieu de :

dl('php_sqlsrv_53_ts_vc9.dll');
<?php

bonne aprés midi



Cette discussion est classée dans : php, connexion, echo, ntlm, sqlsrv


Répondre à ce message

Sujets en rapport avec ce message

php et ldap [ par skoukni_brahim ] Bonjour, j'essaiye d'exécuter le script suivant "Test LDAP n° 1"; echo "Connexion ..."; $ds = ldap_connect ("localhost"); echo "Le résultat est ".$ds. Problème d'execution PHP au travers d'une frame [ par DarkCid ] Yaoh !Sur une page PHP, je prends des données mySQL pour les mettre dans une liste déroulante. Sur ce point, aucun problème, je lance la page directem Include qui include que dalle [ par DarkCid ] Yaoh !J'essaye de faire sur une page une liste dont le contenu vient d'une bdd mysql. Moi, feignasse de nature, je me suis dis que j'allais pas répéte Problème bizard avec les CSS [ par rouliendelavegas ] Encore moi J'ai fait une feuille de style (style.css à la racine du site)j'ai un fichier header.php (dans un dossier include) qui fait donc reference expiration variables de session [ par jekifvb6 ] Bonjour à toutes et tous,J'ai un problème avec un formulaire que j'essaie d'envoyer par email, avec les données des champs que je place dans des varia fichier en php. [ par deck_bsd ] Bonjour à tous,Voila je suis assez nul en php, mais j'ai fait dans ma page admin un textbox d'ou je peut modifier le contenut d'un fichier présent sur probleme!!!! [ par nacer_1954 ] bonjour tout le monde j'ai envis de faire un seul fichier php qui va traiter plusieurs formulaires. donc j'ai fait une page ou j'ai mis  plusieurs  mail avec php [ par dk ] bonjour, je suis entrain decrire un petit code pour l'envoi de mail massif sur mon site internet ...voici mon probleme :  le message que je transmet mail avec php [ par dk ] bonjour, je suis entrain decrire un petit code pour l'envoi de mail massif sur mon site internet ...voici mon probleme :  le message que je transmet Prb avec connexion a Bd mysql [ par matheo54 ] Bonjour,j'ai installé sur un xp un serveur Apache2 (Win32), PHP5 et mysql5. Apache marche bien, php marche bien dans apache. J'ai essayé de me connect


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,123 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales