155 lines
6.9 KiB
PHP
Executable File
155 lines
6.9 KiB
PHP
Executable File
<?php
|
|
|
|
// ---------------------------------------------------
|
|
// Auteur : Edt
|
|
// Date : 2021.05.10
|
|
// Version : 2015847896325151515
|
|
// Fonction : identifiants de connexion a la base
|
|
// + Url server
|
|
// Input : fichier dbc de conf
|
|
|
|
// $server est géré ici car inutile en base, ça évite de refaire des test d'url partout
|
|
// Pour les db : bdd.prod et bdd.wbadm
|
|
// Pour les dossiers : siteNom.prod et siteNom.wbadm
|
|
// Comme ici on n'est pas encore connecté / connectable, on prends le nom de la bdd pour le nom du site, affecté a siteDossier
|
|
|
|
// ---------------------------------------------------
|
|
// init var
|
|
// ---------------------------------------------------
|
|
$isWbAdm=false;
|
|
$trouve=false;
|
|
$siteDossier='';
|
|
$host="";
|
|
$server="";
|
|
|
|
//$debug[13]='1';
|
|
|
|
// ---------------------------------------------------
|
|
// Include des credentials mysql dans -> dbc.php --> creation auto de sites 123ventes --> remplacera les valeurs de cet include
|
|
// on va se servir du nom de la bdd pour siteDossier
|
|
// ---------------------------------------------------
|
|
if (isset($debug[13]) && $debug[13] == '1' ) $debugMsg .= monDebug (1, [
|
|
'includePathConf' => $includePathConf,
|
|
'jeViensDeIndex' => isset($jeViensDeIndex) ? $jeViensDeIndex:'',
|
|
],'databaseConnect.php');
|
|
|
|
if (empty($includePathConf)) $includePathConf='./_conf';
|
|
$trouve=false;
|
|
|
|
if (file_exists ($includePathConf. "/dbc.php") ) { include ($includePathConf. "/dbc.php"); $trouve=true; }
|
|
if ($trouve==false && file_exists ("../_conf/dbc.php") ) {include ("../_conf/dbc.php"); $trouve=true;}
|
|
if ($trouve==false && file_exists ("../../_conf/dbc.php") ) {include ("../../_conf/dbc.php"); $trouve=true;}
|
|
if ($trouve==false && file_exists ("../../../_conf/dbc.php") ) {include ("../../../_conf/dbc.php"); $trouve=true;}
|
|
if ($trouve==false && file_exists ($_SESSION['server']. "/_conf/dbc.php") ) {include ($_SESSION['server']. "/_conf/dbc.php"); $trouve=true;}
|
|
if ($trouve==false && file_exists ($_SESSION['siteDossier']. "/_conf/dbc.php") ) {include ($_SESSION['siteDossier']. "/_conf/dbc.php"); $trouve=true;}
|
|
if (isset($debug[13]) && $debug[13] == '1' ) $debugMsg .= monDebug(1, ['includePathConf' => $includePathConf ],'');
|
|
|
|
|
|
// ---------------------------------------------------
|
|
// Variables de 'reference' qui pourront etre appelé à tout momemt
|
|
// ---------------------------------------------------
|
|
$_SESSION['siteDossierProd']=$bdd. ".prod";
|
|
$_SESSION['siteDossierWbAdm']=$bdd. ".wbadm";
|
|
$_SESSION['bdd']=$bdd.".wbadm";
|
|
$_SESSION['prodBdd']=$bdd. ".prod";
|
|
if ($bdd=="demo") $_SESSION['isDemo']=1; else $_SESSION['isDemo']=0;
|
|
|
|
// ---------------------------------------------------
|
|
// Calcul si wbadm ou prod en cours
|
|
// Recalculer a chaque fois car si on a changé d'url, il pourrait prendre une session fausse
|
|
// ---------------------------------------------------
|
|
$tstPos=0;
|
|
if (isset($_SERVER['REQUEST_URI'])) {
|
|
$tstPos=strPos(strtolower($_SERVER['REQUEST_URI']), 'wbadm' ) ;
|
|
if ($tstPos >0 ) {$trouve=true; $isWbAdm=true;}
|
|
if (isset($debug[13]) && $debug[13] == '1') { $debugMsg .= monDebug (1, ['isWbAdm' => $isWbAdm, 'wbAdm trouvé dans recherche1' => $trouve], '');}
|
|
}
|
|
|
|
if ($trouve==false && isset( $_SERVER['HTTP_URL'])) {
|
|
$tstPos=strPos(strtolower($_SERVER['HTTP_URL']), 'wbadm' ) ;
|
|
if ($tstPos >0) {$isWbAdm=true;}
|
|
if (isset($debug[13]) && $debug[13] == '1') { $debugMsg .= monDebug (1, ['URL' => strtolower($_SERVER['HTTP_URL']), 'wbAdm trouvé dans recherche2' => $trouve], '');}
|
|
}
|
|
|
|
if ($isWbAdm === true) {
|
|
// ---------------------------------------------------
|
|
// On est en integration, on prends bdd come nom de site avant de lui rajouter.wbadm
|
|
// ---------------------------------------------------
|
|
$siteDossier=$bdd. ".wbadm";
|
|
$bdd=$bdd. ".wbadm";
|
|
|
|
// ---------------------------------------------------
|
|
// Mise en session variables transverses
|
|
// ---------------------------------------------------
|
|
$_SESSION['isProd'] = false;
|
|
$_SESSION['isWbAdm'] = true;
|
|
}
|
|
else {
|
|
// ---------------------------------------------------
|
|
// On est en Prod, on prends la bdd come nom de site avant de lui rajouter.prod
|
|
// ---------------------------------------------------
|
|
$siteDossier=$bdd. ".prod";
|
|
$bdd=$bdd. ".prod";
|
|
|
|
// ---------------------------------------------------
|
|
// Mise en session variables transverses
|
|
// ---------------------------------------------------
|
|
$_SESSION['isProd'] = true;
|
|
$_SESSION['isWbAdm'] = false;
|
|
}
|
|
|
|
// ---------------------------------------------------
|
|
// Mise en session variables courantes calculées
|
|
// ---------------------------------------------------
|
|
// Calcul de server ( servira pour forcer les liens internes en absolus )
|
|
// ---------------------------------------------------
|
|
if (isset($_SERVER['HTTP_HOST'] ) ) $host = $_SERVER['HTTP_HOST'] ; else $host='localhost';
|
|
$server = $host. '/'.strtolower($siteDossier);
|
|
$_SESSION['lienAccueil']=$server."/";
|
|
$_SESSION['siteDossier']=$siteDossier;
|
|
$_SESSION['host']=$host;
|
|
$_SESSION['server']=$server;
|
|
|
|
// ---------------------------------------------------
|
|
// Debug
|
|
// ---------------------------------------------------
|
|
$hostName=gethostname();
|
|
if (isset($debug[13]) && $debug[13] == '1') {
|
|
$debugMsg .= monDebug (1, [
|
|
'affPageSite' => isset($_GET['affPageSite'])? isset($_GET['affPageSite']):'',
|
|
'isWbAdm' => $isWbAdm,
|
|
'SERVER[HTTP_URL]' => isset($_SERVER['HTTP_URL']) ? $_SERVER['HTTP_URL']: '',
|
|
'SERVER[REQUEST_URI]' => isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI']: '',
|
|
'SERVER[SERVER_ADDR]' => isset($_SERVER['SERVER_ADDR']) ? $_SERVER['SERVER_ADDR']: '',
|
|
'host' => $host,
|
|
'SERVER[HTTP_HOST]' => isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST']: '',
|
|
'$_SESSION[ip] (depuis initProjet)' => isset($_SESSION['ip']) ? $_SESSION['ip']: '',
|
|
'SESSION[isProd]' => $_SESSION['isProd'],
|
|
'SESSION[isWbAdm]' => $_SESSION['isWbAdm'],
|
|
'server' => $server,
|
|
'siteDossier' => $_SESSION['siteDossier'],
|
|
'lienAccueil' => $_SESSION['lienAccueil'],
|
|
'hostName' => $hostName,
|
|
'bdd' => $bdd,
|
|
'host' => $host,
|
|
'user' => $user
|
|
], '');
|
|
}
|
|
|
|
try {
|
|
|
|
$idPdo = new PDO('mysql:host=localhost; dbname=' .$bdd. ';charset=utf8mb4', $user, $pass);
|
|
// MÉTHODE COMPLÈTE (PDO AVEC VÉRIFICATIONS)
|
|
$idPdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // Gestion des erreurs
|
|
$idPdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
|
|
// echo 'connected';
|
|
} catch (PDOException $e) {
|
|
if (isset($debug[13]) && $debug[13] == '1') $debugMsg .= monDebug (1, ["Erreur database connect" => $e->getMessage()],'');
|
|
die();
|
|
// echo 'Not connected';
|
|
}
|
|
// on pourrait définir idPdoProd ici, cela eviterais tous les include ../conf/prod.dbConnect.php
|
|
// pour ce faire, il faut bien voir les impacts, notamment sur les replace de webMaster
|
|
// et être dispo pour faire tous les tests.
|
|
|
|
?>
|