Avatar billede jazzy-jay Nybegynder
16. april 2002 - 01:23 Der er 44 kommentarer og
1 løsning

Fotoalbum

jeg står og skal bruge et billede galleri / fotoalbum

det skal indeholde disse funktioner

det skalle være brugbart via include("album.php");

hente .jpg-filer fra en angivet mappe
jeg tænkte noget i at hvis man nu skrev filnavn.php?mappe=venner&titel=Venner så ville scriptet vide at den skulle fange mappen venner og titlen være Venner selvfølgelig

den skal så også kunne beregne hvor mange billeder der er i mappen og skrive antallet og mens man bladre igennem billeder skal den opdatere således 1/x og næste billede 2/x osv osv...

selve udsendet er der ingen problemmer i der skal ikke være thumbnails den skal bare vise et billede af gangen over billedet skal antallet af billede og hvor man er nået til stå og lige under billedet skal der være frem og tilbage links

det var det
Avatar billede lequet Nybegynder
16. april 2002 - 03:13 #1
Jeg har lavet lidt her, resten må du enten selv rode med, eller lade andre hjælpe dig med, da jeg ikke lige kan overskue det på nuværende tidspunkt :)

Følgende er to funktioner, den første returnerer en liste over alle filer i en bestemt mappe, dette kan så tælles op, så du kan se hvor mange filer der er...

Den anden skulle gerne kunne bruges til at regne ud hvor mange billeder der er tilbage, du skal bare have den til på en eller anden måde at vide hvor mange billeder man er nået til...

Kort sagt er dette ikke et færdigt eksempel, men noget der kan/skal arbejdes videre med :)

<?php

function list_dir($mappe)
{
  if($dirname[strlen($dirname)-1]!='\\')
      $dirname.='\\';
  static $result_array=array(); 
  $handle=opendir($dirname);
  while ($file = readdir($handle)) {
    if($file=='.'||$file=='..')
      continue;
    if(is_dir($dirname.$file))
      list_dir($dirname.$file.'\\');
    else
      $result_array[]=$dirname.$file;
    }   
    closedir($handle);

    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 ;
}

?>

Denne kode viser så det billede som man har skrevet i URL'en, f.eks. hvis man skriver  filnavn.php?mappe=venner&titel=Venner vil den vise billedet Venner.jpg fra mappen venner... Den skriver også hvor mange billeder der er i mappen, så nu mangler der kun frem og tilbage knapperne, men det bliver vist ikke helt nemt, det vil jeg i hvert fald lige springe over :)

  <?php
    if (($mappe) && ($titel)) {
      $antal_billeder = list_dir($mappe) ;
      $antal = count($antal_billeder) ;
      echo $antal . " billeder i mappen<br>"
      $billede = $mappe . $titel . ".jpg" ;
      echo "<img src='$billede' alt=''><br>" ;
    }
  ?> 

Håber du kan bruge det til noget, og tilgiv mig for eventuelle tastefejl, det er jo lidt sent på natten :)
Avatar billede lequet Nybegynder
16. april 2002 - 03:16 #2
function list_dir($mappe)
{
  if($mappe[strlen($mappe)-1]!='\\')
      $mappe.='\\';
  static $result_array=array(); 
  $handle=opendir($mappe);
  while ($file = readdir($handle)) {
    if($file=='.'||$file=='..')
      continue;
    if(is_dir($mappe.$file))
      list_dir($mappe.$file.'\\');
    else
      $result_array[]=$mappe.$file;
    }   
    closedir($handle);

    return $result_array;   
}

Så lige at jeg havde lavet en meget grum fejl, den skulle være rettet, hvis du finder flere $dirname variabler i ovenstående funktion, venligst ret dem til $mappe :)
Avatar billede jazzy-jay Nybegynder
16. april 2002 - 03:56 #3
der ser sgu fint nok ud, men problemmet er bare at den skal ved at skrive filnavn.php?mappe=venner, skulle kunne vise alle billeder i mappen som men bladre rundt i via frem og tilbage også den onde tæller hehe

$titel er bare noget jeg skal bruge til at folk kan se hvor de er på siden
Avatar billede lequet Nybegynder
16. april 2002 - 07:00 #4
OK :) Lad os se om det kan lykkes for mig at bikse den tæller-ting sammen...

Øverst på din side skriver du

<?php
setcookie("taeller", 0, time() + 0) ;

if ($page == "next") {
  $taeller = $taeller + 1 ;
} else if ($page == "back") {
  $taeller = $taeller - 1 ;
}
?>

