Christoph Zurnieden: (C/C++) so vieleicht?

Beitrag lesen

Des Idioten Weg zur Lösung von Problemen mit Perl CGI

Diese Seite wendet sich hauptsächlich an Unix Systeme.Wenn Sie sich zu etwas anderem hingezogen fühlen, nachdem Sie diese Seite gelesen haben, sollten Sie auf jeden Fall auch die verschiedenen anderen Perl FAQ's besuchen, nur zur Sicherheit.

Wenn Du wie alle anderen Leute in den Newsgroups bist, hast Du uns schon mit dem geradezu klassizistischem CGI Problem konfrontiert:"Gehtnich'!", ohne uns hinreichenden Hintergrund anzubieten, auf das wir das das echte Problem weissagen mögen. Es macht uns rasend, weil Du hier wie ein sabbernder Idiot ankommst und um Gratis Beratung bettelst, ohne je irgendeine eigenen Gedanken daran verschwendet zu haben. Dies schreckt die Leute ab, die Dir eine helfende Hand hätten bieten können und läßt das Netz verkümmern indem Du den eh schon ärgerlich niedrigen Rauschabstand noch verschärfst.
Zu Beginn schau einmal durch die Liste unten mit ein paar einfachen Fragen und Antworten. Da einige zusammenfassende Antworten angeboten werden, mußt Du die Richtige schon selbst herausfinden.

Q: Wem Gehöret Dies Script?
A: mir.

Q: Welches Seien Des Scriptes Rechte?
A: sie waren 0600, doch ich sah, das es so nicht auszuführen sei. so setzte ich es auf 0755 anstatt.

Q: Ist Dein Script Im Rechten Ordner?
A: nein, denn ich vergaß ES zu stellen in /usr/local/etc/httpd/cgi-bin/.

Q: Ist CGI Recht Zur Ausführung Angewiesen Worden Auf Deinem Server Für Diesen Ordner Und, Und Auch Oder Für Dieser Datei Anhang?
A: ach nein, mein sysadmin vergaß so zu tun, er dachte ein GET würde hinreichen, so schloss er keine möglichkeit zum POST ein.

Q: Unter Welcher Uid Treibt Der Server Seine CGI Programme?
A: wwwuser (oweh, er kann ja meine dateien und ordner gar nicht schreiben)

Q: Vermag Des Servers Uid Jedwede Datei Zu Schreiben Die Du Zu Schreiben Suchst?
A: grannini- ich besitze die datei, jedoch er läuft nicht wie ich, und die rechte sind 0600 an stelle von 0666. ich glaube aus diesem grunde vermag ich meine eigenen dateien nicht zu öffnen.

Q: Was Geschiehet Wenn Du Dich Mit Ihm Sprichst?
A: ich wußte nicht, das man mit ihm auch sprechen kann, ich kümmerte mich nie um die Schriften Der CGI.pm Bibliothek.

Q: Was Stehet Geschrieben In Des Servers Log?
A: ich habe nie daran gedacht, zu schauen, oh, da steht ja was - egal.

Q: Wo Sind Die Tafeln Mit Des Servers Log?
A: (naja, kann man nie wissen-ist systemabhängig. nimm mal deinen admin unter den arm und schau in /usr/local/etc/httpd/logs/error_log vieleicht findet ihr dort, was ihr suchtet)

Q: Wie Lautet Der Bibliothek Zahl?
A: in der Bibliothek werde ich dieses tun:

grep -i version

und die zahl des Buches erfahre ich so:

$ perl -le 'use CGI; print $CGI::VERSION'

2.21

Q: Wie Lautet Der Weg Zum Ausführenden Perl Auf Dem Server?
A: /contrib/bin/perl

Q: Und Wie Lautet Der Weg, Den Du Beschrieben In Deinem Script?
A: /usr/bin/perl (auwei, dann konnte er ihn ja gar nicht finden)

Q: Wie Lautet Des Servers Http Dämonen Zahl, Auf Das Die Leute, Die Dir Helfen Könnten Ein Grösseres Wissen Erlangen Über Deine Derzeitige Umgebung?
A: NCSA 1.5

Q: Was Geschiehet, So Du Gibst Perl Das -w Signal?
A: er wird mir vorwerfen meine dummen fehler, und sie haarklein  beschreiben in der perldiag manualsseite, wo ich sie mir genauestens zu gemüte führen werde.

Q: Was Geschiehet, So Du Gibst Perl Das -T Signal?
A: er wird mich belehren über die probleme der sicherheit so wie sie geschrieben stehen in der perlsec manualsseite, die ich sorgfältigst gelesen habe, bis ich sie verstand, auch die CGI sicherheits FAQ habe ich gelesen.

