Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]10499[/thread]

PATH_INFO setzen



<< >> 4 Einträge, 1 Seite
pktm
 2007-10-02 01:27
#100199 #100199
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Hallo!

Wie kann ich die Umgebungsvariable PATH_INFO ordentlich setzen?
Und zwar habe ich den Umstand, dass ich mit CGI::Application::Dispatch arbeite. Da wird PATH_INFO benutzt um zu bestimmen, was getan werden soll. Jetzt habe ich da ein Kontaktformular geschrieben (um genau zu sein, mein altes mal ordentlich überarbeitet) und da soll nun nachdem die eMail abgesandt wurde ein redirect erfolgen, damit der Benutzer nicht ausversehen noch eine eMail verschickt, wenn er die Bestätigungsseite aktualisiert.
Dass es da auch andere Wege gibt ist mir bekannt, ich habe diesen gewählt.
Fakt ist aber, dass ich für diese Umleitung, bei der sich die Information von PATH_INFO änder folgendes mache:
Code: (dl )
1
2
3
4
# $q = CGI-Objekt
my $url = $q->url(-full=>1, -path_info=>1);
$url =~ s/(.+)\/path/info/hier/$1\/neue/path/info/;
return $self->redirect($url);


Dieses herumfriemeln mittels reg. Ausdrücke an der URL gefällt mir nicht.
Kann ich da nicht einfach vorher irgendwie schön PATH_INFO setzen und dann mittels $q->url(-full=>1, -path_info=>1) die fertige Adresse produzieren?

CGI.pm kann zwar PATH_INFO auslesen, soweit ich das verstanden habe ist das aber keine Methode um das zu setzen. (Sekundärfrage: Warum eigentlich nicht?)

Hat jemand ne feine Idee wie man das sauberer machen köntne? Oder ist das schon der Königsweg?

Grüße, pktm
http://www.intergastro-service.de (mein erstes CMS :) )
renee
 2007-10-02 09:37
#100203 #100203
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Nimm CGI::Application::Plugin::Redirect... Und gib dort die ganze URL an.
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
betterworld
 2007-10-02 15:23
#100215 #100215
User since
2003-08-21
2614 Artikel
ModeratorIn

user image
Warum lässt Du Dir nicht die URL ohne path_info geben und hängst den gewünschten Pfad einfach hinten dran? Dann musst du nicht mit RE rummachen.
Quote
Code: (dl )
$url =~ s/(.+)\/path/info/hier/$1\/neue/path/info/;

Ein Tipp zu RE: Nimm lieber ein anderes Trennzeichen als '/', wenn in dem RE solche Zeichen vorkommen. Dann vergisst Du auch nicht, die Slashes zu escapen.
pktm
 2007-10-02 19:13
#100224 #100224
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
renee+2007-10-02 07:37:38--
Nimm CGI::Application::Plugin::Redirect... Und gib dort die ganze URL an.


Ja, mach ich doch, nur halt mittels dem CGI-Objekt damit ich nicht das Modul oder Parameter in der Instanz ändern muss wenn sich mal was ändert.

PATH_INFO ganz weglassen und einfach so dran hängen... das wäre noch eine Idee. Allerdinsg habe ich da einen Fall, wo noch was an PATH_INFO dran hängt (z.B. die Information welche Sprache, so in etwa: skript.cgi/modul/runmode/lang), und manchmal sind noch Query-Parameter dabei, die nach PATH_INFO angehangen werden.
http://www.intergastro-service.de (mein erstes CMS :) )
<< >> 4 Einträge, 1 Seite



View all threads created 2007-10-02 01:27.