Thread Wie PHP-Code in .cgi ausführen?
(39 answers)
Opened by newperler at 2011-04-29 19:19
Ihr seid klasse, ein echter Ansatz.....
Der Reihe nach: Den obigen Code-Schnipsel habe ich in die ksearch.cgi eingebaut, Ausführen der PHP-Ergebnisseite nicht möglich, Apache-Fehlermeldung... Also umgefrikelt und das Ergebnisverzeichnis mal aus /cgi-bin/ in ein 'normales' Serververzeichnis /kresult/ verlegt => PHP-Ergebnisseite wird ausgeführt. Suchmaske, mal nach virus suchen... ;) Sieht schon ganz nett aus, von den fehlenden Formatierung der häßlich grünen Ergebnisse mal abgesehen (alles später, erst Technik!). Selbst die Suchoptionen oder die Folgeseiten werden korrekt übergeben. Probleme: 1. Auch nach Entfernung des Kommentars für die 'Löschzeile' werden die MD5.php-Dateien nicht gelöscht. 2. Das Cookie-Handling für die Kontrast- und Schriftgrößenänderung läuft nicht, die Ergebnisseite wird nicht verändert. Kurioserweise werden die Cookies offensichtlich richtig gesetzt/geändert; geht man nach Änderung mal auf die Suchmaske zurück, sieht man dort die geänderte Schriftgröße oder das Kontrastlayout. Blockt Perl das etwas, z.B. das Cookie-lesen oder den SESSION-Zugriff?? 3. Durch die Weiterleitung via Code: (dl
)
<meta http-equiv="refresh" content="0; url=$redirect_url"> Code: (dl
)
1 <?php 4. Sicherheit ist ein Thema, insbesondere beim Perl/PHP-Labskau. Muß ich mal überdenken. Die 'Schwerpunkte und Fähigkeiten des Fragestellers' :) liegen nicht im Webdesign, die Webseite ist ein reines Hobbyprojekt im Familienkreis, Learning-by-doing, Schwerpunkt XHTML/PHP... Den Programmierer von Ksearch habe ich schon angeschrieben und als Goodie eine dt. Übersetzung für Ksearch mitgeschickt, bislang keine Reaktion. Es gibt dort auch ein Forum, leider nur stiefmütterlich frequentiert. Derzeitiger Stande der ksearch.cgi (Link): Code (perl): (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 # print $html; # finally print the HTML page # php-Template { use Digest::MD5 qw(md5_hex); my $t = time; my $dig = md5_hex($t . $html . $$); if (!-e "$ENV{DOCUMENT_ROOT}/kresult/") { mkdir("$ENV{DOCUMENT_ROOT}/kresult/"); } my $php_fname = "ks-$dig-$t.php"; my $outfh; open ($outfh, ">", "$ENV{DOCUMENT_ROOT}/kresult/$php_fname"); print $outfh $html; # finally print the HTML page # --- PHP-Datei löschen nach Anzeige? Dann Kommentar entfernen! print $outfh '<?php @unlink("$ENV{DOCUMENT_ROOT}/kresult/$php_fname"); ?>'; # --- close ($outfh); my $redirect_url = "/kresult/$php_fname"; print <<"HTML"; <html> <head> <meta http-equiv="refresh" content="0; url=$redirect_url"> </head> <body> <p>Suchergebnis unter <a href="$redirect_url">$redirect_url</a></p> </body> </html> HTML exit; } # /php-Template |