Og så laver vi lige lidt rettelser længere nede :)
?>


<?php
    if ($mappe) {
      $antal_billeder = list_dir($mappe) ;
      $antal = count($antal_billeder) ;
      echo $antal . " billeder i mappen<br>"
      $billede = $mappe . "/" . $antal_billeder[$taeller] ;
      echo "<img src='$billede' alt=''><br>" ;     
     
      echo "<a href='filnavn.php?mappe=" . $mappe . "&page=back'>Forrige</a>" ;

      echo "<a href='filnavn.php?mappe=" . $mappe . "&page=next'>Næste</a>" ;

    }
  ?> 

Så tror jeg det lykkedes :)
Avatar billede jazzy-jay Nybegynder
16. april 2002 - 07:33 #5
Nej ik helt, men du har fat i noget af det rigtige, den virker ik den der

så er der 25 point mere at score :P
Avatar billede lequet Nybegynder
16. april 2002 - 07:35 #6
Kommer den med nogen fejlmeldinger eller noget? Jeg er da sikkert kommet til at taste forkert et sted eller 2 :)
Avatar billede jazzy-jay Nybegynder
16. april 2002 - 07:40 #7
jeps, på linie 20 *g*
men du må lige skrive hele scriptet fra top til bund, så tester jeg den igen :)
damn, har sat oppe hele natten og leget med hjemmeside, det er længe siden jeg har nørdet så meget *rofl*

<?
if ($mood == "wasted" { Require("bed"); }
else { Require("coffee"); }
?>
Avatar billede lequet Nybegynder
16. april 2002 - 07:45 #8
Sådan, så skulle det vist være sat sammen, så håber jeg ikke manglen på kaffe har resulteret i for mange fejl :)

<?php

function list_dir($mappe)
{
  if($mappe[strlen($mappe)-1]!='\\')
      $mappe.='\\';
  static $result_array=array(); 
  $handle=opendir($mappe);
  while ($file = readdir($handle)) {
    if($file=='.'||$file=='..')
      continue;
    if(is_dir($mappe.$file))
      list_dir($mappe.$file.'\\');
    else
      $result_array[]=$mappe.$file;
    }   
    closedir($handle);

    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 ($page == "next") {
  $taeller = $taeller + 1 ;
} else if ($page == "back") {
  $taeller = $taeller - 1 ;
}
?>

<html>
<body>

<?php
    if ($mappe) {
      $antal_billeder = list_dir($mappe) ;
      $antal = count($antal_billeder) ;
      echo $antal . " billeder i mappen<br>" ;
      $billede = $mappe . "/" . $antal_billeder[$taeller] ;
      echo "<img src='$billede' alt=''><br>" ;     
     
      echo "<a href='filnavn.php?mappe=" . $mappe . "&page=back'>Forrige</a>" ;

      echo "<a href='filnavn.php?mappe=" . $mappe . "&page=next'>Næste</a>" ;

    }
  ?> 

</body>
</html>
Avatar billede jazzy-jay Nybegynder
16. april 2002 - 07:56 #9
Warning: OpenDir: No such file or directory (errno 2) in test.php on line 8

Warning: Supplied argument is not a valid Directory resource in test.php on line 9

Warning: Supplied argument is not a valid Directory resource in test.php on line 17
0 billeder i mappen

ForrigeNæste


jeg tror jeg sætter en kande mere over *g*
Avatar billede lequet Nybegynder
16. april 2002 - 08:02 #10
<?php

function list_dir($mappe)
{
  if($mappe[strlen($mappe)-1]!='\\')
      $mappe.='\\';
  static $result_array=array(); 
  $handle=opendir($mappe);
  while ($file = readdir($handle)) {
    if($file=='.'||$file=='..')
      continue;
    if(is_dir($mappe.$file))
      list_dir($mappe.$file.'\\');
    else
      $result_array[]=$mappe.$file;
    }   
    closedir($handle);

    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 ;
}

setcookie("taeller", 0, time() + 0) ;

if ($page == "next") {
  $taeller = $taeller + 1 ;
} else if ($page == "back") {
  $taeller = $taeller - 1 ;
}
?>

<html>
<body>

<?php
    if ($mappe) {
      $antal_billeder = list_dir($mappe) ;
      $antal = count($antal_billeder) ;
      echo $antal . " billeder i mappen " ;
      echo " Du ser nu billede nr. $taeller<br><br>" ;
      $billede = $mappe . "/" . $antal_billeder[$taeller] ;
      echo "<img src='$billede' alt=''><br>" ;     
     
      echo "<a href='filnavn.php?mappe=" . $mappe . "&page=back'>Forrige</a> " ;

      echo "<a href='filnavn.php?mappe=" . $mappe . "&page=next'>Næste</a>" ;

    }
  ?> 

</body>
</html>

Så, denne her giver ingen fejlmeldinger hos mig, om den så virker efter hensigten har jeg ikke lige kunnet teste :)
Avatar billede jazzy-jay Nybegynder
16. april 2002 - 08:07 #11
jeg kigger på den her: test.php?mappe=venner
men af en grund kan den ik finde min mappe eller filer

