#!/usr/bin/perl print("Content-Type: text/html\n\n"); #Es llegeix la cadena URL $| = 1; read(STDIN, $buffer, $ENV{'CONTENT_LENGHT'}); @parelles=split(/&/, $buffer); foreach $par (@parelles) { ($nom, $valor)= split(/=/, $par); $valor =~ tr/+/ /; $valor =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $contingut{$nom}=$valor; } ### Declaració de variables $pghost = 'localhost'; $pgport = '5432'; $pgoptions = ''; $pgtty = ''; $dbname = 'proba'; $trace = '/tmp/pgtrace.out'; $DEBUG = 1; $correcte = 1; use Pg; ### Connexió a la base de dades $conn=PQsetdb($pghost,$pgport,$pgoptions,$pgtty,$dbname); cmp_eq(PGRES_CONNECTION_OK, PQstatus($conn)); ### Debuger if ($DEBUG) { open(TRACE, ">$trace") || die "can not open $trace: $!"; PQtrace($conn, TRACE); } ### Insertem les dades $res=exe(PGRES_COMMAND_OK,"insert into dada values(\'$contingut{'nom'}\',\'$contingut{'cog1'}\', \'$contingut{'cog2'}\',\'$contingut{'edat'}\',\'$contingut{'sexe'}\')"); cmp_ne(0,PQoidStatus($res)); ### Debuger if ($DEBUG) { close(TRACE) || die "bad TRACE: $!"; PQuntrace($conn); } ### Desconnexió de la base de dades PQfinish($conn); if ($correcte==1){ print <Què vols fer? Dades Insertades

Què vols fer?


Insertar FER } else { print <Dades no insertades

Dades no insertades

GRAN CAGADA

Què vols fer?

Insertar
CAGADA } ### funcions utilitzades sub cmp_eq { my $cmp = shift; my $ret = shift; if ("$cmp" eq "$ret") { $correcte = 1; } else { $correcte = 0; } } sub cmp_ne { my $cmp = shift; my $ret = shift; if ("$cmp" ne "$ret") { $correcte = 1; } else { $correcte = 0; } } sub exe { my $cmp = shift; my $cmd = shift; my $result; my $status; $result = PQexec($conn, $cmd); $status = PQresultStatus($result); if ("$cmp" eq "$status") { $correcte = 1; } else { $correcte = 0; print TRACE PQerrorMessage($conn); } return $result; }