Salut, j'utilise la bibliotheque cgi-lib pour une de mes applications, je l'ai codée sous easyphp et en la passant sous linux, seerveur apache j'obtient :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
Error - Perl execution failed
 
Can't locate object method "BINMODE" via package "miniserv" at cgi-lib.pl line 67.
?? Mais qu'est ce que c'est que ca ???
voici le code utilise la librairie :

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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
 
 
#!/usr/bin/perl
#author : pierre olier
#version : 1.9
#desc : script de modification du fichier squid.conf en fonction des parametres : nom du pc, valeur a changer, valeur a modifie  
 
use CGI;
my $cgi = new CGI;
use CGI::Carp qw(fatalsToBrowser);
#on appelle la methode de modification
&update();
 
#on affiche une page qui permet le retour sur la page interface
print $cgi->header(),
      $cgi->start_html( -title=>'graphisme proxy', -style=>{src=>'style.css'});
print '<div \n id=lgd>';
print $cgi->h1('Salle informatique'),
      $cgi->p('La modification a bien &eacute;t&eacute; effectuee.'),
	  $cgi->a({-href => 'interface_pc_proxy.cgi'},'Retour &agrave; l\'interface de connection internet.');
print '<div>';
print $cgi->end_html();
 
 
#update
#modifie le fichier squid.conf
sub update
{
require "cgi-lib.pl";
#on creer un tableau
$champs= {};
#on affecte la valeur qui sont dans l entree standard dans le tableau
ReadParse($champs);
#on affecte ces valeurs a des variables plus facile a utiliser
$pc = $champs->{"pc"};
$perm = $champs->{"perm"};
$chang = $champs->{"chang"};
 
#J'ouvre mon fichier en lecture
open FILE, "< squid.conf" or die "$!\n";
#J'en crée et ouvre un 2ème pour l'écriture
open FILE_DEST, ">> squid.conf.new" or die "$!\n";
while(<FILE>){
   #Je détecte le PC que je veux modifier ainsi que le mot à changer
   if(/$pc\b/ and /$chang/){
      #Si je trouve, je fais ma modification et je l'écris sur le
      #2ème fichier
      s/$chang/$perm/g;
      print FILE_DEST;
   }
   else {
      #Sinon, je ne fais qu'écrire sur le 2ème fichier
      print FILE_DEST;
   }
}
close FILE and close FILE_DEST;
#Je détruis le premier fichier et je renomme le 2ème au nom du premier
unlink("squid.conf");
rename("squid.conf.new", "squid.conf");
unlink("squid.conf.new");
 
#################FINI !!!#################
}
1;