Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]5653[/thread]

Bild uploaden: Wie lade ich ein Bild mit Perl hoch ? (Seite 2)

Leser: 1


<< |< 1 2 3 >| >> 30 Einträge, 3 Seiten
BrownWolf
 2003-08-25 01:51
#79419 #79419
User since
2003-08-15
308 Artikel
BenutzerIn
[default_avatar]
Was hab ich denn nun falsch gemacht *heul*
Code (perl): ()
1
2
3
sub _{s;;xrqIpiql\\{}p{pl{R>rl{N{}gjwpkssq]>rl{N;;;*{{}=*{_};;
&#36{{}={q{{{}}}=>[reverse+split+reverse+q;}{;]};&#36{{}->{q{{{}}}}->[@{{}];}
&#36{{}=reverse+_(q{{}}=>q{{}})^chr(30)x+length&_(q{{}}=>,q{{}})and+print;
[E|B]
 2003-08-25 01:55
#79420 #79420
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Poste mal mehr Code. Was steht z.B. in %form? Wie wird dieser erstellt? Am besten postest du den ganzen Code. Hast du im HTML <form> Tag auch den Enctype angepasst? (Standard ist text/plain, für Dateien multipart/mixed)
Gruß, Erik!

s))91\&\/\^z->sub{}\(\@new\)=>69\&\/\^z->sub{}\(\@new\)=>124\&\/\^z->sub{}\(\@new\)=>);
$_.=qq~66\&\/\^z->sub{}\(\@new\)=>93~;for(@_=split(/\&\/\^z->sub{}\(\@new\)=>/)){print chr;}

It's not a bug, it's a feature! - [CGI-World.de]
esskar
 2003-08-25 01:56
#79421 #79421
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
meine variante ist schneller und verbraucht weniger speicher!

btw. was machst du, wenn dein script anstatt so
eus.cgi?parameter=foo&parameter2=bar
so
eus.cgi?parameter=foo;parameter2=bar

aufgerufen wird?

diesen teil:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
if($uploadpassword eq ""){
    $split =~ s/<;!--P(.+)P-->;//gs;
}else{
    $split =~ s/<;!--P(.+)P-->;/$1/gs;
}
if($deletepassword eq ""){
    $split3 =~ s/<;!--DP(.+)DP-->;//gs;
}else{
    $split3 =~ s/<;!--DP(.+)DP-->;/$1/gs;
}
if($renamefile eq "1"){
    $split =~ s/<;!--N(.+)N-->;//gs;
}else{
    $split =~ s/<;!--N(.+)N-->;/$1/gs;
}
if($description eq "1"){
    $split =~ s/<;!--D(.+)D-->;//gs;
}else{
    $split =~ s/<;!--D(.+)D-->;/$1/gs;
}


könntest du so übersichtlicher machen

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
sub ReplaceInComment
{
   my ($data, $type, $left, $right) = @_;
   if($left eq $right){
      $data =~ s/<;!--$type(.+)$type-->;//gs;
   }else{
      $data =~ s/<;!--$type(.+)$type-->;/$1/gs;
   }
   return $data;    
}

$split  = ReplaceInComment($split, "P", $uploadpassword, "");
$split3 = ReplaceInComment($split3, "DP", $deletepassword, "");
$split  = ReplaceInComment($split3, "N", $renamefile, "1");
$split  = ReplaceInComment($split3, "D", $description, "1");
\n\n

<!--EDIT|esskar|1061762301-->
esskar
 2003-08-25 01:59
#79422 #79422
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
die seltsamen zeichen sind $1

und die <; bzw. >; musst du dir ohne ; vorstellen!
[E|B]
 2003-08-25 02:02
#79423 #79423
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Schön! ;o)
Ist eine gute Idee. Wenn ich aber jede solcher kleiner Abfragen in eine Funktion packen würde, wird das Script sehr schnell unübersichtlich. Wenn der Benutzer statt "&" ";" eingibt hat er Pech. *g* Steht ja auch nirgend, dass er das Script so aufrufen soll. In den Hilfedateien bzw. nach der Installation steht überall das "&". Das lässt den Benutzer (hoffentlich) vermuten, dass er statt ";" "&" zu verwenden hat.
Gruß, Erik!

s))91\&\/\^z->sub{}\(\@new\)=>69\&\/\^z->sub{}\(\@new\)=>124\&\/\^z->sub{}\(\@new\)=>);
$_.=qq~66\&\/\^z->sub{}\(\@new\)=>93~;for(@_=split(/\&\/\^z->sub{}\(\@new\)=>/)){print chr;}

