Schrift
[thread]145[/thread]

simpler Vergleich: vergleich vergleicht nicht



<< >> 8 Einträge, 1 Seite
Gast Gast
 2004-01-15 11:56
#916 #916
Hallo alle zusammen, habe mal eine Frage bezüglich ein paar zeilen code:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
if( $in{'previous'} == 2 ) {
$Command    = 'previous';
};

if( $in{'anfang'} == 1 ) {
$Command    = 'anfang';
};

if( $in{'ende'} == 4 ) {
$Command    = 'ende';
};

if( $in{'next'} == 3 ) {
$Command    = 'next';
};

$command kommt vorbelegt mit anfang an. 1,2,4 oder 4 sind Form-Values. Mein Problem ist, das er wenn jetzt $in{'previous'} mit 2 bekommt nicht in die If-Anweisung reingeht. Wenn ich mir aber direkt vor den paar zeilen ausgebe, wie $in{'previous'} belegt ist, dann steht da 2, eindeutig. Komme hier absolut nicht weiter, bitte um Hilfe.

mfg Martin Lehnert
jan
 2004-01-15 12:04
#917 #917
User since
2003-08-04
2536 Artikel
ModeratorIn
[Homepage] [default_avatar]
kannst du etwas mehr code posten, vor allem, wie du %in füllst?

und vielleicht eine kurze erklärung, nur, damit ich vom rätseln abgehalten werde ;) was bezweckt das ganze? ich verstehe im grund nicht ganz, warum du vier parameter gegen vier zahlen checkst, dabei aber jedes mal dieselbe variable belegst, d.h. bei günstiger kombination würde $Command am anfang "previous" enthalten, dann "anfang", dann "ende" und schließlich "next", wobei aber nur "next" anschließend weiter verarbeitet wird. soll das so sein?
Strat
 2004-01-15 12:14
#918 #918
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
kann es sein, dass in $in{previous} noch fuehrende leerzeichen oder so vorhanden sind?
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
Dubu
 2004-01-15 12:14
#919 #919
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
Benutzt du strict und warnings?

Im Text schreibst du von $command, im Code $Command. Kann natuerlich einfach ein Tippfehler sein...
jamaica-man
 2004-01-15 12:23
#920 #920
User since
2004-01-15
2 Artikel
BenutzerIn
[default_avatar]
Hallo alle zusammen,

$in wird mit POST variablen belegt.

Im Prinizip habe ich auf meiner Seite 4 knöpfe, vor zurück, anfang, ende mit denen ich durch die ergebnissmenge klicken kann. Diese haben als Value halt 1 2 3 oder 4.

Das heisst es ist auch immer nur einer der 4 $in`s belegt, nie alle gleichzeitig, da ich immer nur einen knopf drücken kann.

hoffe das hilft weiter.
mfg Martin
Strat
 2004-01-15 12:33
#921 #921
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
ich fuerchte, da brauchen wir mehr code...
1. wie werden die werte in HTML gesetzt
2. wie werden die Werte %in zugewiesen?
3. wird mit %in sonst noch wo was gemacht?
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
jamaica-man
 2004-01-15 12:47
#922 #922
User since
2004-01-15
2 Artikel
BenutzerIn
[default_avatar]
Ok, ich versuchs mal:

Code: (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
-----------------------------------------------------
lib.pl
-----------------------------------------------------
sub ReadParse {

 if (@_) {

   local (*in) = @_;

 }



 local ($i, $loc, $key, $val);



 # Read in text

 if ($ENV{'REQUEST_METHOD'} eq "GET") {

   $in = $ENV{'QUERY_STRING'};

 } elsif ($ENV{'REQUEST_METHOD'} eq "POST") {

   for ($i = 0; $i < $ENV{'CONTENT_LENGTH'}; $i++) {

     $in .= getc;

   }

 }

 @in = split(/&/,$in);



 foreach $i (0 .. $#in) {

   # Convert plus's to spaces

   $in[$i] =~ s/\+/ /g;



   # Convert %XX from hex numbers to alphanumeric

   $in[$i] =~ s/%(..)/pack("c",hex($1))/ge;



   # Split into key and value.

   $loc = index($in[$i],"=");

   $key = substr($in[$i],0,$loc);

   $val = substr($in[$i],$loc+1);

   $in{$key} .= '\0' if (defined($in{$key})); # \0 is the multiple separator

   $in{$key} .= $val;

 }



 return 1; # just for fun

}

-----------------------------------------------------
main.pl
-----------------------------------------------------
&Init; # Initilisierung der Schnittstelle
$ENV{'QUERY_STRING'} =~ s/\~/\=/g;
&ReadParse;

-----------------------------------------------------
form.pl
-----------------------------------------------------
print <<"ANFANG_KNOPF";
<td align="center">
       <input NAME="anfang" type="submit" class="go_button_100_2" value="1">
</td>
ANFANG_KNOPF
   
print <<"PREV_KNOPF";
<td align="center">
       <input NAME="previuos" type="submit" class="go_button_100_2" value="2">
</td>
PREV_KNOPF

print <<"NEXT_KNOPF";
<td align="center">
       <input NAME="next" type="submit" class="go_button_100_2" value="3">
</td>
NEXT_KNOPF
   
print <<"ENDE_KNOPF";
<td align="center">
       <input NAME="ende" type="submit" class="go_button_100_2" value="4">
</td>
ENDE_KNOPF


Aso, main.pl includet die lib.pl
und die main.pl wir dvon der seite form.pl aufgerufen.
Der problemcode steht in der main.pl

So, das ist das was ich habe.
mfg Martin\n\n

<!--EDIT|jamaica-man|1074163823-->
pq
 2004-01-15 13:19
#923 #923
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
uiui...  der code (besonders die funktion ReadParse) ist der grausigste code,
den ich je gesehen habe. (tschuldigung)
du willst ganz dringend
 use CGI;
 my $q = new CGI;
 my %in = $q->Vars;

benutzen.
das wird das problem wahrscheinlich nicht lösen, aber das programm schonmal
etwas leichter zu handhaben machen.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
<< >> 8 Einträge, 1 Seite



View all threads created 2004-01-15 11:56.