Bonjour
C'est dans le but de modifier tout un site, pour sécuriser son mode d'authentification de ses visiteurs authentifiés.
Désormais, la fonction certitifiant l'authentification, aurait pour prototype : make_authen($password) , et la fonction vérifiant l'authentification, aurait pour prototype : verif_authen()
Ces deux fonctions, serait incluses dans un script php nommé authen.php , et ces deux fonctions, contiendraient des instructions MySQL sur une table MySQL nommée : authentification.
Ces deux fonctions, contiendraient donc chacune, la variable globale $conn donnant la connexion en cours, à la Base de Données, et le problème consiste à savoir, à quel endroit des scripts du site, inclure le script authen.php contenant ces fonctions.
Il va de soi, qu'au moment où l'une de ces deux fonctions est appelée, la connexion à la Base de Données ( alimentant la variable $conn ) est toujours active.
Sachant celà, est-ce que je pourrais, inclure tout simplement ce script authen.php, dans le script contenant les fonctions de connexion et de déconnexion à la Base de Données, sachant que ce dernier script est lui-même inclus dans chaque scripts du site à modifier, et qu'effectivement, les connexions à la Base de Données, ne sont pas fait dans ce dernier script, mais dans les scripts incluant ce dernier script ?
Par exemple, pourrais je avoir une architecture de ce type :
script connect_deconnect.php contenant les fonction connect() et disconnect(), ainsi que les scripts inclus class_MyPDO.php et authen.php :
connect_deconnect.php
---------------------
-------------------------------------------------------
<?php
include("class_myPDO.php");
global $conn;
function connect()
{
// Instruction de connexion
// alimentant la variable
// globale $conn
}
function disconnect($conn)
{
unset($conn);
}
include("authen.php");
?>
-----------------------------------------------------------
authen.php
----------
-----------------------------------------------------------
<?php
global $conn;
function make_authen($password)
{
global $conn;
// Instructions MySQL
// utilisant la connexion
// à la Base de Données
// donnée par la variable $conn,
// ces instructions assurant
// l'authentification
// du visiteur ayant présenté
// le mot de passe $password
return(true);
}
function verif_authen()
{
global $conn;
// Instructions MySQL
// utilisant la connexion
// à la base de Données
// donnée par la variable $conn,
// cette fonction rend true
// si le visiteur est authentifié
// et false si non authentifié.
}
?>
-----------------------------------------------------
Maintenant, un exemple d'un script php utilisant les fonctions du script authen.php , alors que la connexion à la Base de Données est active :
script example.php
<?php
session_start();
include("connect_deconnect.php");
global $conn;
$conn = connect();
if(!$conn)
{
// Message d'erreur
exit;
}
// On suppose, que le mot de passe $password
// associé au pseudo $pseudo , a été vérifié, donc
// on authentifie ce visiteur :
$_SESSION['pseudo'] = $pseudo;
if(!make_authen($password))
{
// Message d'erreur,
// visiteur non authentifié
unset($_SESSION['pseudo']);
disconnect($conn);
exit;
}
// Là, le visiteur est authentifié,
// Dans ce script ( mais celà peut être aussi bien dans un autre script ),on vérifie si le visiteur est authentifié :
if(verif_authen())
{
// Traitement normal,
// le visiteur est authentifié.
}
else
{
// Traitement destiné
// à demander au visiteur
// de fournir un pseudo
// et un mot de passe valide,
// puis le traitement
// vérifie si le pseudo et le password
// sont corrects,
// puis dans ce script,
// déclenche de nouveau la fonction
// make_authen($password);
//
}
disconnect($conn);
// Suite du traitement éventuel.
exit;
?>
-------------------------------------------------
Donc, voici ma question :
A supposer, que la connexion à la Base de Données dans le(s) script(s) appelant, précède toujours les appels aux fonctions make_authen($password) et/ou verif_authen() , cette connexion MySQL sera-t-elle valide à l'intérieur de ces deux fonctions, bien que ces deux fonctions, sont déclarées avant l'instruction de connexion ( $conn = connect(); ) ?
En effet, pour plius de rapidité, je souhaite pouvoir inclure le script authen.php , tout bonnement dans le script connect_deconnect.php , ce qui ne fait qu'une seule inclusion pour tous les scripts du site, puisque le script connect_deconnect.php, est inclus partout où il y a besoin d'une connexion MySQL.
La variable $cconn étant globale partout, cette architecture de script est-elle valable ou non ?
Je reconnais que c'est une question très basique en php, mais j'aimerais bien être sûr avant de commencer à faire ces modifications.
Merci beaucoup de vos réponses.
Bien amicalement.
Jean François Ortolo
C'est dans le but de modifier tout un site, pour sécuriser son mode d'authentification de ses visiteurs authentifiés.
Désormais, la fonction certitifiant l'authentification, aurait pour prototype : make_authen($password) , et la fonction vérifiant l'authentification, aurait pour prototype : verif_authen()
Ces deux fonctions, serait incluses dans un script php nommé authen.php , et ces deux fonctions, contiendraient des instructions MySQL sur une table MySQL nommée : authentification.
Ces deux fonctions, contiendraient donc chacune, la variable globale $conn donnant la connexion en cours, à la Base de Données, et le problème consiste à savoir, à quel endroit des scripts du site, inclure le script authen.php contenant ces fonctions.
Il va de soi, qu'au moment où l'une de ces deux fonctions est appelée, la connexion à la Base de Données ( alimentant la variable $conn ) est toujours active.
Sachant celà, est-ce que je pourrais, inclure tout simplement ce script authen.php, dans le script contenant les fonctions de connexion et de déconnexion à la Base de Données, sachant que ce dernier script est lui-même inclus dans chaque scripts du site à modifier, et qu'effectivement, les connexions à la Base de Données, ne sont pas fait dans ce dernier script, mais dans les scripts incluant ce dernier script ?
Par exemple, pourrais je avoir une architecture de ce type :
script connect_deconnect.php contenant les fonction connect() et disconnect(), ainsi que les scripts inclus class_MyPDO.php et authen.php :
connect_deconnect.php
---------------------
-------------------------------------------------------
<?php
include("class_myPDO.php");
global $conn;
function connect()
{
// Instruction de connexion
// alimentant la variable
// globale $conn
}
function disconnect($conn)
{
unset($conn);
}
include("authen.php");
?>
-----------------------------------------------------------
authen.php
----------
-----------------------------------------------------------
<?php
global $conn;
function make_authen($password)
{
global $conn;
// Instructions MySQL
// utilisant la connexion
// à la Base de Données
// donnée par la variable $conn,
// ces instructions assurant
// l'authentification
// du visiteur ayant présenté
// le mot de passe $password
return(true);
}
function verif_authen()
{
global $conn;
// Instructions MySQL
// utilisant la connexion
// à la base de Données
// donnée par la variable $conn,
// cette fonction rend true
// si le visiteur est authentifié
// et false si non authentifié.
}
?>
-----------------------------------------------------
Maintenant, un exemple d'un script php utilisant les fonctions du script authen.php , alors que la connexion à la Base de Données est active :
script example.php
<?php
session_start();
include("connect_deconnect.php");
global $conn;
$conn = connect();
if(!$conn)
{
// Message d'erreur
exit;
}
// On suppose, que le mot de passe $password
// associé au pseudo $pseudo , a été vérifié, donc
// on authentifie ce visiteur :
$_SESSION['pseudo'] = $pseudo;
if(!make_authen($password))
{
// Message d'erreur,
// visiteur non authentifié
unset($_SESSION['pseudo']);
disconnect($conn);
exit;
}
// Là, le visiteur est authentifié,
// Dans ce script ( mais celà peut être aussi bien dans un autre script ),on vérifie si le visiteur est authentifié :
if(verif_authen())
{
// Traitement normal,
// le visiteur est authentifié.
}
else
{
// Traitement destiné
// à demander au visiteur
// de fournir un pseudo
// et un mot de passe valide,
// puis le traitement
// vérifie si le pseudo et le password
// sont corrects,
// puis dans ce script,
// déclenche de nouveau la fonction
// make_authen($password);
//
}
disconnect($conn);
// Suite du traitement éventuel.
exit;
?>
-------------------------------------------------
Donc, voici ma question :
A supposer, que la connexion à la Base de Données dans le(s) script(s) appelant, précède toujours les appels aux fonctions make_authen($password) et/ou verif_authen() , cette connexion MySQL sera-t-elle valide à l'intérieur de ces deux fonctions, bien que ces deux fonctions, sont déclarées avant l'instruction de connexion ( $conn = connect(); ) ?
En effet, pour plius de rapidité, je souhaite pouvoir inclure le script authen.php , tout bonnement dans le script connect_deconnect.php , ce qui ne fait qu'une seule inclusion pour tous les scripts du site, puisque le script connect_deconnect.php, est inclus partout où il y a besoin d'une connexion MySQL.
La variable $cconn étant globale partout, cette architecture de script est-elle valable ou non ?
Je reconnais que c'est une question très basique en php, mais j'aimerais bien être sûr avant de commencer à faire ces modifications.
Merci beaucoup de vos réponses.
Bien amicalement.
Jean François Ortolo