marypearson Posted October 14, 2009 Share Posted October 14, 2009 First of all, thanks very much for providing this forum. It is very much appreciated! My son-in-law created a php script for my website about 10 years ago to show pictures like a manual slideshow, and it worked fine until we moved to a new server. Now the first pic shows a . , the second shows .. , and the third shows the first pic. He told me to add a # before @files in the #remove the .. and . directories and it should remove the dots but it does not. He can't think of any other suggestions. The full code is as follows: #!/usr/bin/perl #this script will act as a type of slide show use CGI; if(CGI::param('directory') eq undef) { print CGI::header(); open(F, "pictures.txt"); chop(@directories = <F>); close(F); foreach (@directories) { my($pDirectory, $title) = split(/::/); my($hrefTitle) = $title; $pDirectory = $pDirectory; #remove the spaces $pDirectory =~ s/ /%20/g; $hrefTitle =~ s/ /%20/g; print " <A HREF=\"/cgi-bin/pics.pl?directory=$pDirectory&title=$hrefTitle\">$title</A><BR>"; } } else { #variables my($serverRoot) = "/home/ma3ry/christiangays.com"; my($directory) = "/" . CGI::param('directory'); my($i) = 0; my($max) = 0; my(@files) = (); $i = CGI::param('picNum') unless(CGI::param('picNum') == undef); #open the directory if(opendir(DIR, "$serverRoot/$directory")) { #read in the contents of the directory my(@files) = readdir(DIR); #remove the .. and . directories #@files = splice(@files, 2); #sort the files @files = sort(@files); #find out how many pics there are my($max) = @files *1; #build the page &createPage($directory, $files[$i], $i, $max, CGI::param('directory'), CGI::param('title')); #close the directory closedir(DIR); } else { #directory is not found print "Content-type: text/html\n\n"; print "Couldn't open directory $directory!\n\n"; } } exit(0); sub createPage { my($directory) = shift; my($picName) = shift; my($i) = shift; my($max) = shift; my($hrefDirectory) = shift; my($title) = shift; my($j) = $i - 1; $i++; print "Content-type: text/html\n\n"; print (<<HTML); <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML LANG="en"> <HEAD> <meta http-equiv="Content-Language" content="en-us"> <TITLE></TITLE> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-"> <META NAME="generator" CONTENT="Jeff Berwick OR A PROGRAM WRITTEN BY HIM"> <META NAME="AUTHOR" CONTENT="Jeff Berwick"> <LINK REL="STYLESHEET" TYPE="text/css" HREF="/css.css"> </HEAD> <BODY> <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="LAYOUT" width="100%"> <TR> <TD> <img src="/images/blank.gif" width="10" height="1" alt="" border="0"> </td> <TD class="yellow"> <img src="/images/blank.gif" width="15" height="1" alt="" border="0"> </td> <td class="yellow2"> <BR><BR><BR> HTML #replace the spaces $title =~ s/ /%20/g; if($j >= 0) { print "<a href=\"/cgi-bin/pics.pl?directory=$hrefDirectory&title=$title&picNum=$j\">Previous</a><BR><BR>\n"; } else { print "previous<BR><BR>\n"; } if($i - 10 > 0) { print "<a href=\"/cgi-bin/pics.pl?directory=$hrefDirectory&title=$title&picNum=", $i - 11, "\">Jump back<BR> 10 pictures</a><BR><BR>\n"; } else { print "Jump back<BR> 10 pictures<BR><BR>\n"; } if($i - 1 != 0) { print "<a href=\"/cgi-bin/pics.pl?directory=$hrefDirectory&title=$title&picNum=0\">Start</a>\n"; } else { print "start\n"; } #put the spaces back in $title =~ s/%20/ /g; print(<<HTML); <BR><BR> <BR><BR> <a href="/pics.shtml">Return to pictures list</a> </td> <td class="yellow"> <H1 class="center">$title</H1> <P class="main2"> You are viewing picture $i of $max </P> <P class="main2"> <img src="$directory/$picName" alt="$picName" border="0"> </P> <BR><BR> </td> <td class="yellow3"> <BR><BR><BR> HTML #drop the extra one off the end $max--; #take out the spaces $title =~ s/ /%20/g; if($i <= $max) { print "<a href=\"/cgi-bin/pics.pl?directory=$hrefDirectory&title=$title&picNum=$i\">Next</a><BR><BR>\n"; } else { print "next<BR><BR>\n"; } if($i <= $max - 10) { print "<a href=\"/cgi-bin/pics.pl?directory=$hrefDirectory&title=$title&picNum=", $i + 9, "\">Jump ahead<BR> 10 pictures</a><BR><BR>\n"; } else { print "Jump ahead<BR> 10 pictures<BR><BR>\n"; } if($i <= $max) { print "<a href=\"/cgi-bin/pics.pl?directory=$hrefDirectory&title=$title&picNum=", $max, "\">End</a>\n"; } else { print "end\n"; } print (<<HTML); <BR><BR> <BR><BR> <a href="/index.shtml">Return to ChristianGays.com</a> </td> <TD class="yellow"> <img src="/images/blank.gif" width="15" height="1" alt="" border="0"> </td> <TD> <img src="/images/blank.gif" width="10" height="1" alt="" border="0"> </td> </tr> </table> </BODY> </HTML> HTML } Link to comment https://forums.phpfreaks.com/topic/177623-and-appearing-instead-of-pictures/ Share on other sites More sharing options...
trq Posted October 14, 2009 Share Posted October 14, 2009 That is indeed a Perl script, not PHP. Link to comment https://forums.phpfreaks.com/topic/177623-and-appearing-instead-of-pictures/#findComment-936575 Share on other sites More sharing options...
marypearson Posted October 15, 2009 Author Share Posted October 15, 2009 Thank you for your help. The problem has been resolved. Link to comment https://forums.phpfreaks.com/topic/177623-and-appearing-instead-of-pictures/#findComment-937102 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.