Sprawdzone... po stronie Perl'a - apache dostaje asd zamiast a.sd ale rozwiazanie jest banalne i zaznaczylem w kodzie na czerwono... Przy okazji skrocilem nieco kod...
Kod:
use LWP::UserAgent;
my $ua = new LWP::UserAgent;
my $response= $ua->post('http://localhost/file.cgi', {
'a.sd' => 'value1',
param2 => 'value2',
});
print $response->content;
Do sprawdzenia co przekazuje Perl uzylem innego skryptu ktory odpalam jako CGI na serwerku
Kod:
#!/usr/bin/perl
use CGI;
$cgi = new CGI;
print "Content-type: text/html\n\n";
print "Zmienne = ", join (' ',$cgi->param), "\n\n";
i to zwraca mi
$ ./post.pl
Zmienne = param2 a.sd
Jesli wysylajac POST ze skryptu w Perlu nie dam nazwy tej zmiennej w cudzyslowiach to Apache zwroci nam dalej asd - bez kropki... Dodanie pojedynczych cudzyslowiow zalatwia sprawe - Perl przekazuje na pewno dobrze, po prostu doslownie jak jest, Apache tez widzi roznice i pokazuje dalej ze dostal poprawnie a.sd i jak widac, przekazuje to do skryptow...
JEDNAK...
Po stronie PHP nadal nie dziala - nie zwraca nic, zupelnie tak jakby PHP nie widzialo zmiennej. Po prostu PHP nie radzi sobie (przynajmniej u mnie) z odczytaniem zmiennej majacej w nazwie kropke. Jak widac wina lezy ewidentnie po stronie php a nie apache'a ani perla.