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

Web Perl Discussion :

Un script de redirection


Sujet :

Web Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté

    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2004
    Messages
    2 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 756
    Par défaut Un script de redirection
    Bonjour

    J'ai écris un petit script qui regroupe quelques liens de ma page d'accueil sur mon site perso. J'ai appelé ce fichier, redirect.cgi, voici son contenu:
    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
     
    #!/usr/bin/perl -w
     
    use strict;                                      # Checking all variables
    use CGI qw(:standard);                    # Loading CGI module
    use CGI::Carp qw(fatalsToBrowser);   # Loading CGI routine
                                                       # for writing to the HTTPD error log
     
    $CGI::POST_MAX = 1024 * 100;   # Max 100K posts
    $CGI::DISABLE_UPLOADS = 1;     # No upload
     
    # Creating a new CGI object
    my $cgi=new CGI;
     
    # Add URL parameter
    my $url = $cgi->param("page");
     
    # Checking parameters
    if ($cgi->param('page') eq 'openbsd') {
        print $cgi->redirect(-uri=>'http://www.openbsd.org');
        } elsif ($cgi->param('page') eq 'developpez') {
            print $cgi->redirect(-uri=>'http://www.developpez.com');
        } elsif ($cgi->param('page') eq 'oregnier') {
            print $cgi->redirect(-uri=>'http://oregnier.developpez.com');
        } elsif ($cgi->param('page') eq 'bsd') {
            print $cgi->redirect(-uri=>'http://bsd.developpez.com');
        } else {
            print $cgi->redirect(-uri=>'/');
        }
     
    # End script
    Je viens de le tester et à première vue, il fonctionne correctement mais je voudrais avoir vos avis et commentaires.

    Pour se rendre par exemple sur le site d'OpenBSD, l'adresse URL sera, http://monsite/cgi-bin/redirect.cgi?page=opensd

    Bien entendu, il est prévu d'utiliser la réécriture d'adresses

    Merci

  2. #2
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    On peut nettement le simplifier, d'autant que tu as des trucs bizarres (pourquoi déclarer $url pour ne jamais l'utiliser ?) :
    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
    #!/usr/bin/perl
    use strict; use warnings;
    use CGI;
    use CGI::Carp qw(fatalsToBrowser);
     
    $CGI::POST_MAX = 1024 * 100;   # Max 100K posts
    $CGI::DISABLE_UPLOADS = 1;     # No upload
     
    my %redirect_to = (
      openbsd => 'http://www.openbsd.org',
      developpez => 'http://www.developpez.com',
      oregnie => 'http://oregnier.developpez.com',
      bsd => 'http://bsd.developpez.com',
      default => '/',
    );
     
    # Creating a new CGI object
    my $cgi=new CGI;
     
    my $url = $cgi->param("page") || "default";
    print $cgi->redirect(-uri=> $redirect_to{$url});
     
    __END__
    Le principal avantage de ce style c'est qu'il est très facile d'étendre le nombre de sites redirigés, de les modifier, etc. C'est plus lisible aussi !

    --
    Jedaï

  3. #3
    Membre expérimenté

    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2004
    Messages
    2 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 756
    Par défaut
    Salut Jedai

    Le coup de la variable non utilisée

    Le script est nettement plus clair comme ça

    Merci

  4. #4
    Membre confirmé Avatar de blacksnake
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 64
    Par défaut
    Salut

    Je me permet de m'incruster ds le topic. J'ai essayé le script d'Olivier, il marche très bien ; par contre la version de Jedai ne marche pas. Une idée ?

    par ex http://descartes/cgi-bin/redirect.cgi?page=developpez renvoie une erreur 500.

    Merci

  5. #5
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    J'avais supprimé le "use CGI" en même temps que l'option "qw(:standard)" qui était en trop dans le script d'Olivier , du coup ça ne compilait plus... Réessaie, ça devrait marcher.

    --
    Jedaï

  6. #6
    Membre expérimenté

    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2004
    Messages
    2 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 756
    Par défaut
    Jedai , il me semble que tu as oublié un print à la dernière ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print $cgi->redirect(-uri=> $redirect_to{$url});

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

Discussions similaires

  1. Probleme script bash - redirection fichier..
    Par origan31 dans le forum Linux
    Réponses: 1
    Dernier message: 25/08/2007, 19h08
  2. Erreur dans le script de redirection
    Par Sam 069 dans le forum Langage
    Réponses: 6
    Dernier message: 29/10/2006, 19h08
  3. [Conception] Passage De Variable Avec Post Via Un Script Php + Redirection
    Par british_toons dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 26/09/2006, 16h57
  4. Un script de redirection
    Par Furius dans le forum Langage
    Réponses: 29
    Dernier message: 21/11/2005, 02h21
  5. Script shell - Redirection
    Par GLDavid dans le forum Linux
    Réponses: 3
    Dernier message: 17/11/2005, 08h56

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