Q: Was Geschiehet, So Du Perl Den Befehl use strict Mitgibst?
A: er zwingt mich meine variablen zu bezeichenen und meine zeichenketten zwischen gänsefüßen zu plazieren und er wird finden all die dummen fehler, die ich mit Sorgfalt berichtigte indem ich my() bezeichner benutzte und use vars und die füße der gänse.

Q: Vergaßest Du Auch Nicht Die MIME Gestalt Vor Allen Anderen non-header Herauszuschicken (Andere headers Mögen Sein Location: oder auch Set-Cookie:)
A: oh richtig. erst muss ein kopf da sein bevor der körper folge. ich glaube ich muss es früher sagen als ich es tat und ich muß mich versichern das zwier neue linien folgen, nicht nur eine.
print "Set-cookie: GroversDelight\n";
        print "Content-Type: text/html\n\n";        # <-- two newlines
        print "<HEAD><TITLE>Sample Title</TITLE></HEAD>\n";

Q: Vergaßest Du Auch Nicht STDOUT Zu Reinigen Gleich Zu Anfang Deines Scriptes Auf Das Die Gestalt MIME Entweichen Kann Noch Vor Den Greulichen Fehlern?
A: aoouuuuh, neee - jungejunge, kein wunder, das er nicht entwischen kann, bevor die bude in die luft geht! ich glaube ich setze diesen hier mal an die spitze:
$ = 1

Q: Was Geschiehet So Du Prüfest Den Rückgabewert Aller Und Jeder Deiner syscalls?
A: das sieht nach einer ganzen menge arbeit aus, jedoch sicherlich, sofern ich dieses hinzufüge
open(FILE, ">some_file")
             die("can't write some_file: $!");
wird das error log mir zeigen, das $! beinhaltet "zugriff verweigert" oder auch "keine solche Datei und kein solcher Ordner" und alles klärt sich auf gar wundersame weise.

Q: Liesest Du Das Standart CGI.pm Modul Die Arbeit Für Dich Tun Anstatt Selbst Zu Wühlen (Das Wäre Wirklich Echt Idiotisch) Oder Nahmest Du Vieleicht Die Etwas Beschränktere cgi-lib.pl Bibliothek?
A: Ey, geil, meinst du etwa jemand anderes hat das schon für mich gemacht? ich hatte keinen blassen schimmer, das ich gar nicht wusste, das ich nicht alles selber machen muß und das ich die neueste version dieses prima CGI moduls von http://www.perl.com/cgi-bin/cgi_mod?modules=CGI kriegen kann.

Q: So Du Nutzest Eine Bibliothek, Hattest Du Eine make install In Den Stein Geschlagen Auf Das Sie Auf Dem Rechten Platz Sitze (Irgendwo in @inc, Wahrscheinlich Sogar In /usr/local/lib/perl/site_perl/CGI.pm) Auf Das Sie Jederzeit Gefunden Werde Und Ihre Rechte Gesetzt Auf 0644, Oder Hast Du Lediglich Von Hand Kopiert Und Am Pfad Gedreht Oder Am Recht Oder Gar An Beiden?
A: wasn make?  schau, ich habe einfach das dingen ins cgi-bin kopiert und dann auf 0700 gesetzt. ich glaube, das funktioniert gar nicht, oder?

Q: Vergaßest Du Auch Nicht Deine Frage In Der Halle Von comp.infosystems.www.authoring.misc Zu Stellen Anstatt Die Heiligen Höhlen Von comp.lang.perl.* Mit Deine Fragen Zu Verpesten, Die Nun Überhaupt Nichts Mit Perl zu Tun Haben?
A: nö, kriege ich deshalb nie ne vernünftige antwort sondern werde immer nur unflätig beschimpft und mit kot beworfen?

Q: So Du Fahrest Mit Einem Hirnzerfressenem, Sadistischem Pseudo-Wagen, Der Erbaut Wurde Im Teuflischen Reich, Schertest Du Dich Darumb, Zu Lesen Das Wihdumm Perl Faq Und Was Es Sagt Über Das Web?
A: nein, habe gar nichts gewußt vom Perl Für win32 FAQ geschrieben vom unerschrockenem und wagemutigem Evangelo Prodromou.

Q: Vermiedest Du Es Einen Interpreter Auf Die Art Und Weise In Das cgi-bin Zu Legen Vor Der Du In http://www.perl.com/perl/news/latro-announce.html Gewarnt wurdest Und Auch Von CERT?
A: Nein, was sollte daran falsch sein(ein geräusch einer zu staub zermahlenden disk, dem die versammelten spione im hintergrund verstohlen lauschen [Anm.d.Ü.: ???])

Und die Moral von der Geschicht: nerve andere Leute nicht!
[Anm.d.Ü.: keine Lust mehr, außerdem kommt jetzt eh nur noch Werbung]

Copyright 1996 Tom Christiansen.