#!/usr/bin/perl require 'common.pl'; use CGI qw/:standard/; use locale; read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); @pairs = split(/&/, $buffer); foreach $pair (@pairs) { local($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $value =~ s///g; $in{$name} = $value; } @cookieArray=split ("; ",$ENV{'HTTP_COOKIE'}); my $cookieName;my $cookieValue; %cookieHash; foreach (@cookieArray){ ($cookieName,$cookieValue)=split("=",$_); $cookieHash{$cookieName}=$cookieValue; } if ($ENV{'QUERY_STRING'} ne '') { @qstr = split (/=/,$ENV{'QUERY_STRING'}); $command = $qstr[0]; $value = $qstr[1]; $value =~ s/[\x00-\x20<>\|;\(\)\$^\+!\^\[\]\?\"\'\`]//g; if ($command eq "error"){$error=1;&displayDefault;} else {&displayDefault;} } else{ if ($in{'input'}) {&parsecommand;} else {&displayDefault;} } sub displayDefault(){ print "Content-type: text/html\n\n"; print <<"EOF"; \n
\nСлева от вас стоит большой красный шкаф с книгами.
Стена по левую сторону от шкафа украшена фотографиями автора страницы и его друзей.
По правую сторону от шкафа стоит письменный стол,на котором разбросаны записки.
Рядом со столом прибиты две полки.На верхней поставлено в ряд несколько дискет.На стене виден выключатель.
Команда не распознана.
";$error=0;} print "