Bonjour c'est encore moi
A l'aide d'un script en php, je souhaite uploader un fichier texte, sur lequel je souhaite appliquer un script Perl avant de mettre le fichier sur un serveur.

Voila le code que j'utilise pour uploader mon fichier ^^ :
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
<html>
 
  <body>
    <form name="exportcarnet" action="thunderbird_to_ldif.pl" method="get" enctype="multipart/form-data">
 
		<tr>
        <td>
			<table border="0" cellpadding="0" cellspacing="7">			
			<tr>
                <td nowrap>
                  <font face="Arial,Helvetica">
                    <b>Chemin du fichier&nbsp;:</b>
                  </font>
                </td>
				<td><input type="file" name="fichier_ldif"></td>
            </tr>
 
                <td colspan="2" align="center">
				<input type="submit" value="Envoyer">
				<input type="reset" value="Annuler">
                </td>
            </tr>
            </table>
        </form>
		</td>
 
	</body>
</html>
je pensais que c'etait possible d'executer le script Perl sur le fichier en mettant le nom du fichier Perl dans action="". Malheureusement, ca m'affiche juste le code du fichier Perl

Au cas ou, je met le code Perl que j'utilise :
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
use MIME::Base64;
use warnings;
 
# Initialisation du programme
if(not defined $sn_exists){
  $sn_exists = 0;
  $cn_exists = 0;
  # Chemin de la base LDAP ou seront stockés les contacts
  $basedn=",ou=plopme,ou=carnets,dc=plopplop,dc=fr";
  $unknown_index = 1;
}
 
	if($_ =~ /^sn:/){
		$sn_exists = 1;
	}
 
	if($_ =~ /^cn:/){
		$cn_exists = 1;
	}
 
	if($_ =~ /^$/){
		if($sn_exists == 0){
			print "sn: not given\n";
		}
 
		# Si l'attribut "cn" n'existe pas, on doit en créer un
		# sinon LDAP va compléter le champ avec LDAP_NAMING_VIOLATION
 
	if($cn_exists == 0){
		print "cn: " . $cn . "\n";
	}
 
	$sn_exists = 0;
	$cn_exists = 0;
	}
 
	# On décode les lignes encodée en BASE64 pour notre substitution
	if($_ =~ /^(\w+):: (.*)/){
		$_ = sprintf("%s: %s\n", $1, decode_base64($2));
	}
 
# On doit vérifier l'attribut "cn" de la ligne "dn" car certains contacts
# n'ont pas d'attribut "mail=" définit, on doit donc ajouter notre champ
# à la fin de la ligne
if($_ =~ /^(dn:+\s*)/){
  $prefix = $1;
  $cn = $_;
 
  # On enlève le retour à la ligne
  chop $cn;
 
  # Extraction du champ cn de la ligne dn
  $cn =~ s/^dn:+\s*cn=([^=]+)(,\s*mail=.*)??$/$1/;
 
  # Si la ligne cn n'est pas renseignée, elle doit commencer par "dn:"
  # on doit donc vérifier cela, et donner un nom unique pour cette entrée
 
  if($cn =~ /^dn:/){
	$cn = "NoName " . $unknown_index++;
  }
 
  # On effectue une vérification sur le champ cn (pas de virgules)
  $cn =~ s/,/ /g;
 
  # On créer un nouveau champ "dn"
  $_ = $prefix . "cn=" . $cn . $basedn . "\n";
}
 
	if($_ =~ /^(cn:+\s*)/){
		$_ = $1 . $cn . "\n";
	}
 
# Suppression ou modification des champs inutiles, et non reconnu par Iplanet Directory Server
s/^homeStreet:/mozillaHomeUrl:/;
s/^modifytimestamp.*\n//;
s/^xmozillausehtmlmail.*\n//;
s/^nsAIMid.*\n//;
 
# Modification des champs Objectclass et ajout du champ groupeunix (necessaire pour les ACL)
s/^objectclass: mozillaAbPersonObsolete.*\n//;
s/^objectclass: mozillaAbPersonAlpha.*\n//;
s/^objectclass: organizationalPerson.*\n//;
s/^objectclass: mozillaOrgPerson*\n//;
s/^objectclass: inetOrgPerson.*/groupeunix: ditiric/;
s/^objectclass: person.*/objectclass: extensibleObject/;
Ma question est la suivante ^^ :
- comment faire pour appliquer le script sur le fichier que j'upload ?

Merci