Direktaufruf oder über Formular
Gast
- perl
Hi,
wahrscheinlich entlockt Euch meine Frage nur ein müdes Lächeln, aber ich stehe am Anfang und in SELFHTML weiß ich nicht, wonach ich noch suchen soll.
Wie kann ich im Perl-Programm erfahren, ob es direkt über die Angabe in der URL-Zeile des Browsers oder über eine href-Angabe in einem anderen Programm oder über ein Formular aufgerufen wurde?
Danke
Hey,
Wie kann ich im Perl-Programm erfahren, ob es direkt über die Angabe in der URL-Zeile des Browsers oder über eine href-Angabe in einem anderen Programm oder über ein Formular aufgerufen wurde?
das ist technisch kein Unterschied. In allen Fällen setzt der Browser/Useragent den gleichen Request an den Server ab. Zur Verdeutlichung ein Beispielprogramm:
#!perl
use CGI qw();
use Data::Dumper;
my $cgi = new CGI;
print $cgi->header('text/plain;charset=utf-8');
print Dumper $cgi;
* Tue in die Adresszeile des Browsers die Adresse http://localhost/dump?foo=bar;quux=baz;roflcopter
* Lege eine HTML-Datei an, die einen Link auf diese Adresse enthält, lade die Datei in den Browser und folge dem Link
* Lege eine HTML-Datei an, die ein Formular enthält, das auf http://localhost/dump zeigt und die Wertepaare foo=bar, quux=baz und roflcopter enthält, lade die Datei in den Browser und schicke das Formular ab
* Wenn du LWP installiert hast, führe den Befehl aus: lwp-request -m GET http://localhost/dump?foo=bar;quux=baz;roflcopter
In jedem Fall bekommst du dasselbe Ergebnis.
$VAR1 = bless( {
'.parameters' => [
'foo',
'quux',
'roflcopter'
],
'use_tempfile' => 1,
'.charset' => 'ISO-8859-1',
'quux' => [
'baz'
],
'roflcopter' => [
''
],
'foo' => [
'bar'
],
'.fieldnames' => {},
'.header_printed' => 1,
'escape' => 1
}, 'CGI' );
Wie kann ich im Perl-Programm erfahren, ob es direkt über die Angabe in der URL-Zeile des Browsers oder über eine href-Angabe in einem anderen Programm oder über ein Formular aufgerufen wurde?
u.U. hilft http://de.selfhtml.org/servercgi/cgi/umgebungsvariablen.htm
HTTP_REFERER
Struppi.