It's not a bug, it's a feature! - [CGI-World.de]
BrownWolf
 2003-08-25 02:14
#79424 #79424
User since
2003-08-15
308 Artikel
BenutzerIn
[default_avatar]
Code (perl): (dl )
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
use CGI;   
my $cgi = CGI->new;
my %form = $cgi->Vars;

sub member_login {
my $username = unpack("H*",lc($form{nick}));
if($form{nick} eq "") {
&my_error("$language{field23}");
}
if($form{pass} eq "") {
&my_error("$language{field58}");
}
if(!-e "./$config{cards}/$username.dat") {
&my_error("$language{field30}");
}
open(DAT,"<./$config{cards}/$username.dat") || die $!;
my @read = <DAT>;
close(DAT);
chomp @read[0..$#read];
if(crypt($form{pass},'ya') ne $read[1]) {
&my_error("$language{field59}");
}
print<<"EOT";
<html>
<head>
<LINK type="text/css" rel="stylesheet" href="$config{html}/style.css">
</head>
<body>
<form action="$name" method="POST" ENCTYPE="multipart/form-data">
<input type="hidden" name="action" value="member_login">
<input type="hidden" name="nick" value="$read[0]">
<input type="hidden" name="pass" value="$form{pass}">
<table border=0 cellspacing=0 cellpadding=0 width="64%">
  <tr>
    <td width="100%" colspan="2" class="top"><small>ID Card ändern</small></td>
  </tr>
  <tr>
    <td width="44%"><small>$language{field32}:</small></td>
    <td width="56%"><small>$read[0]</small></td>
  </tr>
  <tr>
    <td width="44%"><small>$language{field55}:</small></td>
    <td width="56%"><small><input type="password" name="pass" value="$form{pass}" size=50></small></td>
  </tr>
  <tr>
    <td width="44%"><small>$language{field60}:</small></td>
    <td width="56%"><small><input type="password" name="pass2" value="$form{pass}" size=50></small></td>
  </tr>
  <tr>
    <td width="44%"><small>$language{field35}:</small></td>
    <td width="56%"><small><input type="text" name="vorname" size=50 value="$read[2]"></small></td>
  </tr>
  <tr>
    <td width="44%"><small>$language{field36}:</small></td>
    <td width="56%"><small><input type="text" name="nachname" size=50 value="$read[3]"></small></td>
  </tr>
  <tr>
    <td width="44%"><small>$language{field37}:</small></td>
  <td><select size="1" name="gender">
  <option value="male">$language{field10}</option>
  <option value="female" selected>$language{field11}</option>
  </select></td></td>
  </tr>
  <tr>
    <td width="44%"><small>$language{field38}:</small></td>
    <td width="56%"><small><input type="text" name="birth" size=50 value="$read[5]"></small></td>
  </tr>
  <tr>
    <td width="44%"><small>$language{field33}:</small></td>
    <td width="56%"><small><input type="text" name="mail" size=50 value="$read[6]"></small></td>
  </tr>
  <tr>
    <td width="44%"><small>$language{field41}:</small></td>
    <td width="56%"><small><input type="text" name="hobbies" size=50 value="$read[7]"></small></td>
  </tr>
  <tr>
    <td width="44%"><small>$language{field39}:</small></td>
   <td width="55%">
   <select size="1" name="sternzeichen">
   <option value="$language{field15a}">$language{field15a}</option>
   <option value="$language{field15b}">$language{field15b}</option>
   <option value="$language{field15c}">$language{field15c}</option>
   <option value="$language{field15d}">$language{field15d}</option>
   <option value="$language{field15e}">$language{field15e}</option>
   <option value="$language{field15f}">$language{field15f}</option>
   <option value="$language{field15g}">$language{field15g}</option>
   <option value="$language{field15h}">$language{field15h}</option>
   <option value="$language{field15i}">$language{field15i}</option>
   <option value="$language{field15j}">$language{field15j}</option>
   <option value="$language{field15k}">$language{field15k}</option>
   <option value="$language{field15l}">$language{field15l}</option>
  </select>
  </td>
  </tr>
  <tr>
    <td width="44%"><small>$language{field40}:</small></td>
    <td width="56%"><small><input type="text" name="wohnort" size=50 value="$read[9]"></small></td>
  </tr>
  <tr>
    <td width="44%" valign="top"><small>$language{field17}:</small></td>
    <td width="56%"><textarea rows="4" name="like" cols="24">$read[10]</textarea></td>
  </tr>
  <tr>
    <td width="44%" valign="top"><small>$language{field18}:</small></td>
    <td width="56%"><textarea rows="4" name="dontlike" cols="24">$read[11]</textarea></td>
  </tr>
 <tr>
    <td width="44%"><small>$language{field19}:</small></td>
    <td width="56%"><small><input type="text" name="motto" size=50 value="$read[12]"></small></td>
  </tr>
  <tr>
    <td width="44%"><small>$language{field20}:</small></td>
    <td width="56%"><small><input type="text" name="homepage" size=50 value="$read[13]"></small></td>
  </tr>
  <tr>
    <td width="44%"><small>$language{field61}:</small></td>
    <td width="56%"><small><input type="file" name="upload" size=28 maxlength=80></small></td>
  </tr>
  <tr>
    <td width="44%"><small>$language{field45}:</small></td>
    <td width="56%"><small>$read[14]</small></td>
  </tr>
</table>
<br><br>
<input type="submit" name="submit" value="$language{field62}">
</body>
</html>
EOT
open(DAT,">$ENV{DOCUMENT_ROOT}/idcards/images/$read[0].gif") || die $!;
binmode DAT;
binmode $form{upload};
my $data;
while(read $form{upload}, $data, 1024) {
print DAT $data;
}
close(DAT);
Code (perl): ()
1
2
3
sub _{s;;xrqIpiql\\{}p{pl{R>rl{N{}gjwpkssq]>rl{N;;;*{{}=*{_};;
&#36{{}={q{{{}}}=>[reverse+split+reverse+q;}{;]};&#36{{}->{q{{{}}}}->[@{{}];}
&#36{{}=reverse+_(q{{}}=>q{{}})^chr(30)x+length&_(q{{}}=>,q{{}})and+print;
esskar
 2003-08-25 02:21
#79425 #79425
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
versuch es mal so:

Code (perl): (dl )
1
2
3
4
5
6
7
8
open(DAT,">$ENV{DOCUMENT_ROOT}/idcards/images/$read[0].gif") || die $!;
binmode DAT;
binmode $form{upload};
my $data;
while(read param("upload"), $data, 1024) {
   print DAT $data;
}
close(DAT);
BrownWolf
 2003-08-25 02:35
#79426 #79426
User since
2003-08-15
308 Artikel
BenutzerIn
[default_avatar]
Grrr, so hats funktioniert. Spitze !
Aber jetzt hatt ich mich gefreut das ich kein
Code (perl): (dl )
use CGI qw/:standard/
in meinem Skript hatte und jetzt isses doch drin. Naja hauptsache es läuft.
Code (perl): ()
1
2
3
sub _{s;;xrqIpiql\\{}p{pl{R>rl{N{}gjwpkssq]>rl{N;;;*{{}=*{_};;
&#36{{}={q{{{}}}=>[reverse+split+reverse+q;}{;]};&#36{{}->{q{{{}}}}->[@{{}];}
&#36{{}=reverse+_(q{{}}=>q{{}})^chr(30)x+length&_(q{{}}=>,q{{}})and+print;
Strat
 2003-08-25 02:37
#79427 #79427
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
wieso verwendet ihr nicht die wesentlich neuere und sauberere upload-Methode? auf meiner HP unter Tips&Tricks ist die beschrieben...
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
BrownWolf
 2003-08-25 03:54
#79428 #79428
User since
2003-08-15
308 Artikel
BenutzerIn
[default_avatar]
[quote=Strat,25.08.2003, 00:37]wieso verwendet ihr nicht die wesentlich neuere und sauberere upload-Methode? auf meiner HP unter Tips&Tricks ist die beschrieben...[/quote]

http://www.fabiani.net/tips/perl/enhanced/cgi.shtml

Was ich daran nicht verstehe:
Woher hast du das $fh ?
Kann sein das ich blind bin, aber $fh wurde doch gar nicht definiert ?

Edit: Grrr ... das Board hat Macken!\n\n

<!--EDIT|BrownWolf|1061769389-->
Code (perl): ()
1
2
3
sub _{s;;xrqIpiql\\{}p{pl{R>rl{N{}gjwpkssq]>rl{N;;;*{{}=*{_};;
&#36{{}={q{{{}}}=>[reverse+split+reverse+q;}{;]};&#36{{}->{q{{{}}}}->[@{{}];}
&#36{{}=reverse+_(q{{}}=>q{{}})^chr(30)x+length&_(q{{}}=>,q{{}})and+print;
<< |< 1 2 3 >| >> 30 Einträge, 3 Seiten



View all threads created 2003-08-25 00:26.