par
BeRoots » 30 sept. 2006, 00:17
oui un grand merci à vous deux
faire les choses c'est bien, les comprendre c'est mieux.
je peut donc continuer à vous expliquer mon problème vue que ceci est reglé...
en faite, tant cas chercher à externaliser des fonctionnaliter de mon code, autant essayer de regrouper un peu. Mon nouvelle objectif est donc de regrouper plusieur tache dans un même fichier qui sera appeler en include.
c'est là qu'on va commencer à parler de class et de fonction proprement dite.
vue que pour controler l'acces à mes pages et y associer certaines variables, je doit verifier si $_SESSION['login'] existe. Et vue que je redirige dans les deux cas mais pas si aucun controle d'acces n'est demandé, alors je doit appeler des function(); si je souhaite controler l'acces ou non.
en claire je doit faire un fichier
fonction.php de ce genre:
<?php
// si non-connecté, initialisation des variables à afficher sur chaque page
if(!isset($_SESSION['login']))
{
$login = 'Invité';
$lien_deconnection = '';
$admin = '';
// création d'une fonction à appeller si on veut interdire l'acces aux non-connectés
function connection_demander()
{
$host = $_SERVER['HTTP_HOST'];
$uri = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
$page = 'acces_denied_login.php';
header ("Location: http://$host$uri/$page");
exit;
}
}
// si connecté, initialisation des variables à afficher sur chaque page
elseif(isset($_SESSION['login']))
{
$login = $_SESSION['login'];
$lien_deconnection = '<a href="deconnect.php">deconnection</a>';
$admin = '';
if($session['login'] == 'administrateur')
{
$admin = '<a href="admin.php">lien vers admin</a>
}
// création d'une fonction à appeller si on veut interdire l'acces aux connectés
function deconnection_demander()
{
$host = $_SERVER['HTTP_HOST'];
$uri = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
$page = 'acces_denied_logout.php';
header ("Location: http://$host$uri/$page");
exit;
}
}
?>
ensuite sur chaque page non-controler on aura juste:
<?php
// inclusion des variables propre à la page
include("includes/fonction.php");
// contenu de la page
?>
sur chaque page où l'on doit etre loggé, on aura juste:
<?php
// inclusion des variables propre à la page
include("includes/fonction.php");
// appel de la fonction de redirection
function connection_demander();
// contenu de la page (si toutefois la fonction connection_demander n'a pas mis fin au script)
?>
sur chaque page où l'on doit etre non-loggé, on aura juste:
<?php
// inclusion des variables propre à la page
include("includes/fonction.php");
// appel de la fonction de redirection
function deconnection_demander();
// contenu de la page (si toutefois la fonction deconnection_demander n'a pas mis fin au script)
?>
que penser vous de ceci? est ce que cela devrai marcher? peut on simplifier en definisant des class?
merci d'avance
