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.
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/</</g;
$valeur =~ s/>/>/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.
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 :
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.
PS : Désolé Hibou, j'avais oublié de te remercier pour l'aide que tu m'a apporté pour mon problème de caractères spéciaux. Donc merci Hibou