jeg får de samme fejlmeldinger
Avatar billede jazzy-jay Nybegynder
16. april 2002 - 08:08 #12
den finder ingen filer, jeg ved ik lige hvordan man ordner den
Avatar billede lequet Nybegynder
16. april 2002 - 08:09 #13
Er du sikker på mappen ikke hedder Venner altså med stor begyndelsesbogstav?
Avatar billede lequet Nybegynder
16. april 2002 - 08:10 #14
setcookie("taeller", 0, time() + 0) ;

Skal i hvert fald lige rettes til

if (!$taeller) {
$taeller = 0 ;
setcookie("taeller", 0, time() + 0) ;
}
Avatar billede jazzy-jay Nybegynder
16. april 2002 - 08:14 #15
mappen er der og hedder venner med lille!
men i kilden kan jeg se den ingen fil er fundet <img src='venner/' alt=''><br>
Avatar billede lequet Nybegynder
16. april 2002 - 08:19 #16
Nu fik jeg det til at virke, nu viser den billederne hos mig, her er koden som den ser ud nu


<?php

function list_dir($mappe)
{
  if($mappe[strlen($mappe)-1]!='\\')
      $mappe.='\\';
  static $result_array=array(); 
  $handle=opendir($mappe);
  while ($file = readdir($handle)) {
    if($file=='.'||$file=='..')
      continue;
    if(is_dir($mappe.$file))
      list_dir($mappe.$file.'\\');
    else
      $result_array[]=$mappe.$file;
    }   
    closedir($handle);

    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>
<body>

<?php
    if ($mappe) {
      $antal_billeder = list_dir($mappe) ;
      $antal = count($antal_billeder) ;
      echo $antal . " billeder i mappen " ;
      echo " Du ser nu billede nr. $taeller<br><br>" ;
      $billede = $antal_billeder[$taeller] ;
      echo "<img src='$billede' alt=''><br>" ;     
     
      echo "<a href='photo.php?mappe=" . $mappe . "&page=back'>Forrige</a> " ;

      echo "<a href='photo.php?mappe=" . $mappe . "&page=next'>Næste</a>" ;

    }
  ?> 

</body>
</html>
Avatar billede jazzy-jay Nybegynder
16. april 2002 - 08:24 #17
<html>
<body>

<br>
<b>Warning</b>:  OpenDir: No such file or directory (errno 2) in <b>test.php</b> on line <b>8</b><br>
<br>
<b>Warning</b>:  Supplied argument is not a valid Directory resource in <b>test.php</b> on line <b>9</b><br>
<br>
<b>Warning</b>:  Supplied argument is not a valid Directory resource in <b>test.php</b> on line <b>17</b><br>
0 billeder i mappen  Du ser nu billede nr. 0<br><br><img src='' alt=''><br><a href='test.php?mappe=venner&page=back'>Forrige</a> <a href='test.php?mappe=venner&page=next'>Næste</a> 

</body>
</html>

underligt det ik virker her?
Avatar billede lequet Nybegynder
16. april 2002 - 08:25 #18
Det virker hos mig, på nær at den kun vil vise de 2 første billeder, hvilket jeg ikke fatter
Avatar billede jazzy-jay Nybegynder
16. april 2002 - 08:30 #19
Den er lidt tricky den her hva!?
Avatar billede lequet Nybegynder
16. april 2002 - 08:33 #20
Ha, det lykkedes, nu virker den sgu perfekt hos mig :) Hvis du ikke har indstillet sessions eller noget i din php.ini så opret lige mappen c:/tmp/ ellers vil den give fejl :)

<?php

