#!/bin/perl -wT # (c) 2019 Dennis Eriksen use strict; use warnings; use CGI; use DBI; my $q = CGI->new; # create CGI object # create database handler my $dbh = DBI->connect("dbi:Pg:dbname=purl") or die $DBI::errstr; # set the short my $short = scalar $ENV{REQUEST_URI}; $short =~ s/^\///; $short =~ s/^\+//; # If short starts with +, remove it. # SQL Query my $query = qq(SELECT shorts.url FROM shorts WHERE shorts.short = ?;); # run the query, and do an if on it if (my $url = $dbh->selectrow_array($query, undef, $short)) { $query = qq(UPDATE shorts SET count = count + 1, last_visited = now() WHERE short = ?;); my $sth = $dbh->prepare( $query ); my $rv = $sth->execute( $short ) or die $sth->errstr; print $q->redirect($url); } else { print $q->header(-status=>'404 Not found',-charset=>'utf-8'); print < 404 Not Found

404 Not Found


nginx
notfound } # disconnect from database $dbh->disconnect();