Schrift
[thread]30[/thread]

urlencoding: urlencoding (Seite 2)



<< |< 1 2 >| >> 17 Einträge, 2 Seiten
superwebba
 2003-09-09 16:51
#2754 #2754
User since
2003-09-09
6 Artikel
BenutzerIn
[Homepage] [default_avatar]
wie gesagt, der link kann so in der seite stehen.
http://host/test.cgi?id=test&a=2467&b=11245&page=http://www.test.de/onlineshop/tmpl?lan=2&cod=1&aid=14310
klickt da jetzt jemand drauf, soll der direkt zur Seite des params page kommen

ralf
--
ich bin root, ich darf das!
SirLant
 2003-09-09 16:53
#2755 #2755
User since
2003-08-04
516 Artikel
BenutzerIn
[default_avatar]
So habe den Fehler jetzt behoben :)

Ich würde dir raten URI::Escape zu verwenden um den Parameter zu kodieren.
Dein Skript kann dann ja den parameter dekodieren und
den User auf die entsprechende Adresse weiterleiten
--Programming today is a race between Software Enginers striving to build bigger and better idiot-proof Programs,
and the Universe trying to produce bigger and better idiots.
So far, the Universe is winning!
jan
 2003-09-09 17:03
#2756 #2756
User since
2003-08-04
2536 Artikel
ModeratorIn
[Homepage] [default_avatar]
im ersetzungsteil musst du das ? imho nicht mehr quoten, da sind quantifier nicht mehr dabei.

guck mal, ob du das nicht einfach mit CGI.pm auseinanderwurschteln kannst.
Dubu
 2003-09-09 18:36
#2757 #2757
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
Da es offenbar noch nicht ganz klar ist:
Diese URL:
http://host/test.cgi?id=test&a=2467&b=11245&page=h...
ruft auf dem Rechner host das Skript test.cgi mit folgenden Parametern auf:
- id=test
- a=2467
- b=11245
- page=http://www.test.de/onlineshop/tmpl?lan=2
- cod=1
- aid=14310


Jede andere Interpretation der URL waere falshc, und selbst diese ist gnaedig, denn das zweite Fragezeichen ist gar nicht zulaessig.

Um das von dir gewuenschte Ergebnis zu erzielen, sollte die URL so aehnlich aussehen:
http://host/test.cgi?id=test&a=2467&b=11245&page=h...

Der Unterschied sollte deutlich sein.
Und um einen Parameter so zu kodieren, nimmt man eben URI::Escape.

(PS: Einige ganz ueble selbstgestrickte CGI-Parameter-Routinen spucken bei so einer URL uebrigens nur Mist aus, weil dort faelschlicherweise zuerst die Entities dekodiert und dann am '&' und den '=' getrennt wird - das gibt schoenen Datensalat.)
pq
 2003-09-09 18:45
#2758 #2758
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=SirLant,09.09.2003, 14:06]Schreib das doch ganz einfach so:
[/quote]
[beispiel gesnippt]

sorry, sirlant, aber warum, um alles in der welt, sollte man sich
sowas ausdenken, wenn es eine geprüfte, korrekte,
empfohlene art des url-encodings gibt und dieses auch noch
durch einbidung eines moduls und einem einzigen funktionsaufruf möglich ist? sonderzeichen werden mit
'%' plus ordnungszahl des zeichens in hex kodiert.
das ist eindeutig und umkehrbar. ausserdem gibt es noch mehr
zeichen als ? und &, die kodiert werden müssen...\n\n

<!--EDIT|pq|1063118761-->
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
SirLant
 2003-09-09 18:49
#2759 #2759
User since
2003-08-04
516 Artikel
BenutzerIn
[default_avatar]
[quote=pq,09.09.2003, 16:45][quote=SirLant,09.09.2003, 14:06]Schreib das doch ganz einfach so:
[/quote]
[beispiel gesnippt]

sorry, sirlant, aber warum, um alles in der welt, sollte man sich
sowas ausdenken, wenn es eine geprüfte, korrekte,
empfohlene art des url-encodings gibt und dieses auch noch
durch einbidung eines moduls und einem einzigen funktionsaufruf möglich ist? sonderzeichen werden mit
'%' plus ordnungszahl des zeichens in hex kodiert.
das ist eindeutig und umkehrbar. ausserdem gibt es noch mehr
zeichen als ? und &, die kodiert werden müssen...[/quote]
Deshlb ja
Quote
Ich würde dir raten URI::Escape zu verwenden um den Parameter zu kodieren.
Dein Skript kann dann ja den parameter dekodieren und
den User auf die entsprechende Adresse weiterleiten
--Programming today is a race between Software Enginers striving to build bigger and better idiot-proof Programs,
and the Universe trying to produce bigger and better idiots.
So far, the Universe is winning!
superwebba
 2003-09-10 12:39
#2760 #2760
User since
2003-09-09
6 Artikel
BenutzerIn
[Homepage] [default_avatar]
hi zusammen,
also, ich hab jetzt ne möglichkeit gefunden, aber vielleicht gehts ja auch besser oder einfacher, nichtsdestotrotz... ;-)

if ( $q->param('page') )
{
$pageLink = uri_unescape($q->query_string());
$pageLink =~ s/;/&/gi;
$pageLink =~ m/page=(.+)/g;
print $q->redirect(-url => $1);
exit;
}

auf jeden Fall danke für die zahlreichen beiträge ;-)


ralf
--
ich bin root, ich darf das!
<< |< 1 2 >| >> 17 Einträge, 2 Seiten



View all threads created 2003-09-09 14:46.