Revision 570abc83
Von Moritz Bunkus vor mehr als 14 Jahren hinzugefügt
SL/Form.pm | ||
---|---|---|
243 | 243 |
tie %{ $self }, 'SL::Watchdog'; |
244 | 244 |
} |
245 | 245 |
|
246 |
read(STDIN, $_, $ENV{CONTENT_LENGTH});
|
|
246 |
bless $self, $type;
|
|
247 | 247 |
|
248 |
if ($ENV{QUERY_STRING}) { |
|
249 |
$_ = $ENV{QUERY_STRING}; |
|
250 |
} |
|
248 |
$self->_input_to_hash($ENV{QUERY_STRING}) if $ENV{QUERY_STRING}; |
|
249 |
$self->_input_to_hash($ARGV[0]) if @ARGV && $ARGV[0]; |
|
251 | 250 |
|
252 |
if ($ARGV[0]) { |
|
253 |
$_ = $ARGV[0]; |
|
251 |
if ($ENV{CONTENT_LENGTH}) { |
|
252 |
my $content; |
|
253 |
read STDIN, $content, $ENV{CONTENT_LENGTH}; |
|
254 |
$self->_request_to_hash($content); |
|
254 | 255 |
} |
255 | 256 |
|
256 |
bless $self, $type; |
|
257 |
|
|
258 |
$self->_request_to_hash($_); |
|
259 |
|
|
260 | 257 |
my $db_charset = $main::dbcharset; |
261 | 258 |
$db_charset ||= Common::DEFAULT_CHARSET; |
262 | 259 |
|
Auch abrufbar als: Unified diff
Scriptparameter sowohl via %ENV als auch von @ARGV und STDIN auswerten
Bisher war es so, dass -- in aufsteigender Priorität -- entweder STDIN
mit $ENV{QUERY_LENGTH}, $ENV{QUERY_STRING} oder $ARGV0 als Eingabe
gelesen wurde. Nun werden alle drei Kanäle in der Reihenfolge
$ENV{QUERY_STRING}, $ARGV0 und STDIN gelesen und ausgewertet. Die
Eingaben überschreiben sich nur bei identischen Keys, ergänzen sich
aber ansonsten.
Beispiel:
<form method="post" action="am.pl?who=me">
<input type="submit" name="action" value="Gogogo">
</form>
sorgt für zwei Key/Value-Paare in $form; who => me und action => Gogogo.