alpha_full/_include/dataBaseConnect.php
2026-04-06 22:58:51 +02:00

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.
?>