Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

redirect <-> print $cgi->header();

0 views
Skip to first unread message

Knut Krueger

unread,
Apr 15, 2009, 3:50:41 AM4/15/09
to
Hallo zusammen,
nun habe ich gefunden warum der Redirect
print redirect("./Hangar/$ac->{filename}");
einen 302 Fehler erzeugt.

Tread: Ist bei CreateURL irgendetwas verändert worden.
Am Anfang des Scriptes steht print $cgi->header();


#!/usr/bin/perl
# use lib '/home/.sites/46/site407/web/WrapMysql';
use CGI::Carp qw(fatalsToBrowser warningsToBrowser);
use CGI;
my $cgi = CGI->new();
# print $cgi->header();
warningsToBrowser(1); #

ist diese Zeile drin so funktioniert der Link nicht.
Wie gesagt in perl bin ich unwissend aber, wenn ich das richtig
verstanden habe so wird vor dem Redirect schon etwas ausgegeben und
deshalb kann der Redirect nicht mehr funktionieren. Richtig?
Das wäre ja analog zu Php header(...) genauso.

Warum aber steht in dem Script die Zeile drin und was handele ich mir
ein wenn ich sie streiche?

viele Grüße Knut

Frank Seitz

unread,
Apr 15, 2009, 4:19:48 AM4/15/09
to
Knut Krueger wrote:
>
> Warum aber steht in dem Script die Zeile drin

Darüber solltest du dich mit denen unterhalten, die außer dir
das CGI bearbeiten.

> und was handele ich mir ein wenn ich sie streiche?

Woher sollen wir das wissen? Probier's aus.

Grüße
Frank Seitz
--
Dipl.-Inform. Frank Seitz; http://www.fseitz.de/
Anwendungen für Ihr Internet und Intranet
Tel: 04103/180301; Fax: -02; Industriestr. 31, 22880 Wedel

Knut Krueger

unread,
Apr 15, 2009, 4:49:21 AM4/15/09
to
Frank Seitz schrieb:

> Knut Krueger wrote:
>> Warum aber steht in dem Script die Zeile drin
>
> Darüber solltest du dich mit denen unterhalten, die außer dir
> das CGI bearbeiten.
Genau das ist das Problem, es bearbeitet niemand mehr :-(

>
>> und was handele ich mir ein wenn ich sie streiche?
>
> Woher sollen wir das wissen? Probier's aus.

Das hab ich ja, es ändert sich augenscheinlich nichts, außer dass der
redirect auf die Download Datei jetzt wieder funktioniert.

Also dachte ich dass die Zeile eventuell generell hinein gehört.

Viele Grüße Knut

Frank Seitz

unread,
Apr 15, 2009, 5:00:23 AM4/15/09
to
Knut Krueger wrote:
> Frank Seitz schrieb:
>> Knut Krueger wrote:
>>> Warum aber steht in dem Script die Zeile drin
>> Darüber solltest du dich mit denen unterhalten, die außer dir
>> das CGI bearbeiten.
> Genau das ist das Problem, es bearbeitet niemand mehr :-(

Nunja, dann wirst du die Beweggründe wohl nie erfahren.
Aber es hat den Vorteil, dass du machen kannst was du willst.

>>> und was handele ich mir ein wenn ich sie streiche?
>> Woher sollen wir das wissen? Probier's aus.
>
> Das hab ich ja, es ändert sich augenscheinlich nichts, außer dass der
> redirect auf die Download Datei jetzt wieder funktioniert.
>
> Also dachte ich dass die Zeile eventuell generell hinein gehört.

Wenn es ohne die Zeile funktioniert, aber mit der Zeile nicht, wie kannst du
dann zu der Vermutung gelangen, dass sie hinein gehören könnte?
Ist das nicht unlogisches Denken?

"J. Strübig"

unread,
Apr 15, 2009, 5:41:41 AM4/15/09
to Knut Krueger
Knut Krueger schrieb:

> #!/usr/bin/perl
> # use lib '/home/.sites/46/site407/web/WrapMysql';
> use CGI::Carp qw(fatalsToBrowser warningsToBrowser);
> use CGI;
> my $cgi = CGI->new();
> # print $cgi->header();
> warningsToBrowser(1); #
>
> ist diese Zeile drin so funktioniert der Link nicht.
> Wie gesagt in perl bin ich unwissend aber, wenn ich das richtig
> verstanden habe so wird vor dem Redirect schon etwas ausgegeben und
> deshalb kann der Redirect nicht mehr funktionieren. Richtig?

Falls du die auskommentierte Zeile meinst, ja.

> Das wäre ja analog zu Php header(...) genauso.

Genau, der Redirect ist ein header, d.h. wenn ein anderer header zuvor
ausgegeben wird, kann dieser nicht mehr wirken.

> Warum aber steht in dem Script die Zeile drin und was handele ich mir
> ein wenn ich sie streiche?

Wenn die Zeile in einem Skript stehen, in dem eine Weiterleitung
stattfinden soll, dann dürfte es nie funktioniert haben. Ansonsten kommt
es halt drauf an, was das Skript konkret macht.

Struppi.

Knut Krueger

unread,
Apr 15, 2009, 6:21:19 AM4/15/09
to
J. Strübig schrieb:

> Wenn die Zeile in einem Skript stehen, in dem eine Weiterleitung
> stattfinden soll, dann dürfte es nie funktioniert haben.

Sieht so aus als ob sie irgendwann bei der Fehlersuche
siehe Tread Can't locate Mysql.pm in @INC hineigekommen ist.
In der Original Datei war sie nicht drin.
Das kommt halt davon wenn man ohne Kenntnisse der Sprache, und des
Templates in einem fremden Code einen Fehler suchen muss der durch ein
Server Update aufgetreten ist.
Aber es läuft und ich hoffe endlich Ruhe davon zu haben .. und ihr vor
mir ;-)


vielen Dank an alle

Knut Krueger

unread,
Apr 15, 2009, 6:26:45 AM4/15/09
to
Frank Seitz schrieb:

> Wenn es ohne die Zeile funktioniert, aber mit der Zeile nicht, wie kannst du
> dann zu der Vermutung gelangen, dass sie hinein gehören könnte?

> Ist das nicht unlogisches Denken?

jein der Redirect funktionierte, für den Rest habe ich keine Zeit um es
alles auszutesten, aber ich habe in einem uralten Backup das Orginal
angesehen, die Zeile war dort nicht drin. Wie und warum (ich oder mein
Vorgänger) diese dort hinein geschrieben haben, kann ich nicht mehr
nachvollziehen.
Egal es schein alles zu funktionieren. Das Script (FastTemplate) ist so
uralt, dass man es nicht nachbessern, sondern komplett neu schreiben
sollte. Nur ist es ein Hobbyseite und niemand zahlt dafür Geld oder hat
zeit es umsonst zu machen.

Viele Grüße Knut

0 new messages