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 :

Redirection MVC POO


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2016
    Messages : 16
    Points : 12
    Points
    12
    Par défaut Redirection MVC POO
    Bonjour, je suit actuellement en train de faire un site PHP en utilisant la POO ainsi que l'architecture MVC. Je pense que j'ai pas compris quelque chose car lors de la connexion au site. Quand les identifiants ne sont pas correcte, tout fonctionne correctement mais quand les identifiants sont bon il y a trop de redirection et donc Chrome me renvoie une erreur : 127.0.0.1 vous a redirigé à de trop nombreuses reprises.

    Voici une partie de mon index.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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    session_start();
    $_SESSION['estAdmin'] = 0;
    *
    //Tentative de connexion à la base de données
    try
    {
    ****$db = new PDO('mysql:host=localhost;dbname=William', 'root', '');
    ****$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
    }
    catch (Exception $e)
    {
    ****return 'Connexion à la base de données impossible';
    }
    *
    require('controleur/controleur.php');
    *
    if(isset($_GET['admin']))
    {
    ****if($_SESSION['estAdmin'] == 1)
    ****{
    ********if(isset($_GET['page']))
    ********{
    ************echo $_GET["page"];
    ************switch ($_GET['page'])
    ************{
    ****************case 'accueil':
    ********************afficheAccueilAdmin();
    ********************break;
    ****************case 'realisation':
    ********************afficheRealisationAdmin();
    ********************break;
    ****************case 'prestation':
    ********************affichePrestationAdmin();
    ********************break;
    ****************case 'annonce':
    ********************afficheAnnonceAdmin();
    ********************break;
    ****************case 'avis':
    ********************afficheAvisAdmin();
    ********************break;
    ****************default:
    ********************afficheAccueilAdmin();
    ********************break;
    ************}
    ********}
    ********else
    ********{
    ************afficheAccueilAdmin();
    ********}
    ****}
    ****else
    ****{
    ********if(isset($_POST["login"]) && isset($_POST["mdp"]))
    ********{
    ************$_SESSION["login"] = $_POST["login"];
    ************$_SESSION["mdp"] = $_POST["mdp"];
    ********}
    ********afficheConnexionAdmin($db);
    ****}
    }
    Voici une partie de mon controleur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function afficheConnexionAdmin($db)
    {
    ****$manager = new UtilisateurManager($db);
    ****$utilisateur = $manager->getIdentifiants();
    *
    ****require 'vues/connexionAdmin.php';
    }
    Et voici ma vue



    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
    40
    41
    42
    43
    44
    45
    <body class="bodyAdmin">
    *
    ********<img id="Logo" class="LogoWilliam" src="vues/images/logo.png" onclick="FrmVisib()" />
    ********<?php
    ************if(isset($_SESSION["login"]) && isset($_SESSION["mdp"]))
    ************{
    ****************if(!empty($_SESSION["login"]) && !empty($_SESSION["mdp"]))
    ****************{
    ********************$login = htmlspecialchars($_SESSION["login"]);
    ********************$mdp = hash("sha256", $_SESSION["mdp"]);
    *
    ********************if($login == $utilisateur->getUtilisateur_Login() && $mdp == $utilisateur->getUtilisateur_Password())
    ********************{
    ************************$_SESSION['estAdmin'] = 1;
    ************************header("Location: Index.php?admin&action=accueil");
    ********************}
    ********************else
    ********************{
    ************************$erreur = 'Login ou mot de passe incorrect !';
    ********************}
    ****************}
    ****************else
    ****************{
    ********************$erreur = 'Veuillez remplir tous les champs !';
    ****************}
    ************}
    ********?>
    ********<section Id="FrmConnect" style="visibility: hidden;">
    ************<center>
    ****************<br/>
    ****************<div id="ConnectionMargeTop">
    ********************<?php if(isset($erreur)){echo '<div class="erreur">' . $erreur . '</div>';?> <script type="text/javascript"> FrmVisib()</script><?php } ?>
    *
    ********************<form method="POST">
    ************************<table>
    ****************************<tr><td><input class="TxtGlobal" type="text" placeholder="Login" name="login" required></td></tr>
    ****************************<tr><td><input class="TxtGlobal" type="password" placeholder="Mot de passe" name="mdp" required></td></tr>
    ****************************<tr><td><center><input class="BtnGlobal" type="submit" value="Connexion"></center></td></tr>
    ************************</table>
    ********************</form>
    ****************</div>
    ************</center>
    ********</section>
    *
    ****</body>
    Voilà, donc si quelqu'un peut m'aider à mieux comprendre le MVC et m'aider à corriger mon problème ce serait cool

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Dans index.php, vous faites ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    session_start();
    $_SESSION['estAdmin'] = 0;
    Et dans la vue vous faites ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $_SESSION['estAdmin'] = 1;
    header("Location: Index.php?admin&action=accueil");
    Comme je n'ai pas vu de traitement de action=accueil dans votre code, je suppose que vous avez donc une boucle infinie.

Discussions similaires

  1. Bonne pratique MVC & POO
    Par discmat dans le forum Langage
    Réponses: 3
    Dernier message: 14/03/2012, 17h38
  2. [POO] Centralisation MVC
    Par T0xF0x dans le forum Langage
    Réponses: 8
    Dernier message: 01/03/2007, 03h45
  3. [POO] MVC : Gestion des "pages"
    Par Dinan dans le forum Langage
    Réponses: 4
    Dernier message: 18/02/2007, 19h44
  4. [POO] MVC : Vue composée
    Par Neuromancien2 dans le forum Langage
    Réponses: 3
    Dernier message: 18/02/2007, 10h38
  5. [MVC]Modélisation POO avec BD
    Par fremsoi dans le forum MVC
    Réponses: 1
    Dernier message: 08/11/2005, 13h53

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