lobster Skrevet 17. juni 2003 Del Skrevet 17. juni 2003 <center> <?php $a = '0'; $galleryid = $_GET['id']; $fileroot = "bildegalleri"; $filepath = "thumb"; $url_path = "bilder"; $dir = dir($filepath); echo "<table border="0" cellpadding="5" cellspacing="5" width="75%">"; while($entry=$dir->read()) { if($entry == "." || $entry == "..") { continue; } $fp = @fopen("/$fileroot/$galleryid/$filepath/$entry","r"); if ($a == '4'){ echo "</tr><tr>"; $a = 0; } ?><td> <a href="<? echo "/$fileroot/$galleryid/$url_path/$entry" ?>"> <img src="<? echo "/$fileroot/$galleryid/$filepath/$entry" ?>" alt=""></a> </td> <? $a++; } ?> </tr> </table> </center> Lager jeg mappene thumb og bilder, og legger disse til / på webserveren får jeg frem bilder. utifra det jeg har programmert ønsker jeg at scriptet skal ta hensyn til fileroot og galleryid. Jeg har litt problemer med å forklare det... Jeg tror feilen ligger i denne linjen: $dir = dir($filepath); Vær sååå snill å hjelp meg med dette her (please)(hehe) Lenke til kommentar
b-urn Skrevet 17. juni 2003 Del Skrevet 17. juni 2003 <center> $fp = @fopen("/$fileroot/$galleryid/$filepath/$entry","r"); Dette kallet er unødvendig... Prøv dette: <center> <?php $a = '0'; $galleryid = $_GET['id']; $filepath = "thumb"; $url_path = "bilder"; $fileroot = "bildegalleri"; $strThumbs = "./$fileroot/$galleryid/$filepath"; $strImages = "./$fileroot/$galleryid/$url_path"; $dir = dir("$strThumbs"); echo "<table border="0" cellpadding="5" cellspacing="5" width="75%"><tr>"; while($entry=$dir->read()) { if($entry == "." || $entry == "..") { continue; } if ($a == '4'){ echo "</tr><tr>"; $a = 0; } ?> <td> <a href="<? echo "$strImages/$entry" ?>"> <img src="<? echo "$strThumbs/$entry" ?>" alt=""></a> </td> <? $a++; } $dir->close(); ?> </tr> </table> </center> Merk!! Koden slik den er her.. er usikker. Du bør sjekke at argumentet til Dir() er gyldig ( i tilfelle siden kalles med en katalog-id som ikke finnes). Hvis så er tilfelle, bør brukeren omdirigeres til en access-denied side.. hovedside.. whatever. BIW Lenke til kommentar
lobster Skrevet 17. juni 2003 Forfatter Del Skrevet 17. juni 2003 Tusen takk for hjelpen (så langt) Jeg er newbie i å progge, liker best å copy-paste ulik kode for å får det slik jeg vil (som oftest går det bra!!!) Det er mye lettere å endre på kode enn det det er å progge det ... Uansett, scriptet funket desverre ikke. Jeg får opp riktig path, men ingen bilder? Håper du/dere kan hjelpe til litt til. Lenke til kommentar
b-urn Skrevet 17. juni 2003 Del Skrevet 17. juni 2003 Klart vi kan hjelpe. Skriptet fungerte hos meg.. men det var med følgende mappestruktur: gallery.php [ bildegalleri ] [12] [bilder] img_1.jpg img_2.jpg img_3.jpg [thumb] img_1.jpg img_2.jpg img_3.jpg [13] [bilder] img_1.jpg img_2.jpg img_3.jpg [thumb] img_1.jpg img_2.jpg img_3.jpg Der [ ] ---> indikerer en mappe For å vise eksempelvis bilder i mappen [12] blir kallet til hovedsiden for galleriet: gallery.php?id=12 BIW Lenke til kommentar
lobster Skrevet 17. juni 2003 Forfatter Del Skrevet 17. juni 2003 Joda, det virker det ja. :oops: Men.. jeg får det bare til å virke lokalt på maskina mi.. hehe Når jeg legger det ut på nett kommer ikke bildene frem (får ikke noen feilmelding som følge av feil mapper heller) Mulig det er for sent på natta for at dette skal virke for meg, uansett takk for hjelp enda en gang. Lenke til kommentar
b-urn Skrevet 17. juni 2003 Del Skrevet 17. juni 2003 Plukket dette fra kildekoden i siden din: <td> <a href="bildegalleri/test/bilder//IMG_2248.jpg"> <img src="bildegalleri/test/thumb//IMG_2248.jpg" alt=""></a> </td> Du har doble slash'er i sti'en. Noen grunn til det? Hvis du graver frem stien til der ett av bildene dine ligger skal vi sikkert finne ut av problemet. BIW Lenke til kommentar
lobster Skrevet 18. juni 2003 Forfatter Del Skrevet 18. juni 2003 Sånn går det når jeg er for trøtt Når burde sjekket siden i explorer i stedet for Opera. I opera er det helt tomt, mens i explorer kommer jo faktisk bildelinkene opp. Hadde jo sjekket koden da Nå virker det. Tusen takk for all hjelp. Lenke til kommentar
lobster Skrevet 18. juni 2003 Forfatter Del Skrevet 18. juni 2003 Som nevnt er jeg ikke noen god php programmerer, men du verden så artig det er å leke seg (Særlig når det funker) Nå er scriptet nesten slik jeg ønsker at det skal være Det hadde vært kjekt med en Forrige / Neste bilde funksjon også. Jeg har jo allerede arrayen $entry. Hvordan skal jeg skrive $entry ++ for å få dette til å virke? Jeg legger ved koden i tilfelle andre her ønsker noe tilsvarende. (PHP-eksperter! synes sikkert jeg har programmert med kniv og gaffel, men dette er det beste jeg får til) <?php $filepath = "thumb"; $url_path = "bilder"; $fileroot = "bildegalleri"; // $GlobalSectionID=17; $showimage = $_GET['show']; $galleryid = $_GET['gallery']; $strThumbs = "./$fileroot/$galleryid/$filepath"; $strImages = "./$fileroot/$galleryid/$url_path"; $dir = dir("$strThumbs"); // If no image is selected, show gallery: if ( $showimage == "" ) { $a = '0'; include( "$fileroot/$galleryid/data.html" ); echo "nn<center>n<table border="0" cellpadding="5" cellspacing="5" width="100%">n<tr>n"; while($entry=$dir->read()) { if($entry == "." || $entry == "..") { continue; } if ($a == '5'){ echo "n</tr>n<tr>n"; $a = 0; } ?> <td> <a href="/gallery/browse?gallery=<?php echo "$galleryid" ?>&show=<? echo "$entry" ?>"> <img src="../<? echo "$strThumbs/$entry" ?>" border="0" alt=""></a> </td> <? $a++; } $dir->close(); print "</tr>n</table>n</center>n"; } // If image is selected show image: else { print "<br /><center>n<a href="/gallery/browse?gallery=$galleryid"><img src="../$strImages/$entry/$showimage" border="0"></a>n</center>"; $show = ""; } ?> [/size] Lenke til kommentar
b-urn Skrevet 19. juni 2003 Del Skrevet 19. juni 2003 Det hadde vært kjekt med en Forrige / Neste bilde funksjon også. Jeg har jo allerede arrayen $entry. Hvordan skal jeg skrive $entry ++ for å få dette til å virke? Nå er ikke $entry noen array slik du bruker variabelen her. Den brukes kun til å holde på navnet til hver enkelt mappe/fil etter hvert som du leser dem inn. Du er ihvertfall inne på noe. Jeg stusset på om jeg skulle skrive koden for deg, men det er vel morsommere hvis du får gjøre det selv Skisse av en mulig løsning: a) Bygg en funksjon som returnerer innholdet i katalogen til en array B) hent ut filnavn fra array (der du nå leser inn i $entry) c) ta vare på index i array'en når du viser hele bildet (samme måtes som galleryid). d) Lag phpkode for visning av forrige/neste som tar utgangspunkt i mottatt id (imageid), ved å hente data fra array. Tror ikke det skal være så veldig vanskelig. BIW Lenke til kommentar
lobster Skrevet 19. juni 2003 Forfatter Del Skrevet 19. juni 2003 Jeg stusset på om jeg skulle skrive koden for deg, men det er vel morsommere hvis du får gjøre det selv Ja, det er kjempeartig å lage noe på egenhånd. Men det er samtidig innmari vanslkleig ...... Skisse av en mulig løsning: a) Bygg en funksjon som returnerer innholdet i katalogen til en array Uh! B) hent ut filnavn fra array (der du nå leser inn i $entry) Detet sburde jeg klare.. c) ta vare på index i array'en når du viser hele bildet (samme måtes som galleryid). Dette er greit d) Lag phpkode for visning av forrige/neste som tar utgangspunkt i mottatt id (imageid), ved å hente data fra array. Dette er også greit Tror ikke det skal være så veldig vanskelig. Da tar du feil .... hehehehe Lenke til kommentar
b-urn Skrevet 19. juni 2003 Del Skrevet 19. juni 2003 Tror ikke det skal være så veldig vanskelig. Da tar du feil .... hehehehe Får hjelpe deg litt til da: //Funksjonsdeklarasjon function fncGetContents($strPath) { $str_Data = Array(); $objDir = dir($strPath); $i = 0; while($entry = $objDir->read()) { if($entry!="." && $entry != "..") $str_Data[$i++] = $entry;} $objDir->close(); return $str_Data; } //Eksempel på bruk $str_Data = fncGetContents("./"); //Skriver ut innhold i array $intCounter = count($str_Data); for($i=0;$i<$intCounter;$i++) { echo($str_Data[$i] . "<br>");} Lenke til kommentar
lobster Skrevet 19. juni 2003 Forfatter Del Skrevet 19. juni 2003 Takker b-urn.. Dette hjalp meg akuratt nok til å fortsette på galleri funksjonen min Tusen takk for all hjelp. Strålende... Lenke til kommentar
b-urn Skrevet 20. juni 2003 Del Skrevet 20. juni 2003 Mere hjelp på vei. Det slo meg at den forrige løsningen min kanskje var mer komplisert enn den hadde trengt å være. Alt vi trenger å gjøre, er å legge linkene til forrige og neste bilde rett inn i visningssiden for bildet. Hvordan finner vi ut av det? "Enkelt". Gitt funksjonen som vist tidligere (fncGetContents).. kan alle bildene i en mappe leses inn i en array(liste). I stedet for å sende med hele navnet på bildet som skal vises slik du gjør nå ... <a href="/gallery/browse?gallery=<?php echo "$galleryid" ?>&show=<? echo "$entry" ?>"> ..kan du sende med en bildeId som indekserer et element i arrayen. <a href="/gallery/browse?gallery=<?php echo "$galleryid" ?>&show=<?$lngImageEntryId ?>"> Når skriptet mottar en bildeID, vil det som før tolke det som at et enkelt bilde i galleriet skal vises. Phpkoden må da endres slik at $str_Array = fncGetContents($strPath) // <-- stien til aktuelt galleri $entry = $str_Array[$lngImageEntryId ] $previousEntryId = $lngImageEntryId -1; $nextEntryId = $lngImageEntryId +1; Da kan du opprette to linker i bildevisnings-siden. Forrige/Neste som linker til gallerysiden med $previousEntryId og $nextEntryId. Du må her huske å sjekke at Id'ene er gyldige indekser i array'en. ( id > 0 og id < count($str_Array) ) og endre verdiene på dem deretter. Det kan du gjøre på flere måter. Det enkleste er kanskje å rullere slik at hvis du kommer til slutten på tabellen fortsetter du med det første elementet. Omvendt, kommer du til begynnelsen av tabellen fortsetter du med det siste elementet. Håper det hjalp deg litt videre. Jeg kan skrive koden helt ut, men du kan få lov til å prøve selv hvis du vil. Uklart? Gi beskjed så skal jeg gjøre et forsøk på å forklare bedre. BIW Lenke til kommentar
lobster Skrevet 23. oktober 2003 Forfatter Del Skrevet 23. oktober 2003 Jeg må krype til korset og be om hjelp her. Jeg prøver å få til neste/forrige funksjon. Slik ser koden min ut nå: <?php $filepath = "thumb"; $url_path = "bilder"; $fileroot = "bildegalleri"; // $GlobalSectionID=12; $showimage = $_GET['show']; $galleryid = $_GET['gallery']; $strThumbs = "./$fileroot/$galleryid/$filepath"; $strImages = "./$fileroot/$galleryid/$url_path"; $dir = dir("$strThumbs"); // If no image is selected, show gallery: if ( $showimage == "" ) { $a = '0'; include( "$fileroot/$galleryid/data.html" ); echo "nn<center>n<table border="0" cellpadding="5" cellspacing="5" width="100%">n<tr>n"; while($entry=$dir->read()) { if($entry == "." || $entry == "..") { continue; } if ($a == '5'){ echo "n</tr>n<tr>n"; $a = 0; } ?> <td> <a href="/gallery/browse?gallery=<?php echo "$galleryid" ?>&show=<? echo "$entry" ?>"> <img src="../<? echo "$strThumbs/$entry" ?>" border="0" alt=""></a> </td> <? $a++; } $dir->close(); print "</tr>n</table>n</center>n"; } // If image is selected show image: else { print "<br /><center>n<a href="/gallery/browse?gallery=$galleryid"><img src="../$strImages/$entry$showimage" border="0"></a>n</center>"; $show = ""; } ?> Lenke til kommentar
fx-zephyr Skrevet 27. oktober 2003 Del Skrevet 27. oktober 2003 hva er galt? får du noen feilmelding? uansett.. jeg synes denne så litt skummel ut: print "<br /><center>n<a href="/gallery/browse?gallery=$galleryid"><img src="../$strImages/$entry$showimage" border="0"></a>n</center>"; burde kanskje heller se slik ut: echo ('<br /><center>n<a href="/gallery/browse?gallery='.$galleryid.'"><img src="../'.$strImages.'/'.$entry.$showimage.'" border="0"></a>n</center>'); Lenke til kommentar
lobster Skrevet 7. juni 2004 Forfatter Del Skrevet 7. juni 2004 Dette går dårlig. <?php $filepath = "thumb"; $url_path = "bilder"; $fileroot = "bildegalleri"; $GlobalSectionID=1; $showimage = $_GET['show']; $galleryid = $_GET['gallery']; $strThumbs = "./$fileroot/$galleryid/$filepath"; $strImages = "./$fileroot/$galleryid/$url_path"; $dir = dir("$strThumbs"); // If no image is selected, show gallery: if ( $showimage == "" ) { $a = '0'; // include( "$fileroot/$galleryid/data.html" ); echo "<center><table border=\"0\" cellpadding=\"5\" cellspacing=\"5\" width=\"100%\"><tr>"; while($entry=$dir->read()) { if($entry == "." || $entry == "..") { continue; } if ($a == '5') { echo "</tr><tr>"; $a = 0; } ?> <td><a href="/gallery/browse?gallery=<?php echo "$galleryid" ?>&show=<? echo "$entry" ?>"><img src="../<? echo "$strThumbs/$entry" ?>" border="0" alt=""></a></td> <?php $a++; } $dir->close(); print "</tr></table></center>"; } // If image is selected show image: else { echo "<a href=\"/gallery/browse?gallery=$galleryid\"><img src=\"../$strImages/$entry$showimage\" border=\"0\"></a>"; $show = ""; } //Funksjonsdeklarasjon function fncGetContents($strImages) { $str_Data = Array(); $objDir = dir($strImages); $i = 0; while($entry = $objDir->read()) { if($entry!="." && $entry != "..") $str_Data[$i++] = $entry;} $objDir->close(); return $str_Data; } //Eksempel på bruk $str_Data = fncGetContents($strImages); //Skriver ut innhold i array $intCounter = count($str_Data); for($i=0;$i<$intCounter;$i++) { echo($str_Data[$i] . "<br>");} $str_Array = fncGetContents($strImages); // <-- stien til aktuelt galleri $entry = $str_Array[$lngImageEntryId ]; $previousEntryId = $lngImageEntryId -1; $nextEntryId = $lngImageEntryId++; echo "forrige $previousEntryId<br>"; echo "neste $nextEntryId<br>"; echo $str_Array; echo $strImages; ?> Jeg har rotet til hele greia. Noen tips? Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå