Avatar billede phpnoob06 Nybegynder
08. juni 2004 - 22:15 Der er 1 løsning

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>
Avatar billede phpnoob06 Nybegynder
09. juni 2004 - 15:15 #1
Lukker og åbner et nyt spørgsmål. Grunden til at jeg allerede lukker er, at jeg godt kan se at det virker lidt forvirrende når man kommer ind på mit spørgsmål grundet den lange kode.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester