PHP script virker kun til tider
Hej,Jeg har et billedscript, der viser thumbs af billederne og så kan man klikke på dem. Scriptet henter thumbs'ne fra en mappe og giver hvert billede et nummer. På den måde kan man "rulle frem og tilbage". Desværre sker der det, at nogen gange når man klikker på et billede for at se det stort, får man kun det allerførste billede at se (stort). Og det er ligegyldig hvilket billede man klikker på. Det er lidt irriterende.
Nogen der kan hjælpe med at løse problemet?
På forhånd mange tak!
Her er der lidt kode:
image.php (Visser en masse små billeder som man kan klikke på for at se dem store):
<?php
$debug=false;
if($billede==ForsteMappe){
$pagetitle = "Mappe 1 overskrift";
$linkname = "billeder/MappeMedStoreBillederI_1";
$thumbname = "billeder/MappeMedSmaaBillederI_1";
$linkhome = "HjemLink";
}elseif($billede==AndenMappe){
$pagetitle = "Mappe 2 Overskrift";
$linkname = "billeder/MappeMedStoreBillederI2";
$thumbname = "billeder/MappeMedSmåBillederI2";
$linkhome = "HjemLink";
}
$dir = $linkname;
$d = dir($dir);
while (false !== ($entry = $d->read())) {
if (is_file($dir.$entry)) {
if (preg_match("/(jp(e)?g|gif|bmp|png)$/i", $entry)) {
$data[] = $entry;
}
}
}
$d->close();
$r = rand(0, count($data)-1);
?>
<?
$taeller=-1;
$index_info = "<font size=2></font>";
$horizontalpics = 5;
$debug=false;
$thumbdir = getcwd()."/".$thumbname;
$file_array = i_get_files($thumbdir);
if(is_array($file_array)) {
echo "<h1>$pagetitle</h1>
<table width=100% border=0 cellspacing=0 cellpadding=0>
<tr>
<td>
<div align=center>
<h4>$copyright</h4>
</div>
</td>
</tr>
<tr>
<td>
<table width=100% border=0 cellspacing=0 cellpadding=0>
<tr>
<td><table width=100%><tr>";
$counter = 0;
$rowcount = 0;
sort($file_array);
foreach ($file_array as $file) {
if (preg_match("/(jp(e)?g|gif|bmp|png)$/i", $file)) {
if ($counter == 0 or $counter == $horizontalpics) $counter=1 ;
if ($counter == 1) {
if ($rowcount == 4) {
echo "</tr></table><table width=100%><tr>
<td><hr>
<div align=center>[<a href=$linkhome> til Oversigten</a>] - [<a href=#top>Tilbage til toppen</a>]</div><hr>
</td></tr><table width=100%>";
$rowcount = 1;
$counter=1;
}
echo "</tr><tr>";
++$rowcount;
}
++$counter;
$my_link = $linkname.$file;
$my_thumb = $thumbname.$file;
$taeller++;
?>
<td><div align=center><a href="java script: void(null);" onClick="window.open('imageopen.php?folder=<?=$my_link?>&taeller=<?=$taeller?>&billede2=<?=$linkname?>','VisBillede','top=0,left=0,width=600,height=400,maxheight=400,toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1');"><img src=<?=$my_thumb?> alt=<?=$file?> border=0></a></div></td>
<?
}
}
}
echo "</tr></table></td>
</tr>
</table>
</td>
</tr>
</table>";
function i_get_files($dirname) {
if($dirname[strlen($dirname)-1] != "/") $dirname.="/";
static $result_array = array();
$mode = fileperms($dirname);
if(($mode & 0x4000) == 0x4000 && ($mode & 0x00004) == 0x00004) {
chdir($dirname);
$handle = @opendir($dirname);
}
if(isset($handle)) {
while ($file = readdir($handle)) {
if($file=='.'||$file=='..') continue;
if(is_dir($dirname.$file) == false) $result_array[] = $file;
}
closedir($handle);
}
return $result_array;
}
?>
</body>
</html>
imageopen (Viser de store billeder):
<?
if($piletast=="nej"){
$besked="<i>Brug piletasterne, det er lettere</i>";
}else{
$besked="";
}
include("include/config.php");
$raekker=mysql_query("SELECT * FROM billeder WHERE navn='$folder'") or die(mysql_error());
if (mysql_num_rows($raekker) > 0) {
mysql_query("UPDATE billeder SET downloads=downloads+1 WHERE navn='$folder'") or die(mysql_error());
}else{
mysql_query("INSERT INTO billeder (navn, downloads) values ('$folder','1')") or die(mysql_error());
}
$mappe=$billede2;
function list_dir($mappe) {
if($mappe[strlen($mappe)-1]!='')
$mappe.='';
static $result_array=array();
$handle=opendir($mappe);
while ($file = readdir($handle)) {
if (preg_match("/(jp(e)?g|gif|bmp|png)$/i", $file)) {
if($file=='.'||$file=='..')
continue;
if(is_dir($mappe.$file))
list_dir($mappe.$file.'\\');
else
$result_array[]=$mappe.$file;
}
}
closedir($handle);
sort($result_array);
return $result_array;
}
function images_left($mappe, $current_image) {
$total_images = list_dir($mappe) ;
$total_images = count($total_images) ;
$left = $total_images - $current_image ;
return $left ;
}
if (!$taeller) {
$taeller = 0 ;
setcookie("taeller", 0, time() + 0) ;
}
if ($page == "next") {
$taeller = $taeller + 1 ;
} else if ($page == "back") {
$taeller = $taeller - 1 ;
}
?>
<html>
<head>
<link rel="stylesheet" type="text/css" href="include/style.css">
<title>Billede</title>
<script language='javascript' src='include/resize2.js'></script>
</head>
<body onload='VisBillede();' topmargin=0 bottommargin=0 leftmargin=0 rightmargin=0 scroll="auto">
<?php
if ($mappe) {
$antal_billeder = list_dir($mappe) ;
$antal = count($antal_billeder) ;
$billede = $antal_billeder[$taeller] ;
$neuetaeller=$taeller+1;
echo $neuetaeller."/".$antal."<br>";
echo "<img src='$billede' alt='' NAME=\"pic\"><br>" ;
}
echo"<img src=\"pic/venstre.gif\">";
if($taeller==0){
echo "Forrige " ;
}else{
echo "<a href='imageopen.php?mappe=" . $mappe . "&page=back&billede2=$billede2&taeller=$taeller&folder=$folder&piletast=nej'>Forrige</a>" ;
}
echo" | ";
if($antal==$taeller+1){
echo "Næste" ;
}else{
echo "<a href='imageopen.php?mappe=" . $mappe . "&page=next&billede2=$billede2&taeller=$taeller&folder=$folder&piletast=nej'>Næste</a>" ;
}
echo"<img src=\"pic/hojre.gif\"> $besked";
?>
<script>
function whereToGo() {
if (event.keyCode == 37) {
<?
if($taeller==0){
?>
{
alert('Dette er det første billede')
};
<?
}else{
?>
location.href = "<? echo"imageopen.php?mappe=".$mappe."&page=back&billede2=$billede2&taeller=$taeller&folder=$folder";?>";
<?
}
?>
event.cancelBubble = true;
event.keyCode = 0;
return false;
} else if (event.keyCode == 39) {
<?
if($antal==$taeller+1){
?>
{
alert('Dette er det sidste billede')
};
<?
}else{
?>
location.href = "<? echo"imageopen.php?mappe=".$mappe."&page=next&billede2=$billede2&taeller=$taeller&folder=$folder";?>";
<?
}
?>
event.cancelBubble = true;
event.keyCode = 0;
return false;
}
}
document.onkeydown = whereToGo;
</script>
</body>
</html>
