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

SGBD Perl Discussion :

HTML-PERL-MySQL Problème de connexion


Sujet :

SGBD Perl

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2008
    Messages : 7
    Points : 2
    Points
    2
    Par défaut HTML-PERL-MySQL Problème de connexion
    Salut, tout le monde
    alors voila j'ai comme qui dirait un petit problème.
    Pour faire bref : J'ai une page internet internet qui contient un formulaire qui envoie les infos saisies à un script Perl.

    HTML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <form action="http://10.67.92.110:8080/xwiki/cgi-bin/script.pl" method="get" id="newdoc">
     <input type="hidden" name="parent" value="${doc.fullName}" />
     <input type="hidden" name="template" value="XWiki.DefinitionClassTemplate" />
     <input type="hidden" name="webname" value="Lexique" size="8" />
     Titre : <input type="text" name="name" value="Nom à définir (sans caractère spéciaux ni espace)" size="50" />
     <input type="button" value="Ajouter" onclick='if (updateName(this.form.name)) {this.form.action="../../inline/" + this.form.webname.value + "/" + this.form.name.value; this.form.submit(); }'>
     </form>

    Script Perl :
    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
    use warnings;
    use strict;
    use CGI::Carp qw (fatalsToBrowser);
    use Encode::Encoder qw(encoder);
     
    	open OUT,"> list_mots.csv" or die "Le fichier ne peut être édité !\n";
    	my $donnees = $ENV{'QUERY_STRING'};
    	my @champs_formulaire = split(/&/, $donnees);
    	my ($champ, $nom, $valeur);
    	my %formulaire;
    	foreach $champ (@champs_formulaire) {
    		(my $nom, my $valeur) = split(/=/, $champ);
    		$valeur =~ tr/+/ /;
    		$valeur =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
    		$valeur =~ s/</&lt;/g;
    		$valeur =~ s/>/&gt;/g;
    		$formulaire{$nom} = $valeur;
    	}
    	if($formulaire{name} =~ /^[a-z](.*)/){
    		my $var_aux = substr($formulaire{name},0,1);
    		$var_aux =~ tr/a-z/A-Z/;
    		$formulaire{name} = $var_aux.$1;
    	}
    	print OUT $formulaire{name};
    	do "megascript.pl";
    	close OUT;
    	my $name = Encode::encode("utf8", $formulaire{name});
     
    print "Content-type: text/html\n\n";
    print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">', "\n";
    print "<html><head><title>Redirection</title>\n";
    print "<meta http-equiv=\"refresh\" content=\"0; URL=http://localhost:8080/xwiki/bin/inline/Lexique/$name?parent=$formulaire{parent}&template=$formulaire{template}&webname=$formulaire{webname}&name=$name\"\n";
    print "</head>\n";
    print "</body></html>\n";
    Le script appelé par ce dernier (megascript.pl) tente entre autre d'accéder une base de données MySQL et la problème ça marche pas =( alors que si je lance le megascript manuellement ça marche. J'ai fait quelque test et il se trouve que c'est la connexion à la base qui échoue.

    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
    use warnings;
    use strict;
    use Carp;
    use DBI;
    use CGI;
    use Encode::Encoder qw(encoder);
     
    sub imp_lex{
    	open OUT,"> lex_aux.csv" or die "Le fichier lex_aux.csv ne peut être édité !\n";
    	my $co = new CGI;
    	print $co->header;
     
    	my $database="wikidb";
    	my $hostname="localhost";
    	my $login = "wikiUser";
    	my $mdp = "****";
     
    	my $dsn = "DBI:mysqlPP:database=$database;host=$hostname;port=3308";
    	my $dbh = DBI->connect($dsn, $login, $mdp) or die "Echec connexion";
     
    	my $query = "SELECT XWD_CONTENT FROM xwikidoc x where XWD_FULLNAME = \"Lexique.WebHome\"";
    	my $sth = $dbh->prepare($query);
     
    	$sth ->execute();
    	while(my @data = $sth->fetchrow_array()){
    		print OUT $data[0];
    	}
    	$sth -> finish;
     
    }
    L'erreur est à la ligne 19 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my $dbh = DBI->connect($dsn, $login, $mdp) or die "Echec connexion";
    Je sais pas d'où ça peut venir si quelqu'un à une idée, je suis preneur.

  2. #2
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my $dbh = DBI->connect($dsn, $login, $mdp) or die "Echec connexion";
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my $dbh = DBI->connect("dbi:mysql:dbname=TA BASE;host=HOST;",$login , $mdp) or die "Echec connexion $!";
    Et quel est le message d'erreur?

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2008
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    J'ai mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my $dbh = DBI->connect("DBI:mysqlPP:database=wikidb;host=localhost;port=3308",$login , $mdp) or die "Echec connexion $!";
    Et il me met :
    Echec connexion at E:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\xwiki\WEB-INF\cgi\script.pl line 20.
    Ca fait pareil si je met pas le numéro de port.

  4. #4
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    et dbi:mysql:dbname au lieu de DBI:mysqlPP:database

    sinon rajoute ceci $DBI::errstr
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my $dbh = DBI->connect("DBI:mysqlPP:database=wikidb;host=localhost;port=3308",$login , $mdp) or die "Echec connexion $!\n $DBI::errstr\n";
    on en saura déjà plus

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2008
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    avec dbi:mysql:dbname
    ça donne ça
    install_driver(mysql) failed: Can't locate DBD/mysql.pm in @INC (@INC contains: E:/Perl/site/lib E:/Perl/lib .) at (eval 9) line 3.
    Perhaps the DBD::mysql perl module hasn't been fully installed,
    or perhaps the capitalisation of 'mysql' isn't right.
    Available drivers: DBM, ExampleP, File, Gofer, Proxy, SQLite, Sponge, mysqlPP.
    at E:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\xwiki\WEB-INF\cgi\script.pl line 20
    avec $DBI::errstr
    ca donne ça
    Echec connexion Couldn't connect to localhost:3308/tcp: IO::Socket::INET: Bad hostname 'localhost' at E:/Perl/site/lib/DBD/mysqlPP.pm line 109

  6. #6
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    Bon on avance.
    1- en dehors du module DBI, as tu installé un module driver tel DBD::mysql ? On dirait que non.
    2- quel est ton host car apparemment il n'aime pas localhost donc t'es peut etre pas en local.

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2008
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    1 - Je n'ai pas DBD::mysql d'installé mais j'ai DBD::mysqlPP.
    2 - Quand je tape hostname dans l'invite de commande il me sort capwiki. Mais quand je lance le script directement en invite de commande il y a pas de problème d'hostname. Le fait de le lancer d'une page internet il a pas l'air d'aimer. J'ai essayé de passer le hostname en capwiki mais ça marche pas non plus peut-être faut-il pas mettre juste capwiki.

    PS : je pars en week-end donc j'aurais pas accès au serveur avant mardi donc j'essaierais de répondre au question que tu pourrais me poser de chez moi mais je pourrais faire grand choses.

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2008
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Bon j'ai cherché mon hostname sur internet mais il me donne celui du server de l'agence ou je travaille.

    Par contre si je met 127.0.0.1 au lieu de localhost il me sort une autre erreur :

    Echec connexion
    Couldn't connect to 127.0.0.1:3308/tcp: IO::Socket::INET: Unknown error at E:/Perl/site/lib/DBD/mysqlPP.pm line 109
    unknown error j'adore...

Discussions similaires

  1. [POSTFIX][MYSQL] problème de connexion à mysql
    Par tsutone dans le forum Réseau
    Réponses: 1
    Dernier message: 04/04/2007, 16h50
  2. [C#][2.0][MySQL] Problème de connexion.
    Par just1980 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 18/02/2007, 14h17
  3. [MySQL] problème de connexion
    Par h'mida dans le forum JDBC
    Réponses: 8
    Dernier message: 20/10/2006, 11h06
  4. asp et mysql, problèmes de connexion
    Par boss_gama dans le forum ASP
    Réponses: 4
    Dernier message: 20/06/2006, 12h22
  5. [connexion Mysql] problème de connexion avec l'odbc
    Par DarkAngelus dans le forum Administration
    Réponses: 2
    Dernier message: 13/10/2005, 11h24

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