Probleme perl Net::FTPSSL
Fermé
drogba7213
Messages postés
1524
Date d'inscription
mardi 14 août 2007
Statut
Membre
Dernière intervention
3 avril 2010
-
30 mai 2009 à 15:26
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 30 mai 2009 à 22:41
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 30 mai 2009 à 22:41
A voir également:
- Probleme perl Net::FTPSSL
- Paint net - Télécharger - Dessin & Illustration
- Net framework 4.0 - Télécharger - Divers Utilitaires
- Microsoft .net framework 2.0 - Télécharger - Divers Utilitaires
- Zw-net - Télécharger - Mail
- Soldeur du net - Forum Consommation & Internet
3 réponses
drogba7213
Messages postés
1524
Date d'inscription
mardi 14 août 2007
Statut
Membre
Dernière intervention
3 avril 2010
21
30 mai 2009 à 20:10
30 mai 2009 à 20:10
up svp
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
30 mai 2009 à 22:33
30 mai 2009 à 22:33
Salut,
mais tu ma demandé de bien situé le problème voila qu'y est fait je pense
Je ne sais pas à qui tu t'adresses mais je vais essayer de te répondre.
En fait c'est la lecture de ton fichier de configuration qui n'est pas bon.
J'ai extrait juste la partie en question pour te montrer les erreurs
Voici la partie en question (j'ai supprimer le reste de fichier pour te montrer le test que j'ai fait)
J'ai testé sur le fichier de config
Donc le code que j'ai testé
Et voici le résultat
En fait @config ne contiendra jamais tous les éléments.
A chaque lecture de $lignes le tableau est vidé.
Bref il contiendra toujours seulement deux éléments.
Pour ne pas dire que == est l'opérateur d'égalité numérique.
Pour les chaînes c'est eq
Mais ça n'a pas trop d'importance vu que ton tableau est mal rempli.
Bref, quand tu essaie la connexion, comme $user,$mdp, etc. ne contiennent rien, c'est normal que tu as erreur de connexion.
Le message suivant je vais te donner une version que tu dois adapter à ton code.
Si je peux me permettre, ton code est aussi mal écrit de point de vue visibilité.
N'oublie pas aussi que ton constructeur va renvoyé le résultat de la dernière expression.
Donc tu dois plutôt faire un return de la liste contenant tes paramètres de connexion.
mais tu ma demandé de bien situé le problème voila qu'y est fait je pense
Je ne sais pas à qui tu t'adresses mais je vais essayer de te répondre.
En fait c'est la lecture de ton fichier de configuration qui n'est pas bon.
J'ai extrait juste la partie en question pour te montrer les erreurs
Voici la partie en question (j'ai supprimer le reste de fichier pour te montrer le test que j'ai fait)
J'ai testé sur le fichier de config
lami20j@debian:~/trash/ccm_perl/drogba7213$ cat Configuration user=lami20j mdp=a server=10.0.0.3 port=21
Donc le code que j'ai testé
lami20j@debian:~/trash/ccm_perl/drogba7213$ cat Connexion2.pm #!/usr/bin/perl use strict; use warnings; # $file correspond au fichier de configuration du FTP my $file = '/home/lami20j/trash/ccm_perl/drogba7213/Configuration'; my $user; my $mdp; my $server; my $port; # Constructeur my @parametre = &Recherche_parametre(); $user = $parametre[0]; $mdp = $parametre[1]; $server = $parametre[2]; $port = $parametre[3]; print "@parametre\n"; # Fonction qui parcours le fichier de configuration et qui les retournent sub Recherche_parametre() { #Déclaration des variables my $lignes; my @config; my @parametre; #Ouverture du fichier de configuration open CONF, "$file" or die "E/S : $!\n"; # $lignes prend la valeur du fichier de configuration while(defined($lignes = <CONF>)) { #Séparation des attributs de $lignes @config = split("=", $lignes); if($config[0] == 'user') { # Si la première valeur du tableau config est égale #à user alors $user prend la valeur de la deuxième valeur du tableau $user=$config[1]; } if($config[2] == 'mdp') { $mdp=$config[3]; } if($config[4] == 'server') { $server=$config[5]; } if($config[6] == 'port') { $port=$config[7]; } #Construction du tableau parametre avec les valeurs nécessaires à la connection du FTP @parametre=($user,$mdp,$server,$port); } #Fermeture du fichier close(CONF); #On retourne le tableau return @parametre; } __END__
Et voici le résultat
lami20j@debian:~/trash/ccm_perl/drogba7213$ perl Connexion2.pm Argument "user" isn't numeric in numeric eq (==) at Connexion2.pm line 38, <CONF> line 1. Argument "user" isn't numeric in numeric eq (==) at Connexion2.pm line 38, <CONF> line 1. Argument "mdp" isn't numeric in numeric eq (==) at Connexion2.pm line 44, <CONF> line 1. Use of uninitialized value $config[2] in numeric eq (==) at Connexion2.pm line 44, <CONF> line 1. Argument "server" isn't numeric in numeric eq (==) at Connexion2.pm line 48, <CONF> line 1. Use of uninitialized value $config[4] in numeric eq (==) at Connexion2.pm line 48, <CONF> line 1. Argument "port" isn't numeric in numeric eq (==) at Connexion2.pm line 52, <CONF> line 1. Use of uninitialized value $config[6] in numeric eq (==) at Connexion2.pm line 52, <CONF> line 1. Argument "mdp" isn't numeric in numeric eq (==) at Connexion2.pm line 38, <CONF> line 2. Use of uninitialized value $config[2] in numeric eq (==) at Connexion2.pm line 44, <CONF> line 2. Use of uninitialized value $config[4] in numeric eq (==) at Connexion2.pm line 48, <CONF> line 2. Use of uninitialized value $config[6] in numeric eq (==) at Connexion2.pm line 52, <CONF> line 2. Argument "server" isn't numeric in numeric eq (==) at Connexion2.pm line 38, <CONF> line 3. Use of uninitialized value $config[2] in numeric eq (==) at Connexion2.pm line 44, <CONF> line 3. Use of uninitialized value $config[4] in numeric eq (==) at Connexion2.pm line 48, <CONF> line 3. Use of uninitialized value $config[6] in numeric eq (==) at Connexion2.pm line 52, <CONF> line 3. Argument "port" isn't numeric in numeric eq (==) at Connexion2.pm line 38, <CONF> line 4. Use of uninitialized value $config[2] in numeric eq (==) at Connexion2.pm line 44, <CONF> line 4. Use of uninitialized value $config[4] in numeric eq (==) at Connexion2.pm line 48, <CONF> line 4. Use of uninitialized value $config[6] in numeric eq (==) at Connexion2.pm line 52, <CONF> line 4. Use of uninitialized value $parametre[1] in join or string at Connexion2.pm line 20. Use of uninitialized value $parametre[2] in join or string at Connexion2.pm line 20. Use of uninitialized value $parametre[3] in join or string at Connexion2.pm line 20. 21
En fait @config ne contiendra jamais tous les éléments.
A chaque lecture de $lignes le tableau est vidé.
Bref il contiendra toujours seulement deux éléments.
Pour ne pas dire que == est l'opérateur d'égalité numérique.
Pour les chaînes c'est eq
Mais ça n'a pas trop d'importance vu que ton tableau est mal rempli.
Bref, quand tu essaie la connexion, comme $user,$mdp, etc. ne contiennent rien, c'est normal que tu as erreur de connexion.
Le message suivant je vais te donner une version que tu dois adapter à ton code.
Si je peux me permettre, ton code est aussi mal écrit de point de vue visibilité.
N'oublie pas aussi que ton constructeur va renvoyé le résultat de la dernière expression.
Donc tu dois plutôt faire un return de la liste contenant tes paramètres de connexion.
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
30 mai 2009 à 22:41
30 mai 2009 à 22:41
Re,
Voici un test qui rempli les paramètres des connexion depuis le fichier de configuration
Le fichier de configuration
Voici un test qui rempli les paramètres des connexion depuis le fichier de configuration
Le fichier de configuration
lami20j@debian:~/trash/ccm_perl/drogba7213$ cat Configuration user=lami20j mdp=a server=10.0.0.3 port=21Le script
lami20j@debian:~/trash/ccm_perl/drogba7213$ cat Connexion3.pm #!/usr/bin/perl use strict;use warnings; # $file correspond au fichier de configuration du FTP my $file = '/home/lami20j/trash/ccm_perl/drogba7213/Configuration'; my ($user,$mdp,$server,$port); # Juste pour te montrer ce que contiendroit tes paramètres # Vu que tu utilises les variables, sub new() n'as pas de sens selon moi ($user,$mdp,$server,$port) = &Recherche_parametre; print "$user\n$mdp\n$server\n$port\n"; # Fonction qui parcours le fichier de configuration et qui les retournent sub Recherche_parametre() { #Déclaration des variables my $lignes; my @parametre; #Ouverture du fichier de configuration open CONF, "$file" or die "E/S : $!\n"; # $lignes prend la valeur du fichier de configuration while(defined($lignes = <CONF>)){ chomp ($lignes); #Séparation des attributs de $lignes push @parametre,(split /=/, $lignes)[1]; } #Fermeture du fichier close(CONF); #On retourne le tableau return @parametre; } __END__L'exécution et le résultat
lami20j@debian:~/trash/ccm_perl/drogba7213$ perl Connexion3.pm lami20j a 10.0.0.3 21Il te reste qu'à modifier ton fichier Connexion.pm avec la fonction qui va bien.