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 :

Probleme d'orientation avec un switch


Sujet :

Langage PHP

Vue hybride

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

    Informations forums :
    Inscription : Octobre 2007
    Messages : 302
    Par défaut Probleme d'orientation avec un switch
    Bonjour,

    Je suis en stage dans une société et je dois developper un site. Mon maitre de stage m'a donné cette structure :

    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
    <?php
    // appel du fichier configuration
    include "lib/config.php"
     
    // appel des fonctions transversales
    include "lib/fonctions-generales.php"
     
     
    // connexion à la base de données
     
     
    // Aiguillage
     
    switch($action){
     
        default:
            include "lib/lib-home-page.php"
            home_page();
            break;
     
        case "inscription":
            include "lib/lib-inscription.php"
            inscription();
            break;
     
    // Fonctions login
     
        case "login":
            include "lib/lib-login.php"
            login();
            break;
     
        case "mot-passe-oublie":
            include "lib/lib-login.php"
            mot_passe_oublie($email);
            break;
     
    }
    ?>
    Je me lance dans la partie lib-login.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
    <?php
    // ------------------------------------------------------------
    function login(){
    // ------------------------------------------------------------
     
     
    /*
    Explication sur le rôle de la fonction
    
    */
     
     
    // interrogation base de données
    // requêtes SQL
     
    // affichage
    $template_login = file_get_contents(_REPERTOIRE_TEMPLATE_."/login.html");
     
     
    // Affichage de la page
    $page = file_get_contents(_REPERTOIRE_TEMPLATE_."/page_standart.htm");
    $page = str_replace("[CONTENT]",$template_login,$page);
     
     
    echo affichage_page($page);
     
    s}
     
    ?>
    Cependant je ne vois pas comment faire dans le switch pour définir : $action

    Il m'a dit d'utiliser cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <form method="post" action="index.php">
    <input type="hiddden" name="action" value="login">
     
    </form>
    ou cela : pour l'appel des pages

    Je ne vois pas ou mettre cela.

    Merci d'avance

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Ton souci est de savoir comment récupérer des données soit en formulaire soit en URL.

    Je te conseille la lecture de ce tuto, qui va t'apporter des éclaircissement quand à la façon de faire.

    Si tu ne comprend toujours pas reviens nous voir !

  3. #3
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par kev484 Voir le message
    Bonjour,

    Je suis en stage dans une société et je dois developper un site. Mon maitre de stage m'a donné cette structure :
    ..............................
    Cependant je ne vois pas comment faire dans le switch pour définir : $action

    Il m'a dit d'utiliser cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <form method="post" action="index.php">
    <input type="hiddden" name="action" value="login">
    </form>
    Je ne vois pas ou mettre cela.

    Merci d'avance
    Oui en fait le PHP est appelé selon le cas par un ou plusieurs PHP
    le ou les PHP qui appellent index.php doivent passer un paramétre permettant au switch de faire son choix.

    Or voici les cas possibles
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    switch($action){
        default:
        case "inscription":
        case "login":
        case "mot-passe-oublie":
    }
    ?>

    donc selon le cas tu mets dans le PHP qui va appeler index.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <form method="post" action="index.php">
    <input type="hiddden" name="action" value="XXXXXXXXXX">
    </form>
     
    /*===== selon le cas XXXXXXXXXX par exemple mot-passe-oublie ==*/

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 302
    Par défaut
    En fait voila le truc que je souhaite faire :

    Le cleint arrive sur la page index.php. Il y a un lien connexion. Et ce lien connexion nous emmene sur la page index.php?action=login.html. Mais je ne vois pas comment mettre le lien dans la page index.

    Merci

  5. #5
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par kev484 Voir le message
    En fait voila le truc que je souhaite faire :

    Le cleint arrive sur la page index.php. Il y a un lien connexion. Et ce lien connexion nous emmene sur la page index.php?action=login.html. Mais je ne vois pas comment mettre le lien dans la page index.


    Merci
    alors tu sais que le PHP s'execute une seule fois , sur le serveur et génére la page HTML du visiteur.

    donc ta seule solution est de faire un index.php qui ne généres pas la même page en fonction de ce que fait le visiteur !! une forme de barage comme cela
    DEUC CAS
    ou il demande quoi faire
    ou il sait quoi faire


    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
    61
    62
    63
    64
    65
    66
    67
    68
    69
     
    <?PHP
    if (isset($_POST["action"])) $action=trim($_POST["action"]);
        else $action="";
     
    if ( $action=="") 
    {
    ?>
    <form method="post" action="index.php">
    <input type="hiddden" name="action" value="login">
    <input type='submit' name='submit' value='Choix Login' />
    </form><br />
     
    <form method="post" action="index.php">
    <input type="hiddden" name="action" value="inscription">
    <input type='submit' name='submit' value='Choix inscription' />
    </form><br />
     
    <form method="post" action="index.php">
    <input type="hiddden" name="action" value="mot-passe-oublie">
    <input type='submit' name='submit' value='Choix mot-passe-oublie' />
    </form><br />
     
     
     
    <?PHP
       } else {
     
    // appel du fichier configuration
    include "lib/config.php"
     
    // appel des fonctions transversales
    include "lib/fonctions-generales.php"
     
     
    // connexion à la base de données
     
     
    // Aiguillage
     
    switch($action) 
      {
     
        default:
            include "lib/lib-home-page.php"
            home_page();
            break;
     
        case "inscription":
            include "lib/lib-inscription.php"
            inscription();
            break;
     
       // Fonctions login
     
        case "login":
            include "lib/lib-login.php"
            login();
            break;
     
        case "mot-passe-oublie":
            include "lib/lib-login.php"
            mot_passe_oublie($email);
            break;
     
        }
     
    }
    ?>

  6. #6
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Je pense que la première chose à lui apprendre, c'est comment récupérer la variable, lui permettant de faire son switch.


  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 302
    Par défaut
    Merci,

    Voila ce que j'ai fais :
    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
    <?php
    // appel du fichier configuration
    include "lib/config.php";
     
    // appel des fonctions transversales
    include "lib/fonctions-generales.php";
     
     
    // connexion à la base de données
     
     
    // Aiguillage
     
    ?>
     
    <form method="post" action="index.php">
    <input type="hidden" name="action" value="login">
    <a href="index.php?action=login"> Connexion </a>
    </form><br />
     
    <form method="post" action="index.php">
    <input type="hidden" name="action" value="inscription">
    </form><br />
     
    <form method="post" action="index.php">
    <input type="hidden" name="action" value="mot-passe-oublie">
    </form><br />
     
    <?php
     
     
    $action = $_GET['action']; 
     
    switch($action){
     
        default:
            include "lib/lib-home-page.php";
            home_page();
            break;
     
        case "inscription":
            include "lib/lib-inscription.php";
            inscription();
            break;
     
    // Fonctions login
     
        case "login":
            include "lib/lib-login.php";
            login();
            break;
     
        case "mot-passe-oublie":
            include "lib/lib-login.php";
            mot_passe_oublie($email);
            break;
     
    }
    ?>
    Est-ce logique ?

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

Discussions similaires

  1. probleme d'orientation avec forms
    Par yous18 dans le forum Forms
    Réponses: 6
    Dernier message: 18/01/2011, 04h21
  2. [Tableaux] Probleme avec les switch
    Par grumly22 dans le forum Langage
    Réponses: 9
    Dernier message: 10/04/2006, 10h51
  3. Probleme avec mon switch
    Par Fredovsky dans le forum C
    Réponses: 6
    Dernier message: 23/03/2006, 16h47
  4. [Système] Probleme avec un switch case!
    Par Death83 dans le forum Langage
    Réponses: 7
    Dernier message: 29/01/2006, 16h28

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