Klaus Mock: GIbt es in Perl sowas wie urlencode in PHP(GET-Problem)

Beitrag lesen

Hallo,

Ich denke daß da Perl die Mitarbeit verweigert, weil
use CGI qw(param);

aussagt, daß Du nur die Funktion param brauchen wirst
und

my $query = new CGI;
print $query->escape('Preis=$Preis&Beschreibung=$Beschreibung');

aber ersten das Modul im Objektorientierten Ansatz und dazu noch die Methode escape verwenden will

Außerdem würde

print $query->escape('Preis=$Preis&Beschreibung=$Beschreibung');

Preis%3D%24Preis%26Beschreibung%3D%24Beschreibung
als Ergebnis bringen, da ja der ganze String 'escaped' wird, Du aber wahrscheinlich
Preis=1234&Beschreibung=abc%20edef%20dshfdskhs
erwartest.
Das ist jetzt mal eine Vermutung, falls Du den Error-Log Deines Webservers inspizieren würdest, würdest Du auch entsprechende Hinweise finden.

warum nicht:

#!/usr/bin/perl -w

use strict; # sollte in keinem guten Script fehlen
use CGI;

my $query = new CGI;
print "Content-type: text/html\n\n" ;

my $Beschreibung = $query->escape($query->param('Beschreibung'));
my $Preis = $query->escape($query->param('Preis'));

print '<html>';
print '<head>';
print '<meta http-equiv="refresh" content="0;URL=http://217.234.346.185/session.php?';
print "Preis=$Preis&Beschreibung=$Beschreibung";
print '">';

exit ;

(Ich weiß könnte noch etwas besser sein, aber ich wollte nicht zu weit vom geposteten Code weg)

Literaturhinweise (unvollständig):

Grüße
  Klaus