]> git.xolatile.top Git - emil-3chen.org.git/commitdiff
--
authorEmil Williams <emilemilemil@cock.li>
Thu, 15 May 2025 23:59:47 +0000 (17:59 -0600)
committerEmil Williams <emilemilemil@cock.li>
Thu, 15 May 2025 23:59:47 +0000 (17:59 -0600)
perl/Triple.pm

index 6a25d0d69ef8fa7b726a62c11b470c672a8aa535..cbb76d9eb17e033b8ad04dfd0b9f0b27c30e7204 100644 (file)
@@ -9,6 +9,7 @@ use Data::Dumper;
 use CGI;
 use FCGI;
 use Template;
+use URI::Escape;
 
 # Internal
 use Secrets;
@@ -38,6 +39,15 @@ our $template = Template->new({INCLUDE_PATH => 'tt'});
 
 sub Triple::main {
 
+    sub parse_post {
+        my %form;
+        for my $pair (split /&/, $_[0]) {
+            my ($key, $val) = split /=/, $pair, 2;
+            $form{uri_unescape($key)} = uri_unescape($val // '');
+        }
+        return %form;
+    }
+
     my ($sitename, $version) = init();
     my $request = FCGI::Request();
 
@@ -55,9 +65,10 @@ sub Triple::main {
         my $method         = $ENV{'REQUEST_METHOD'} || '';
         my $content_length = $ENV{'CONTENT_LENGTH'} || 0;
         my $content_type   = $ENV{'CONTENT_TYPE'} || '';
+        my $body           = '';
         my $status         = '';
         my $location;
-        my $body = '';
+
         if ($method eq 'POST') {
             syslog("info", "something like posting has occurred");
             if ($content_length > 0) {
@@ -69,6 +80,8 @@ sub Triple::main {
             print $fh "\r\n";
             close $fh;
 
+            %post = parse_post($body);
+
             $status   = '302 Found';
             $location = $vars->{"uri"};
         }