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 :

Module et connexion, un petit souci


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 63
    Points : 10
    Points
    10
    Par défaut Module et connexion, un petit souci
    Bonjour,

    j'utilise le système des actions et modules et j'ai un petit souci.

    En effet, lorsque je me connecte, je suis obligé de rediriger la page vers index.php sinon la page n'affiche pas ce qu'il y a dans mon module accueil.class.php

    Au début, j'ai ça :
    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
     
     
    <?php
    if(isset($_POST['log']) && isset($_POST['pass'])){
        include("BD/DB.class.php");
        include("BD/collaborateurs.class.php");
        $login = $_POST['log'];
        $pass = $_POST['pass'];
        $pass = md5($pass);
        $db = new DB();
        $collaborateurs = new collaborateurs($db);
        $x=$collaborateurs->findByPseudo('login',$login);
        if($x['login']==$login){
                $_SESSION['droit']= $x['droit'];
        $x=$collaborateurs->findByPseudo('password',$pass);
     
     
     
        if($x['password']==$pass){
                //echo "<script LANGUAGE=\"JavaScript\">setTimeout(\"window.location='admin.php'\",0);</script>";          //demande a arnaud !!!
                $_SESSION['log'] = $login;
                $_SESSION['pass'] = $pass;
     
                }
     
            }
    }
     
    ?>
    Puis j'ai ça :
    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
    if(isset($_SESSION['log'])){   
    //menu 
     
    include('modules/etudiants.class.php');
    include('modules/accueil.class.php');
    include('modules/compte.class.php');
    include('modules/sondage.class.php');
     
     
    $module = new Accueil(); // Par defaut on fait l'action 1 du module 1
    $action = 'accueil';
    if(isset($_GET['module'])) {
        switch($_GET['module']) {
     
     
            case 'compte': $module = new Compte();
            break;
            case'etudiants':$module=new etudiants();
            break;
            case'sondage':$module=new sondage();
            break;
            case 'espace': $module = new Espace();
            break;
     
        }
    }
     
     
    // On récupère l'action faite..
    if(isset($_GET['action'])) $action = $_GET['action'];
     
    // On demande au module concerné de gérer l'action associée.
    $module->doAction($action);
     
    ?>
    Puis dans la classe accueil :

    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
    37
    38
    39
    <?php
    class Accueil {
     
    	public function __construct(){
     
    	}
    		public function doAction($action){
    		switch($action){
    			case 'Site':
    			$this->doActionSite();
    			break;
     
    			default:
    			$this->doActionSite();
    			break;
    		}
    	}
     
    	public function doActionSite(){
     
    		echo "toto";
     
     
     
    	}	
     
     
     
     
     
     
     
     
     
    }		
     
     
     
    ?>
    Alors, je pensais faire un new Accueil() dans la première partie mais sans réussite.

    Si vous avez d'autres idées qu'une redirection JS, je suis preneur

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu peux rediriger avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header('Location: admin.php');
    La redirection est elle quasi-transparente pour l'utilisateur.

    en tout cas pour moi une redirection est une meilleure solution que de vouloir appeller ton affichage : c'est le role de page de controle de gérer ça.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 63
    Points : 10
    Points
    10
    Par défaut
    Et je suis censé mettre ça où ?

    Car si je le mets à la place de ma redirection JS, ça marche pas.

    Il n'y a vraiment aucun autre moyen qu'une redirection ?

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu peux être plus précis que "ça marche pas" ?

    Pour les solutions alternatives, c'est très simple : soit tu vas vers la page qui fait l'affichage soit tu traites l'affichage sur la même page.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 63
    Points : 10
    Points
    10
    Par défaut
    Bah ça ne marche pas signifie que ça ne fait rien.
    C'est comme si il n'y avait pas cette ligne, ptet que je la place mal mais je vois pas où je pourrais la mettre autre part qu'à la place de la redirection JS :/

    Pour les solutions alternatives, c'est très simple : soit tu vas vers la page qui fait l'affichage soit tu traites l'affichage sur la même page.
    aller vers la page ?
    Un goto ?

    Sinon, c'est juste pour l'aspect sécurité, la redirection JS, c'est mauvais, non ?

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Sinon, c'est juste pour l'aspect sécurité, la redirection JS, c'est mauvais, non ?
    La methode que tu utilises pour aller vers la page ne change rien ; ce qu'il faut se poser comme question d'un point de vue de la sécurité, c'est "que se passe t-il si l'utilisateur accède manuellement à la page admin.php ?"


    aller vers la page ? Un goto ?
    on appelle ça (roulement de tambours) une redirection
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre éclairé
    Avatar de hornetbzz
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Octobre 2009
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Directeur commercial

    Informations forums :
    Inscription : Octobre 2009
    Messages : 482
    Points : 773
    Points
    773
    Par défaut
    Euh... je vais peut-être dire une bêtise, mais pourquoi ne pas tout simplement utiliser la SPL autoload.. pour charger tes classes automatiquement lors d'une nouvelle instanciation ...?

Discussions similaires

  1. [Python 3.X] Petit souci d'encodage avec le module chardet
    Par marco056 dans le forum Général Python
    Réponses: 5
    Dernier message: 11/05/2015, 23h45
  2. [MySQL] Petit souci de connexion à MySQL : Access denied for user 'root'@'localhost'
    Par tanaka59 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 25/11/2011, 17h27
  3. club internet : petit souci de connexion
    Par hiko-seijuro dans le forum Dépannage et Assistance
    Réponses: 20
    Dernier message: 29/10/2006, 12h35
  4. Petit souci JSP et class de connexion a BdD
    Par LeXo dans le forum Servlets/JSP
    Réponses: 13
    Dernier message: 07/06/2006, 00h57
  5. Petit souci sur la libération d'une connexion tcp
    Par alexandre75 dans le forum Développement
    Réponses: 1
    Dernier message: 08/11/2005, 19h43

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