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):
- perldoc CGI
- perldoc perlop (vor allem 'Quote and Quote-like Operators')
- Dokumentation zu mod_perl http://perl.apache.org/guide/
Grüße
Klaus