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

PHP & Base de données Discussion :

Redirection d'un visiteur sur une page selon un texte


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 62
    Points : 24
    Points
    24
    Par défaut Redirection d'un visiteur sur une page selon un texte
    J'aimerais faire une page R sur le quel je j'installe un champs appelé code par exemple. Selon le texte qu'il à écrit cela le renvoi vers une page P.

    Exemple : Le visiteur vas sur la page R il entre le code 12DA48D dans le champ nommé "code" puis il accède à la page P correspondant au code. Si il entre 8465ADA il accède à la page I. Et si il entre un code qui ne correspond à aucunes pages il n'accèdera qu'a la page lui indiquant que le code est faux.

    Je me casse la tête à savoir comment faire.

    Merci de votre aide, développez ma énormément dans mes projets.

    Cordialement Alexandre.

  2. #2
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Points : 2 501
    Points
    2 501
    Par défaut
    si tu veux parler de redirection, tu peux utiliser le header:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    header( 'Location: http://www.tonsite.com/page.html' ) ;

  3. #3
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 269
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 269
    Points : 8 568
    Points
    8 568
    Billets dans le blog
    17
    Par défaut
    R.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
    <?php
        if ( isset($_GET['code']) ) {
            // Correspondances code => page
            $codes = array('12DA48D' => 'P.php',
                           '8465ADA' => 'I.php') ;
            if ( isset($codes[$_GET['code']]) ) {
                header('Location: ' . $codes[$_GET['code']]) ;
                exit( ) ;
            }
        }
    ?>
    <form>
        <p>Code : <input type="text" name="code"></p>
        <input type="submit">
    </form>
    <?php if ( isset($_GET['code']) ) : ?>
        <p>Code saisi erroné !!</p>
    <?php endif ?>

  4. #4
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Points : 2 501
    Points
    2 501
    Par défaut
    Citation Envoyé par Séb. Voir le message
    R.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
    <?php
        if ( isset($_GET['code']) ) {
            // Correspondances code => page
            $codes = array('12DA48D' => 'P.php',
                           '8465ADA' => 'I.php') ;
            if ( isset($codes[$_GET['code']]) ) {
                header('Location: ' . $codes[$_GET['code']]) ;
                exit( ) ;
            }
        }
    ?>
    <form>
        <p>Code : <input type="text" name="code"></p>
        <input type="submit">
    </form>
    <?php if ( isset($_GET['code']) ) : ?>
        <p>Code saisi erroné !!</p>
    <?php endif ?>
    Je trouve qu'il serait plus pratique de conserver les codes et les pages correspondantes dans un fichier xml. Comme ça, on aura pas à chaque fois à modifier le code php pour ajouter de nouveaux codes.

  5. #5
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 269
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 269
    Points : 8 568
    Points
    8 568
    Billets dans le blog
    17
    Par défaut
    Tout est possible ;-) Perso je ferais les correspondances dans un fichier .ini, plus facilement éditable, ensuite parse_ini_file( ) http://fr.php.net/parse-ini-file

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 62
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par Séb. Voir le message
    R.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
    <?php
        if ( isset($_GET['code']) ) {
            // Correspondances code => page
            $codes = array('12DA48D' => 'P.php',
                           '8465ADA' => 'I.php') ;
            if ( isset($codes[$_GET['code']]) ) {
                header('Location: ' . $codes[$_GET['code']]) ;
                exit( ) ;
            }
        }
    ?>
    <form>
        <p>Code : <input type="text" name="code"></p>
        <input type="submit">
    </form>
    <?php if ( isset($_GET['code']) ) : ?>
        <p>Code saisi erroné !!</p>
    <?php endif ?>
    J'ai testé ton script, qui m'a l'air vraiment superbe d'ailleurs, mais quand je rentre le bon code (12DA48D) cela réactualise la page et a la place de formulaire c'est tout blanc, la redirection ne se fait pas.

    Pour Seb, je ne comprend pas trop le système du parse_ini_file, peut tu m'en dire plus.

    Cordialement Alexandre.

  7. #7
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 269
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 269
    Points : 8 568
    Points
    8 568
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par alex5512 Voir le message
    quand je rentre le bon code (12DA48D) cela réactualise la page et a la place de formulaire c'est tout blanc, la redirection ne se fait pas.
    Je viens de le tester et il fonctionne correctement. Pense à créer les pages P.php et I.php.

    je ne comprend pas trop le système du parse_ini_file, peut tu m'en dire plus.
    Plutôt que de stocker les correspondances dans un array( ) tu les places dans un fichier, exemple :

    codes.ini :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    12DA48D = "P.php"
    8465ADA = "I.php"
    Ensuite dans le script tu appelles parse_ini_file( ) qui va te recréer le array( ) $codes du script originel. Cela permet d'éviter de toucher au script PHP qd tu mets à jour tes codes.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 62
    Points : 24
    Points
    24
    Par défaut
    Si je comprend bien avec le système parse_ini_file je dois faire comme ç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
    <?php
        if ( isset($_GET['code']) ) {
            // Correspondances code => page
            $codes = parse_ini_file() ;
            if ( isset($codes[$_GET['code']]) ) {
                header('Location: ' . $codes[$_GET['code']]) ;
                exit( ) ;
            }
        }
    ?>
    <form>
        <p>Code : <input type="text" name="code"></p>
        <input type="submit">
    </form>
    <?php if ( isset($_GET['code']) ) : ?>
        <p>Code saisi erroné !!</p>
    <?php endif ?>
    Puis un fichier codes.ini qui contient

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    12DA48D = "P.php"
    8465ADA = "I.php"
    Merci

    EDIT : Je peux t'assurer que sa bug. Test le script sur ma page : http://s251236041.onlinehome.fr/pixeli/recuperer.php

    J'ai copier coller le script tel quel.

    Merci

  9. #9
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 269
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 269
    Points : 8 568
    Points
    8 568
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par alex5512 Voir le message
    Si je comprend bien avec le système parse_ini_file je dois faire comme ça ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
        if ( isset($_GET['code']) ) {
            // Correspondances code => page
            $codes = parse_ini_file() ;
    Sans oublier d'utiliser correctement la fonction parse_ini_file( )

    EDIT : Je peux t'assurer que sa bug. Test le script sur ma page : http://s251236041.onlinehome.fr/pixeli/recuperer.php

    J'ai copier coller le script tel quel.
    Le script est fonctionnel tel que présenté. Maintenant si tu l'incorpores sans modifs au milieu d'une page web il ne fonctionnera pas correctement à cause du header( ).
    La partie en PHP doit se trouver avant toute sortie HTML.

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 62
    Points : 24
    Points
    24
    Par défaut
    Bon le script marche.
    Mais maintenant quand je veux utiliser le parse_ini_file cela ne marche pas.

    Voici mon script avec le parse_ini_file :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ?php
        if ( isset($_GET['code']) ) {
            // Correspondances code => page
            $codes = parse_ini_file( ) ;
            if ( isset($codes[$_GET['code']]) ) {
                header('Location: ' . $codes[$_GET['code']]) ;
                exit( ) ;
            }
        }
    ?>
    Et mon fichier codes.ini :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    12DA48D = "P.php"
    8465ADA = "I.php"
    Quel est mon erreur ?

    Merci

  11. #11
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 269
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 269
    Points : 8 568
    Points
    8 568
    Billets dans le blog
    17
    Par défaut
    L'erreur est que dans ton script parse_ini_file( ) ne sait pas quel fichier ini parser.
    Une lecture de la doc s'impose : http://fr.php.net/parse-ini-file
    Bon courage,

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 62
    Points : 24
    Points
    24
    Par défaut
    Tout est nickel les gars.

    Merci beaucoup de votre aide.

    Je viens de me poser une question, j'ai réfléchie il n'y à même pas 2 secondes que le fichier est accessible même si on ne tape pas le code...

    Comment protéger le fichier ?
    Avec un session star ?

    Merci

  13. #13
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 269
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 269
    Points : 8 568
    Points
    8 568
    Billets dans le blog
    17
    Par défaut
    Oui par exemple. Tu peux valoriser une variable de session. Si elle n'est pas définie dans I.php & cie alors redirection vers l'accueil.
    Pense aussi à protéger codes.ini

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 62
    Points : 24
    Points
    24
    Par défaut
    Pourrais-je avoir un exemple de script de sessions par rapport au code ?

    Car on vas dire que je suis pas très expérimenter dans ce domaine là.

    Merci

  15. #15
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?php
    //démarrage de la session (indispensable pour accéder à $_SESSION)
    session_start();
    // a t on déjà identifié le user ?
    //si non on renvoie vers l'accueil
    if (!isset($_SESSION['deja_identifie'])) {
        header('Location: index.php') ;
        exit();
    }
    ?>
     
    //suite du code
    ERE

    ERE

  16. #16
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 62
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par emmanuel.remy Voir le message
    Par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?php
    //démarrage de la session (indispensable pour accéder à $_SESSION)
    session_start();
    // a t on déjà identifié le user ?
    //si non on renvoie vers l'accueil
    if (!isset($_SESSION['deja_identifie'])) {
        header('Location: index.php') ;
        exit();
    }
    ?>
     
    //suite du code
    Je suppose que c'est à placer dans mes pages P.php et I.php.

    Mais dans recuperer.php je dois placer le session_star de cette façon dans ce code ? :

    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
    <?php
        if ( isset($_GET['code']) ) {
            // Correspondances code => page
            $codes = parse_ini_file("codes.ini"), session_start();
            if ( isset($codes[$_GET['code']]) ) {
                header('Location: ' . $codes[$_GET['code']]) ;
                exit( ) ;
            }
        }
    ?>
    <form>
        <p>Code : <input type="text" name="code"></p>
        <input type="submit">
    </form>
    <?php if ( isset($_GET['code']) ) : ?>
        <p>Code saisi erroné !!</p>
    <?php endif ?>

  17. #17
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Dans chaque fichier:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
        //démarre la gestion de la session
        session_start();
        if ( isset($_GET['code']) ) {
            // Correspondances code => page
            $codes = parse_ini_file("codes.ini");
            if ( isset($codes[$_GET['code']]) ) {
                header('Location: ' . $codes[$_GET['code']])

    Et dans le fichier qui gère l'authentification ou autre tu inscris à un moment:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['deja_identifie']=true;
    et si à un moment tu veux reconsidérer l'utilisateur comme non identifié:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    unset($_SESSION['deja_identifie']);
    ERE

Discussions similaires

  1. Redirection d'un domaine sur une page d'un autre domaine
    Par gruick_rob dans le forum Apache
    Réponses: 1
    Dernier message: 26/10/2011, 20h03
  2. redirection sur une page avec envoi de données en POST
    Par guigui69 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 13/08/2010, 14h18
  3. Réponses: 2
    Dernier message: 07/04/2008, 15h09
  4. Réponses: 1
    Dernier message: 20/01/2007, 15h06
  5. redirection sur une page
    Par fulgaro dans le forum Langage
    Réponses: 3
    Dernier message: 09/01/2006, 15h27

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