function list_dir($mappe)
{
  if($mappe[strlen($mappe)-1]!='\\')
      $mappe.='\\';
  static $result_array=array(); 
  $handle=opendir($mappe);
  while ($file = readdir($handle)) {
    if($file=='.'||$file=='..')
      continue;
    if(is_dir($mappe.$file))
      list_dir($mappe.$file.'\\');
    else
      $result_array[]=$mappe.$file;
    }   
    closedir($handle);

    return $result_array;   
}

session_start() ;

if (!$taeller) {
$taeller = 0 ;
session_register("taeller") ;
}

if ($page == "next") {
  $taeller = $taeller + 1 ;
} else if ($page == "back") {
  $taeller = $taeller - 1 ;
}
?>

<html>
<body>

<?php
    if ($mappe) {
      $antal_billeder = list_dir($mappe) ;
      $antal = count($antal_billeder) ;
      echo $antal . " billeder i mappen " ;
      echo " Du ser nu billede nr. $taeller<br><br>" ;
      $billede = $antal_billeder[$taeller] ;
      echo "<img src='$billede' alt=''><br>" ;     
     
      echo "<a href='photo.php?mappe=" . $mappe . "&page=back'>Forrige</a> " ;

      echo "<a href='photo.php?mappe=" . $mappe . "&page=next'>Næste</a>" ;

    }
  ?> 

</body>
</html>
Avatar billede jazzy-jay Nybegynder
16. april 2002 - 08:43 #21
oprette mappen tmp? php.ini?
jamen det skal ligge på et webhotel hos azero.dk
går det?
Avatar billede lequet Nybegynder
16. april 2002 - 08:47 #22
Hvis det senere skal uploades er der ingen problemer, azero har sørget for dette (Er selv hostet hos azero :) Det er kun for at det også skal virke på din egen computer, så du ikke skal uploade hver gang for at teste om det nu virker :) Det eneste du skal gøre er at oprette mappen

tmp på din harddisk f.eks. c:/tmp/ hvis din hd altså hedder c: :) Det samme kan/skal du ikke gøre hos azero :)
Avatar billede jazzy-jay Nybegynder
16. april 2002 - 08:59 #23
mit virker stadig ikke :(
Avatar billede lequet Nybegynder
16. april 2002 - 09:00 #24
Det var sgu underligt, nogen fejlmeldinger? Eller viser den bare ingen billeder?
Avatar billede jazzy-jay Nybegynder
16. april 2002 - 09:08 #25
http://www.jazzy-juffe.dk/img/test.php?mappe=venner

tjek it out

forresten, så den der cookie blir ved med at være ved det nr. man er kommet til ligemeget hvilken mappe man er i, kan den ikke gå tilbage til 0 efter man har kigget i en mappe?
Avatar billede jazzy-jay Nybegynder
16. april 2002 - 09:14 #26
btw ved du ik hvordan man tjekker i tabel om dataen man er ved at tilføje eksitere iforvejen ?
Avatar billede lequet Nybegynder
16. april 2002 - 09:14 #27
OK, nu skal du lige lave en mindre opreration :) Tag din side, slet alt indholdet, og skriv følgende kode

<?php
setcookie("taeller") ;
?>

Gem, se siden (Den vil ikke vise noget, bare så du ved det :), gå nu ind og kopier HELE den kode jeg skrev sidst og sæt det ind i din fil, og gem. Så tror/håber jeg det vil virke :)
Avatar billede jazzy-jay Nybegynder
16. april 2002 - 09:23 #28
det er lidt noget crap :(
Avatar billede lequet Nybegynder
16. april 2002 - 09:24 #29
Virker det stadig ikke?
Avatar billede jazzy-jay Nybegynder
16. april 2002 - 09:27 #30
nope
Avatar billede jazzy-jay Nybegynder
16. april 2002 - 09:33 #31
hvis du kan løse de her 2 prob får du de 125 point ok? :)


