IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

session et contrôle d'identifiant : placement du code


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 52
    Par défaut 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ...
    <body>
    	<div id="container">
    <? 
    if ($id_table) {
    	if ($_SESSION['password']==$pwd_table) {
    ?>
    footer.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  2. #2
    Membre confirmé Avatar de alejandro
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2004
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2004
    Messages : 167
    Par défaut
    Bonjour,

    C'est pour résoudre ce genre de problèmes qu'on a créé la programmation orientée objet ou la programmation fonctionnelle

    En PHP, tu ne peux PAS séparer des accolades ouvrantes et fermantes entre deux fichiers.

    Ton problème est un problème architectural, car actuellement tu fais de la programmation séquentielle, ce qui marche mais qui devient vite difficilement maintenable au fur et à mesure que tu rends ton programme plus complexe et que tu le sépare en de multiples fichiers que tu inclue les uns dans les autres.

    sinon pour résoudre ton problème je suggère de consulter http://php.net/manual/fr/language.ty...syntax.heredoc

    exemple pour toi dans ton fichier de base, tu :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <!-- session php, header html -->
    <?php include("template/header.php"); ?>
    <!-- titre et menu -->
    <?php include("template/en-tete.php"); ?>
     
    <?php $contenu = <<<html
    <!-- corps de la page -->
    <div id="main">
    	<div class="spacer"></div>
    <!-- fermeture des balises html et php commune aux pages -->
    html;
     
    <?php include("template/footer.php"); ?>
    ainsi tu peux placer tout ton code dans ton footer plus bas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <? 
    if ($id_table) {
    	if ($_SESSION['password']==$pwd_table) {
                    echo $contenu;
    ?>
    <!-- Pied de page -->
    <div class="footer">
    </div>
    <?php
    	}
    	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>
    Bonne journée.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 52
    Par défaut
    Merci, ça fonctionne à peu près comme je le veux.

    Peut être qu'un jour, je ferais de la prog objet, entre deux brassages ^^

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 31/08/2009, 11h59
  2. [1.x] session : récupération de l'identifiant d'un utilisateur
    Par kifouillou dans le forum Symfony
    Réponses: 1
    Dernier message: 17/08/2008, 21h43
  3. Gestion des sessions IIS(6.0) FTP avec du code
    Par Chii-san dans le forum IIS
    Réponses: 0
    Dernier message: 11/12/2007, 13h03
  4. session utilisateur contrôlée
    Par spaghetti dans le forum Windows XP
    Réponses: 5
    Dernier message: 01/08/2007, 21h40
  5. Placement du code ASP dans la page WEB
    Par sam.fet dans le forum ASP
    Réponses: 2
    Dernier message: 11/08/2006, 18h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo