PDA

View Full Version : Upload script med nyhets funktion


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") &#0124; &#0124; die $!;
@main = <MAIN>;
close(MAIN);

open(MAIN,">$htmldir") &#0124; &#0124; 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/\&/\&amp\;/g;
$descr =~ s/"/\&quot\;/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

Coercri
2000-05-23, 10:08
Bah!! Jag glömde CHMOD:a html filen till 666.

Det är kul å se hur vissa typer av script måste ha exakt rätt CHMOD.

Det funkade inte ens med 777 ;)

Nu återstår bara att se till att ingen otillbörlig får tillgång till skicka funktionen.

Skulle uppskatta lite hjälp på det området.

------------------
MVH / Coercri

Coercri
2000-05-23, 10:14
hmm, jag satt här och funderade på.. skulle ju va kul om man kunde fixa nån delete funktion till scriptet så att man kan ta bort ett resultat om man vill... eller kanske arkivera.

Jag kan inte hitta någon kod som skulle kunna detta så är det någon som känner att WOW så ska det ju vara, så SNÄLLA!! skriv och berätta för mig ;)

------------------
MVH / Coercri

Csson
2000-05-23, 11:12
Jag har använt NewsPro (http://amphibian.gagames.com/newspro/) sen i vintras. Det klarar allt det där, så om det börjar bli ont om tid så kan det vara värt att kolla på medan du skriver klart ditt egna script :).

Tillägg: Såg just ditt inlägg i Kolla min hemsida... Varför vill du byta?

/Csson

[Redigerat av Csson den 23 maj 2000]

Coercri
2000-05-23, 11:22
Hmmz... jag vill väl egentligen inte byta... men mitt webhotell klarar inte SSI som det är nu (kanske får det idag för en liten summa pengar)

Men går det skicka upp html filer genom newspro ?

Jag använder newspro.. det är helt suvve, men de ska kunna skicka upp resultat som presenteras snyggt på en sida.

------------------
MVH / Coercri

Coercri
2000-05-23, 11:24
Dessutom så är det ju alltid kul å ha nå eget på sin sida :e

Csson
2000-05-23, 11:38
SSI borde vara standard på webhotell. Har du kollat på Cgi-resources (http://cgi.resourceindex.com/Programs_and_Scripts/Perl/File_Uploading/)? Finns några färdiga upload-script där, har dock inte använt något så jag vet inte hur bra de är.

Dessutom så är det ju alltid kul å ha nå eget på sin sida.

Jepp :). En variant som jag har använt är att kolla på färdiga script för att försöka förstå hur de har löst sånt man har problem med.

/Csson

Coercri
2000-05-23, 11:51
Nu funkar SSI på kontot :e. så kolla gärna in på http://www.wexiobridgen.com igen.


[Redigerat av Coercri den 23 maj 2000]

Hazze
2000-05-24, 19:30
Ssi är allt bra det :e

------------------
//
<title>Hazze</title