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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2008
    Messages : 7
    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 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    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
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2008
    Messages : 7
    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 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    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
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2008
    Messages : 7
    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 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    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.

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