Coercri
2000-05-23, 09:52
Jag är webmaster åt en bridgeklubb.
De ska enkelt kunna skicka ut nya resultat till servern och samtidigt lägga en länk på en sida där länkar till alla resultaten ligger.
Jag har testat lite olika saker och detta ligger närmast det jag är ute efter men är ändå inte riktigt *perfekt*.
#!/usr/bin/perl
$basedir = "/home/sites/mysite/web/resultat";
$htmldir = "/home/sites/mysite/web/resultat.htm";
$picurl = "http://www.mysite.com/resultat/";
$back = "http://www.mysite.com/resultat.htm";
$allowall = "yes";
$theext = ".htm";
$followup = "0";
use CGI;
$onnum = 1;
while ($onnum != 11) {
my $req = new CGI;
my $file = $req->param("FILE$onnum");
$descr = $req->param("descr");
$linkname = $req->param("linkname");
$persname = $req->param("persname");
$persemail = $req->param("persemail");
if ($file ne "") {
my $fileName = $file;
$fileName =~ s!^.*(\\|\/)!!;
$newmain = $fileName;
if ($allowall ne "yes") {
if (lc(substr($newmain,length($newmain) - 4,4)) ne $theext){
$filenotgood = "yes";
}
}
if ($filenotgood ne "yes") {
open (OUTFILE, ">$basedir/$fileName");
print "$basedir/$fileName<br>";
while (my $bytesread = read($file, my $buffer, 1024)) {
print OUTFILE $buffer;
}
close (OUTFILE);
}
}
$onnum++;
}
open(MAIN,"$htmldir") | | die $!;
@main = <MAIN>;
close(MAIN);
open(MAIN,">$htmldir") | | die $!;
if ($followup == 0) {
foreach $main_line (@main) {
if ($main_line =~ /<!--begin-->/) {
print MAIN "<!--begin-->\n";
print MAIN "<table width=548 border=1 cellspacing=0 cellpadding=0 bordercolor=#000000>\n";
print MAIN " <tr>\n";
print MAIN " <td width=18% bgcolor=#666699><div align=center fontcolor=white alink=black vlink=black link=black><a href=mailto:$persemail>$persname</a></font></div></td>\n";
print MAIN " <td width=19% bgcolor=#9999CC><div align=center fontcolor=Black alink=white vlink=white link=white><a href=$picurl/$newmain>$linkname</a></font></div></td>\n";
print MAIN " <td width=63% bgcolor=#666699><div align=center fontcolor=white alink=black vlink=black link=black>$descr</font></div></td>\n";
print MAIN " </tr>\n";
print MAIN "</table>\n";
}
else {
print MAIN "$main_line";
}
}
close(MAIN);
}
print "Content-type: text/html\n";
print "Location:$back\n\n";
if ($FORM{'descr'} =~ /.*\@.*\..*/) {
$descr = "$FORM{'descr'}";
$descr =~ s/\&/\&\;/g;
$descr =~ s/"/\"\;/g;
}
För det första får jag inte scriptet att funka rätt, sen om man nu lyckas få det att funka så måste jag lägga till nån login funktion så att inte vem som helst kan skicka filer till server :)
Vore tacksam för lite förslag och kommentarer.
------------------
MVH / Coercri
De ska enkelt kunna skicka ut nya resultat till servern och samtidigt lägga en länk på en sida där länkar till alla resultaten ligger.
Jag har testat lite olika saker och detta ligger närmast det jag är ute efter men är ändå inte riktigt *perfekt*.
#!/usr/bin/perl
$basedir = "/home/sites/mysite/web/resultat";
$htmldir = "/home/sites/mysite/web/resultat.htm";
$picurl = "http://www.mysite.com/resultat/";
$back = "http://www.mysite.com/resultat.htm";
$allowall = "yes";
$theext = ".htm";
$followup = "0";
use CGI;
$onnum = 1;
while ($onnum != 11) {
my $req = new CGI;
my $file = $req->param("FILE$onnum");
$descr = $req->param("descr");
$linkname = $req->param("linkname");
$persname = $req->param("persname");
$persemail = $req->param("persemail");
if ($file ne "") {
my $fileName = $file;
$fileName =~ s!^.*(\\|\/)!!;
$newmain = $fileName;
if ($allowall ne "yes") {
if (lc(substr($newmain,length($newmain) - 4,4)) ne $theext){
$filenotgood = "yes";
}
}
if ($filenotgood ne "yes") {
open (OUTFILE, ">$basedir/$fileName");
print "$basedir/$fileName<br>";
while (my $bytesread = read($file, my $buffer, 1024)) {
print OUTFILE $buffer;
}
close (OUTFILE);
}
}
$onnum++;
}
open(MAIN,"$htmldir") | | die $!;
@main = <MAIN>;
close(MAIN);
open(MAIN,">$htmldir") | | die $!;
if ($followup == 0) {
foreach $main_line (@main) {
if ($main_line =~ /<!--begin-->/) {
print MAIN "<!--begin-->\n";
print MAIN "<table width=548 border=1 cellspacing=0 cellpadding=0 bordercolor=#000000>\n";
print MAIN " <tr>\n";
print MAIN " <td width=18% bgcolor=#666699><div align=center fontcolor=white alink=black vlink=black link=black><a href=mailto:$persemail>$persname</a></font></div></td>\n";
print MAIN " <td width=19% bgcolor=#9999CC><div align=center fontcolor=Black alink=white vlink=white link=white><a href=$picurl/$newmain>$linkname</a></font></div></td>\n";
print MAIN " <td width=63% bgcolor=#666699><div align=center fontcolor=white alink=black vlink=black link=black>$descr</font></div></td>\n";
print MAIN " </tr>\n";
print MAIN "</table>\n";
}
else {
print MAIN "$main_line";
}
}
close(MAIN);
}
print "Content-type: text/html\n";
print "Location:$back\n\n";
if ($FORM{'descr'} =~ /.*\@.*\..*/) {
$descr = "$FORM{'descr'}";
$descr =~ s/\&/\&\;/g;
$descr =~ s/"/\"\;/g;
}
För det första får jag inte scriptet att funka rätt, sen om man nu lyckas få det att funka så måste jag lägga till nån login funktion så att inte vem som helst kan skicka filer till server :)
Vore tacksam för lite förslag och kommentarer.
------------------
MVH / Coercri