session et contrôle d'identifiant : placement du code
Bonjour,
je rencontre un petit soucis. J'essaie de gérer une connexion à une appli avec contrôle login / mdp.
Sur une page inde.php, j'ai un formulaire login / mdp puis si la connexion est bonne j'envoie vers une page principale.
Tous mes fichiers php sont construis comme ça :
Code:
1 2 3 4 5 6 7 8 9
| <!-- session php, header html -->
<?php include("template/header.php"); ?>
<!-- titre et menu -->
<?php include("template/en-tete.php"); ?>
<!-- corps de la page -->
<div id="main">
<div class="spacer"></div>
<!-- fermeture des balises html et php commune aux pages -->
<?php include("template/footer.php"); ?> |
Dans header.php, j'ai :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| <?php
session_start();
include 'gaela_fct.php';
/// Récupération des variables
$_SESSION['login'] = $_POST['id'];
$_SESSION['password'] = $_POST['pwd'];
$idConnexion = mysql_connect('localhost','xxx','xxx');
if(!$idConnexion){
die('Connexion à la base impossible !');
}
mysql_set_charset ('UTF8');
mysql_select_db('gaela',$idConnexion);
$query = sprintf("SELECT * FROM `gaela_usr` WHERE `usr_id`='".$_SESSION['login']."'");
$idResult1 = mysql_query($query,$idConnexion);
while ($row = mysql_fetch_assoc($idResult1)) {
$id_table=$row['usr_id'];
$pwd_table=$row['usr_pwd'];
$RW_table=$row['RW'];
}
?>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="./style/jquery.dataTables.css" type="text/css" />
<link rel="stylesheet" href="./style/jquery-ui-1.9.2.custom.css" type="text/css" />
<link rel="stylesheet" href="./style/jquery.dataTables.yadcf.css" type="text/css" />
<link rel="stylesheet" href="./style/gaela.css" type="text/css" media="screen" />
<script type="text/javascript" src="./script/1.8.2.jquery.min.js"></script>
<script type="text/javascript" src="./script/1.9.2.jquery-ui.min.js"></script>
<script type="text/javascript" src="./script/1.9.4.jquery.dataTables.min.js" charset="utf8"></script>
<script type="text/javascript" src="./script/jquery.dataTables.yadcf.js"></script>
<script type="text/javascript" src="./script/datepicker-fr.js"></script>
<title>GAeLA</title>
</head>
<body>
<div id="container"> |
Si dans mon corps de page, je mets :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| <?
if ($id_table) {
if ($_SESSION['password']==$pwd_table) {
?>
<!-- corps de la page -->
<div id="main">
<div class="spacer"></div>
<?
}
else {
echo '<p>Mauvais mot de passe</p>
<a href="index.php">Recommencer</a>';
}
}
else {
echo '<p>Utilisateur inconnu</p>
<a href="index.php">Recommencer</a>';
}
?> |
le contrôle se fait bien, mais je dois répéter mon code sur toutes mes pages, hors c'est pas mon but.
Donc je découpe ça et je le place dans le header et footer comme ça :
header.php :
Code:
1 2 3 4 5 6 7
| ...
<body>
<div id="container">
<?
if ($id_table) {
if ($_SESSION['password']==$pwd_table) {
?> |
footer.php :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| <!-- Pied de page -->
<div class="footer">
</div>
<?
}
else {
echo '<p>Mauvais mot de passe</p>
<a href="index.php">Recommencer</a>';
}
}
else {
echo '<p>Utilisateur inconnu</p>
<a href="index.php">Recommencer</a>';
}
?>
<!-- close #container -->
</div>
</body>
</html> |
mais ça ne marche pas, j'ai une page blanche :(
Merci de votre aide.