#!/usr/bin/perl use strict; use warnings; use CGI qw( :all ); use CGI::Carp qw(fatalsToBrowser warningsToBrowser); use Tie::File; # Initialisierung ################## my $cgi = new CGI; my %params = $cgi->Vars(); my $file = '/SAN/content/cgi-bin/links'; my $save_error = ""; my $i = 0; my $k = 0; # Link speichern ################# if ( defined $params{write} && $params{write} eq "true" ) { # $params{text} =~ s/\r\n/
/sg; if (! -f $file ) { &create_linklist; } else { if ( $params{url} =~ /^http:\/\/.*$/ ) { open ( D, '>>', $file ) or die "Could not save data. $!"; print D "#" x80, "\nLINK: $params{url}\nTEXT: $params{text}\n"; close D; } else { $save_error = "

Bitte geben Sie den kompletten URL an, sonst kann "; $save_error .= "Ihr Link nicht gespeichert werden.
Beispiel: "; $save_error .= "http://ihr.neuer.link.com/

"; } } } elsif(defined $params{action} and $params{action} eq 'delete'){ delete_link($params{link}); } # Links laden ############## my ( @data, @links, @texts ); if (! -f $file ) { &create_linklist; } else { open ( F, '<', $file ) || die "Could not open $file. $!"; @data = grep { /^[^#]/ } ; close F; $i = $k = 0; foreach ( @data ) { chomp ( $_ ); if ( $_ =~ /^LINK:\s/ ) { $_ =~ s/^LINK:\s//; $links[$i] = $_; $i++; } else { $_ =~ s/^TEXT:\s//; $texts[$k] = $_; $k++; } } } # Dokument ausgeben #################### my $author = "Andre Hornig"; print $cgi->header(), $cgi->start_html( -title => "Linkit - Eine kleine Favoritenliste.", -bgcolor => "#99ccff", 'Linkit' ), $cgi->h1('Linkit'), $cgi->p({-style => 'color:red'}, "Verfasst von: ", $cgi->i($author)), $cgi->hr({-noshade => undef, -size => '1'}), $cgi->p('Eine kleine Favoritenliste'); $i = 0; foreach ( @links ) { print qq~
~; print $cgi->p( {-style => "margin:5px;"}, $i+1, ") ", $cgi->a( {-href => $_}, $texts[$i] ) ); $i++; } print << "EOF";

Neuen Link eintragen

$save_error

Link:

Beschreibung:

EOF $cgi->end_html(); sub delete_link{ my ($link_text) = @_; tie my @array,'Tie::File',$file or die $!; my ($index) = grep{$array[$_] =~ /TEXT:\s$link_text/}(0..scalar(@array)-1); @array[$index-2..$index] = ('') x 3; untie @array; }