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 :

Script CGI : Afficher le résultat dans Firefox


Sujet :

Web Perl

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2006
    Messages : 16
    Points : 16
    Points
    16
    Par défaut Script CGI : Afficher le résultat dans Firefox
    Bonjour,

    Voici le code de mon script :
    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
     
    #!/usr/bin/perl 
    use DBI;
    use CGI;
     
    $co = new CGI;
    print $co->header;
     
    $database="***";
    $hostname="****";
    $login = "***";
    $mdp = "***";
     
    $dsn = "DBI:mysql:database=$database;host=$hostname";
    $dbh = DBI->connect($dsn, $login, $mdp) or die "Echec connexion";
     
    $requete = "SELECT * FROM **** ";
    $sth = $dbh->prepare($requete);
     
    $sth->execute();
     
    while(my @row = $sth->fetchrow_array){
    print $row['0'];
    }
     
    $sth -> finish;
    $dbh -> disconnect
    Le code fonctionne parfaitement en executant cette commande en shell :
    "perl -w sql.cgi"

    Lorsque je le test sur Firefox 3.0, Rien ne s'affiche Pourquoi ?

    Merci

  2. #2
    Expert éminent
    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
    Points : 8 586
    Points
    8 586
    Par défaut
    Citation Envoyé par fredob Voir le message
    Le code fonctionne parfaitement en executant cette commande en shell :
    "perl -w sql.cgi"

    Lorsque je le test sur Firefox 3.0, Rien ne s'affiche Pourquoi ?
    Que veux-tu dire par le "tester sous Firefox" ? Tu as bien un serveur web, n'est-ce pas ?

    --
    Jedaï

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2006
    Messages : 16
    Points : 16
    Points
    16
    Par défaut
    Oui j'ai un serveur Web sous debian
    => Apache 2
    => Mysql Server 5
    => PHP 5

    Je veux dire par "je test sur firefox" que j'appelle le script en tapant l'url http://192.168.2.166/cgi-bin/sql.cgi



    Les scripts en php fonctionnent parfaitement bien et les connexions mysql en php fonctionnent bien également.

    Les droits sur le fichier CGI sont : 777

  4. #4
    Expert éminent
    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
    Points : 8 586
    Points
    8 586
    Par défaut
    Rien du tout ne s'affiche ? Même pas une erreur ?
    Que disent les logs d'Apache ?

    Quelques petites erreurs à corriger également :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    print $co->start_html('Page de test');
     
    while(my @row = $sth->fetchrow_array){
       print $co->p($row[0]);
    }
     
    print $co->end_html;
    A moins que tu ne veuilles renvoyer du texte brut, mais dans ce cas il faut le dire dans le header.

    --
    Jedaï

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2006
    Messages : 16
    Points : 16
    Points
    16
    Par défaut
    Comment on l'indique dans le header ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print "content-type : text/html\n\n";
    Aucune erreur dans les logs.

    1 fois sur 3 ceci s'affiche :

    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
    <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
    <html><head>
    <title>500 Internal Server Error</title>
    </head><body>
    <h1>Internal Server Error</h1>
    <p>The server encountered an internal error or
    misconfiguration and was unable to complete
    your request.</p>
    <p>Please contact the server administrator,
     webmaster@localhost and inform them of the time the error occurred,
    and anything you might have done that may have
    caused the error.</p>
    <p>More information about this error may be available
    in the server error log.</p>
    <hr>
    <address>Apache/2.2.3 (Debian) PHP/5.2.0-8+etch11 Server at 192.168.2.166 Port 80</address>
    </body></html>
    Il faut indiquer quelque chose si on utilise "start_html" ?

  6. #6
    Expert éminent
    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
    Points : 8 586
    Points
    8 586
    Par défaut
    Il serait souhaitable que tu lises un peu la documentation du module CGI...
    Par ailleurs, tu ne dois pas regarder les bons logs, ou tu ne m'as pas montré exactement le script que tu utilises.

    --
    Jedaï

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2006
    Messages : 16
    Points : 16
    Points
    16
    Par défaut
    Le scrit est telquel celui que j'utilise.

    Je vais lire un peut et je vous dirais quoi.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2006
    Messages : 16
    Points : 16
    Points
    16
    Par défaut
    Voilà, j'ai enfin trouver une solution.
    Tout fonctionne bien.

    J'ai tout simplement remplacé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    while(my @row = $sth->fetchrow_array){
    print $row['0'];
    }
    par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    print "Content-type: text/html\n\n";
    print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">', "\n";
    print "<html><head><title>Répertoires de modules permis</title>\n";
    print "</head><body>\n";
     
    while(my @row = $sth->fetchrow_array){
       print $row[0]."<br>";
    }
     
    print "</body></html>\n";
    Maintenant tout s'affiche dans Firefox, IE, ...

    Merci pour l'aide

  9. #9
    Expert éminent
    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
    Points : 8 586
    Points
    8 586
    Par défaut
    Ca m'étonnerait que ça marche si bien si tu as laissé la ligne
    Parce que ce que tu as écrit se résume à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    print $co->header,
       $co->start_html('Répertoires de modules permis');
     
    while(my @row = $sth->fetchrow_array){
       print $row[0]."<br>";
    }
     
    print $co->end_html;
    Je te conseille plutôt d'utiliser ce code (et n'oublie pas qu'il ne faut écrire qu'un seul header par script), il est plus court et plus facile à étendre.

    --
    Jedaï

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 10/04/2014, 17h06
  2. Afficher le résultat dans la même page
    Par benbax dans le forum Langage
    Réponses: 2
    Dernier message: 15/11/2007, 16h00
  3. [VBA-E] Fonction rechercher et afficher le résultat dans l'UF
    Par Viper7 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 25/08/2006, 11h17
  4. Script CGI(impossible d'ecrire dans un fichier)
    Par matt8-5 dans le forum Web
    Réponses: 3
    Dernier message: 16/06/2006, 10h47

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