if ((!isset($gal))||(!isset($title[$gal]))){
print "<br><br>";$i=0;
while (isset($title[$i])){
print "<b><a href='$PHP_SELF?file=gal&titel=$title[$i]&gal=$i'>$title[$i]</a></b>";
print "<br><br>"; $i++;
}
;
}
else {
?>
<?
error_reporting(63);
?>
<center>
<?
if (!isset($pg)){$pg=0;};
$handle=opendir($dir[$gal]);
$i=0;
while ($file = readdir($handle)) {
if (eregi("jpg$",$file)){
$folder[$i]=$file;
$i=$i+1;
} ;
} ;
closedir($handle);
sort($folder);
$a=0;
$count=$row*$col*$pg;for ($r=1; $r<=$row; $r++) {
print "";
if ($count>$i-1) { break; } ; for ($c=1; $c<=$col; $c++) { $tnpath=$tndir[$gal]."/".$folder[$count];
print "<img src=\"$tnpath\" BORDER=1 width=320>"; $count++; if ($count>$i-1) { break; } ; } ;
print "";}  ;
print "<br>";


//* linien herunder har jeg et prob med! *\\
if ($pg>0) { $tmp=$pg-1; ; print"<a href=\"$PHP_SELF?file=gal&titel=$title[$i]&pg=$tmp&gal=$gal&album=$album\"><img src=\"img/prev.gif\" width=\"30\" height=\"20\" border=\"0\"></a>"; } ;



$tmp=$pg+1; print"&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp";


//* linien herunder har jeg et prob med! *\\
if ($tmp*$row*$col<$i) { $tmp=$pg+1; ; print"<a href=\"$PHP_SELF?file=gal&titel=$title[$i]&pg=$tmp&gal=$gal&album=$album\"><img src=\"img/next.gif\" width=\"30\" height=\"20\" border=\"0\"></a>"; } ;


$pages=floor($i/($row*$col));
$locstring="<center>";
for($i=0; $i<=$pages; $i++){
$pnum=$i+1;
$locstring.="";
} ;
$locstring.="</center>";
print $locstring; } ;
Avatar billede lequet Nybegynder
16. april 2002 - 09:41 #32
if ($pg>0) { $tmp=$pg-1; print "<a href=\"$PHP_SELF?file=gal&titel=$title[$i]&pg=$tmp&gal=$gal&album=$album\"><img src=\"img/prev.gif\" width=\"30\" height=\"20\" border=\"0\"></a>"; }

og så

if (($tmp*$row*$col)<$i) { $tmp=$pg+1; print"<a href=\"$PHP_SELF?file=gal&titel=$title[$i]&pg=$tmp&gal=$gal&album=$album\"><img src=\"img/next.gif\" width=\"30\" height=\"20\" border=\"0\"></a>"; }

Tror det må kunne gør det :)
Avatar billede jazzy-jay Nybegynder
16. april 2002 - 09:49 #33
Undefined offset: 6
hvad vil det sige?
Avatar billede jazzy-jay Nybegynder
16. april 2002 - 09:50 #34
jeg har stadig et prob!
Avatar billede lequet Nybegynder
16. april 2002 - 09:56 #35
Kan du vise hvilken linie den siger den fejl er i?
Avatar billede jazzy-jay Nybegynder
16. april 2002 - 09:56 #36
Damn det er ik min dag idag *g*
Avatar billede jazzy-jay Nybegynder
16. april 2002 - 09:57 #37
de samme linier som jeg har skrevet før
Avatar billede lequet Nybegynder
16. april 2002 - 09:58 #38
OK... Prøver igen :)
Avatar billede lequet Nybegynder
16. april 2002 - 10:02 #39
Umidelbart ville jeg råde dig til at sætte dig ned og sætte lidt orden i koden, så tror jeg også du MEGET hurtigt ville finde fejlen, der er ikke nogen fejl i de to linie af hvad jeg kan se, men fejlen ligge nok nærmere før de linier, f.eks. hvis du har glemt en } eller ; eller noget i den stil, og det er umuligt at finde den slags fejl når koden ikke er stillet bare nogenlunde op :)
Avatar billede jazzy-jay Nybegynder
16. april 2002 - 10:33 #40
skriv et svar så du kan få lidt point :)
Avatar billede lequet Nybegynder
16. april 2002 - 10:39 #41
Det får du da så her :)

Håber du kunne bruge noget af alt det her, til et eller andet :)
Avatar billede jazzy-jay Nybegynder
16. april 2002 - 10:42 #42
jeg har nok glemt det hele imorn hehe
Avatar billede lequet Nybegynder
16. april 2002 - 10:46 #43
Det ville da være en skam hvis du havde :) Så er det godt at du altid kan gå tilbage hertil og se det hele igen :)

Takker for points
Avatar billede jazzy-jay Nybegynder
16. april 2002 - 11:01 #44
http://www.jazzy-juffe.dk/fotoalbum.php

det ligner lidt selvom det kræver lidt mere end det jeg gik efter
også kan det mindre *rofl* typisk!!
Avatar billede lequet Nybegynder
16. april 2002 - 11:05 #45
Tja, det ser da udemærket ud :) Om ikke andet virker det da :)
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