#!/usr/local/bin/perl $POST_MAX = 5000; alarm(30); use CGI::Carp qw(fatalsToBrowser); use CGI qw(:standard); use DBI; ## ## Internetprogrammering 3, uppgift 7, gesällprovet ## Henrik Johansson, DS80, vt2002 ## 16/4 - 2002 if(param) { $userId = param('id'); $user = param('id'); #kontrollerar att det finns användare med angivet användarnamn och lösenord $dbh = connect_db(); $userId = $dbh->quote($userId); $sql = "SELECT * FROM bookmarks WHERE userId = $userId"; $sth = $dbh->prepare($sql); $sth->execute(); $nodes; while(@dbrow = $sth->fetchrow_array) { $nodes{$dbrow[3]} = { BOOKMARK => $dbrow[0], NAME => $dbrow[1], URL => $dbrow[2], ID => $dbrow[3], NEXTID => $dbrow[4], PARENTID => $dbrow[5], USERID => $dbrow[6], }; } $dbh->disconnect; $usedlibs; $depth = 2; print header('text/html'); $dynamic = '
'; if($nodes{root}{URL} =~ m/expanded/) { $dynamic .= 'expanded rootlibrary'; $dynamic .= $nodes{root}{NAME}; $dynamic .= '
'; $dynamic .= '
'; } else { $dynamic .= 'unexpanded rootlibrary'; $dynamic .= $nodes{root}{NAME}; $dynamic .= '
'; $dynamic .= '
'; } $usedlibs{root} = 2; $nextId = $nodes{root}{NEXTID}; while($nextId) { $mydepth = $usedlibs{ $nodes{$nextId}{PARENTID} }; while($depth > $mydepth) { $dynamic .= '
'; $depth--; } if($nodes{$nextId}{BOOKMARK} == 0) { $dynamic .= '
'; $dynamic .= '
'; if($nodes{$nextId}{URL} =~ m/expanded/) { $dynamic .= 'expanded library'; $dynamic .= $nodes{$nextId}{NAME}; $dynamic .= '
'; $dynamic .= '
'; } else { $dynamic .= 'unexpanded library'; $dynamic .= $nodes{$nextId}{NAME}; $dynamic .= '
'; $dynamic .= '
'; } $depth +=2; $usedlibs{$nextId} = $depth; } else { $dynamic .= '
'; $dynamic .= $nodes{$nextId}{NAME}; $dynamic .= ''; $dynamic .= '' . $nodes{$nextId}{URL} . ''; $dynamic .= ''; $dynamic .= '
'; } $nextId = $nodes{$nextId}{NEXTID}; } while($depth > 1) { $depth--; $dynamic .= '
'; } print_page($dynamic, $user); } #Läser in och delar upp sidans template sub print_page{ my $bookmarks = $_[0]; my $user = $_[1]; my $file = "./templates/u7.template"; open TEMPLATE, "< $file" or die "Kunde inte öppna templatefilen: $file. $!"; while($row =