Farid Hajji: Perl - Einführung, Anwendungen, Referenz
2., aktualisierte und erweiterte Auflage
Addison-Wesley Longman, ISBN 3-8273-1535-2
CGI.pm-Modul
PATH_INFOApache::Session-ModulLWP::*-LibraryLWP::SimpleLWP::UserAgent
mod_perl-Modul
Apache::Registry# Apache-Webserver http://httpd.apache.org/ # mod_perl http://perl.apache.org/dist/ # OpenSSL http://www.openssl.org/ # mod_perl Konfigurieren: ~/mod_perl-x.yz> perl Makefile.PL EVERYTHING=1 # Die Übersetzung und Installation von Apache und mod_perl # werden im Kapitel selbst erklärt. # Das CGI.pm-Modul: use CGI qw(:standard); # Und weitere Optionen use CGI::Carp qw(fatalsToBrowser); # die "..." zum Browser if (param()) { # Brower hat uns Formulardaten geschickt. $name = param('myname'); $phone = param('myphone'); # Daten auswerten, dann irgendeine Antwort senden. } else { # Erstmaliger Aufruf, sende HTML-Formular print header, start_html($title), h1($this_is_an_h1_header), "blah blah", p, start_form, textfield({ -name => 'myfield', -size => '30' }), ... submit({ -value => 'Register!' }), reset, end_form, end_html; } # Tabellen mit CGI.pm: $htmltable = table( Tr( td( [ @alist ] ) ), Tr( td( [ @alist ] ) ) ... ); # Zustand erhalten mit: # PATH_INFO, QUERY_STRING, Hidden-Feldern, Cookies, # Sitzungsnummern. Zustand digital signieren und verschlüsseln. # Einloggen mit Apache::AuthenDBI für roaming User. # Persistente Hashes mit Datenbank als Backingstore. # Das Apache::Session-Modul. # Cookies: use CGI::Cookie; $cookie = new CGI::Cookie(-name => COOKIENAME, -expires => '+5d', -value => $refhash_or_scalar); print header(-cookie => $cookie); # Zum Browser senden $cookievalue = cookie( -name => COOKIENAME ); # Webclients mit der LWP::* libwww-perl-Library use LWP::UserAgent; use HTTP::Request; $ua = new LWP::UserAgent; $ua->agent($browserstring); $ua->timeout($time_to_wait_in_seconds); $ua->proxy('http' => "http://proxy.isp.net:8080/"); $req = new HTTP::Request 'GET' => $remoteurl; $req->authorization_basic($user => $pass); $res = $ua->request($req); $result = $res->is_success() ? $res->content() : "Err: " . $res->code() . " " . $res->message(); # Authentifikation über MySQL mit Apache::AuthenDBI ScriptAlias /cgi-bin-secure/ /usr/local/apache/cgi-bin-secure/ <Location /cgi-bin-secure/> AuthName 'Secure Testarea' AuthType Basic PerlAuthenHandler Apache::AuthenDBI PerlSetVar Auth_DBI_data_source dbi:mysql:database=www PerlSetVar Auth_DBI_username nobody PerlSetVar Auth_DBI_password wwwpass PerlSetVar Auth_DBI_pwd_table wwwusers PerlSetVar Auth_DBI_uid_field username PerlSetVar Auth_DBI_pwd_field password require valid-user </Location> # Einstellung einer Apache::Registry-Umgebung: # In conf/startup.pl werden Module vorgeladen. PerlRequire conf/startup.pl PerlFreshRestart On Alias /perl/ /usr/local/apache/cgi-perl/ <Location /perl> SetHandler perl-script PerlHandler Apache::Registry Options ExecCGI </Location> # Einige Einträge in conf/startup.pl: #!/usr/local/bin/perl BEGIN { use Apache (); use lib Apache->server_root_relative('lib/perl'); } use Apache::Registry (); use Apache::Constants (); use CGI qw(-compile :all); 1;
httpd.conf |
Anfangskonfiguration des Apache-Webservers |
cgi-welcome.pl |
Zeigt eine kurze CGI-Begrüssung an |
cgi-welcome-gd.pl |
Eine dynamische GIF-Datei mit GD.pm |
cgi-printenv.pl |
Zeigt die CGI-Umgebungsvariablen an |
cgi-input.pl |
Liest Daten von einem Eingabeformular |
cgi-s-pathinfo.pl |
Zustandserhaltung mit PATH_INFO |
cgi-s-query.pl |
Zustandserhaltung mit QUERY_STRING |
cgi-s-hidden.pl |
Zustandserhaltung mit Hidden-Feldern |
cgi-s-cookie.pl |
Zustandserhaltung mit Cookies |
cgi-s-cookie-md5.pl |
Zustandserhaltung mit Cookies, MD5-Signatur |
cgi-s-cookie-crypt.pl |
Zustandserhaltung: Cookies, MD5-Signatur, Verschlüsselung |
cgi-s-server.pl |
Zustandserhaltung: serverseitig, Sitzungscookies |
cgi-s-roaming.pl |
Zustandserhaltung: serverseitiger, Benutzerauthentifikation |
lwp-simple.pl |
Holt Webseite auf einfachste Art und Weise |
lwp-uasimple.pl |
Informationen anfordern mit dem UserAgent |
lwp-uaagent.pl |
Browserstring explizit setzen mit LWP::UserAgent |
lwp-uatimeout.pl |
Seite mit Timeout anfordern |
lwp-uaproxy.pl |
Anfordern einer Seite durch einen Proxyserver |
lwp-uaRobotUA.pl |
Seite anfordern mit Robots-Exclusion-Standard |
lwp-uapost.pl |
Formular ausfüllen und Antwort des Servers lesen |
lwp-uacredentials.pl |
Basic Authentication mit LWP::UserAgent |
startup.pl |
mod_perl Apache-Startup-Datei |
wf (1999/10/07)Apache::Session (1999/10/27)
apache-session1.pl (1999/10/27)counter1.pl (1999/10/29)counter2.pl (1999/11/01)counter3.pl (1999/11/01)html-parse.pl HTML::Parser-Beispiel (1999/10/15)html-parse-links1.pl Links mit HTML::LinkExtor extrahieren (1999/10/15)html-parse-links2.pl Manuelle Anpassung der Basis (1999/10/15)html-parse-links3.pl Download einer URL und automatische Linkanpassung (1999/10/15)cgi-upload.pl File-Upload in HTML-Formularen mit CGI.pm (1999/10/20)put-test.pl Webclient zum File-Upload mit der PUT-Methode (1999/10/22)PutHandler.pm mod_perl-basierter PUT-Handler (1999/10/22)mod_perl (1999/11/12)nc (a.k.a. netcat) ist nicht bei jedem Unix-System standardmäßig vorhanden. Die URL zum Download des C-Quellcodes von nc110.tgz befindet sich auf der Download-Seite (1999/12/17).In Vorbereitung
.cgi aufweist. Mein ISP akzeptiert jedoch nur CGI-Skripten mit der Endung .pl. Kann ich das gefundene CGI-Skript einfach umbenennen? (2000/03/24, nach einer Frage von pschmalzriedt)# CGI-Programm blah.cgi im Formular aufrufen print '<FORM ACTION="http://www.my.org/~myname/blah.cgi">', "\n";
blah.cgi in blah.pl umbenannt wird, würde der obige Link ins Leere zeigen. Eine Lösung wäre, blah.cgi in einem Editor Ihrer Wahl zu laden und mit Hilfe der Funktion Query and Replace jedes Vorkommen von blah.cgi in blah.pl zu ändern. Dies sollten Sie jedoch nicht automatisch tun, sondern jede Änderung explizit bestätigen, um unbeabsichtige Änderungen zu vermeiden.CGI.pm, sind die Chancen gut, daß Sie gar nichts ändern müssen. Der Grund ist, daß um ein Formular zu erzeugen, die CGI.pm-Funktion start_form() ohne Argumente aufgerufen, den jeweils aktuellen Namen des Skriptes einsetzt. Sie sollten sich jedoch nicht darauf verlassen, daß alles gut geht!retrieve_state() wird der aktuelle...
$SVL = $sql{$SID} || die "Sorry, unknown session: $SID!\n";
$sql{$SID} = { VALUE => $newval, EXPIRES => $exptime };
AUTEN_TYPE durch AUTH_TYPE.[Alte Quelle]
| Last modified: $Date: 2006/05/18 12:55:43 $ FH. Search :: Sitemap :: Disclaimer :: Copyright :: Privacy |
|