Ciao ragazzi, io avrei bisogno di leggere il contenuto della cratella ''album'' dove all'interno ho altre cratelle contenenti immagini. Mi serve un anteprima e cliccando sopra all'album vado a scorrere le immagini...come faccio?
Ciao ragazzi, io avrei bisogno di leggere il contenuto della cratella ''album'' dove all'interno ho altre cratelle contenenti immagini. Mi serve un anteprima e cliccando sopra all'album vado a scorrere le immagini...come faccio?
5ym0
Sai programmare in PHP???
Te lo chiedo perché questo forum non è nato come posto dove qualcuno arriva, chiede uno script, saluta e se ne va.
Se vuoi una mano per sistemare un tuo script che non funziona è un conto ed una mano te la do' volentieri, altrimenti c'è la sezione SCRIPT del sito sicuramente con uno già bello e pronto che fa al caso tuo.
Oppure c'è un forum "Cerco/Offro collaborazione" dove puoi chiedere a qualcuno se ti compila lo script che fa al caso tuo.
![]()
Hai ragione è che non avendo mai fatto lavori su dir son un po' in difficoltà. Prendendo spunto da script qua e là son riuscito a buttar giù qualcosa ma non funziona niente..il codice ( anche se molto confuso ) è questo:
Codice PHP:
$collezione='';if(isset($_GET['collezione'])){$collezione=$_GET['collezione'];}
echo "<table width='850' border='0'>
<tr><td valign='top' width='500' >[img]$im[/img]</td>
<td valign='top' width='450' ><table width='400' border='0'>";
if($collezione == ''){
echo "<tr><td style='color:#85661f; font-size:0.9em' colspan='2'>[b]TUTTE LE COLLEZIONI[/b]</td></tr>";
$dir="../public/";
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
if($file!="." and $file!=".."){
//echo "filename: $file : filetype: " . filetype($dir . $file) . "\n";
$titolo="abiti/$file/titolo.txt";
if(file_exists($titolo)){
$contenuto = file_get_contents($titolo);
echo "<tr><td>";
include("random.php");
echo "</td><td style='font-size:0.7em;font-weight:bold;width:400;'>
[url='$PHP_SELF?collezione=$file']".$contenuto."[/url]</td></tr>";
}
}
}
closedir($dh);
}
}
echo "</table></td></tr></table>";
}else{
$colonne=4;
$num="0";
$dir2="../public/$collezione/";
if(is_dir($dir2)){
if($dh2=opendir($dir2)){
while(($file2=readdir($dh2))!==false){
if($file2!="." and $file2!=".." and $file2!="Thumbs.db"){
$foto[$num]=$file2;
$num++;
}
}
//echo count($foto);
sort($foto);
include("elabora_img.php");
$titolo="abiti/$collezione/titolo.txt";
if(file_exists($titolo)){
$contenuto = file_get_contents($titolo);
echo "<tr><td style='font-size:0.7em;font-weight:bold;color:#85661f;' colspan='4'>$contenuto
</td></tr>";
}
/*********** PAGINAZIONE *************/
$tot_records = count($foto);
//echo "$tot_records
";
// risultati per pagina(secondo parametro di LIMIT)
$per_page ="20";
$tot_pages = ceil($tot_records / $per_page);
// pagina corrente
$current_page = (!$_GET['page']) ? 1 : (int)$_GET['page'];
// primo parametro di LIMIT
$primo = ($current_page - 1) * $per_page;
include ('comp/paginazione.php');
//echo "tot: $lungh_array
";
//echo "start: $primo
";
if ($page) {
$per_page= $per_page*$page;
}
for($i=$primo;$i<$per_page;$i++){
if( $foto[$i] and $foto[$i]!='small' and $foto[$i]!='big' and $foto[$i]!='titolo.txt'){
if($i % $colonne==0){
echo "<tr>\n";
}
echo "<td>[url='$PHP_SELF?im=$foto[$i]&collezione=$collezione&page=$current_page'][img]$dir2/small/$foto[$i][/img][/url]</td>";
if($i % $colonne==($colonne - 1)|| ($i+1)==$tot_records){
echo "</tr>\n";
}
}
}
echo "<tr><td style='font-size:0.7em;color:#85661f;' colspan='4'>".$paginazione."</td></tr>";
}
}
echo "</table></td></tr><tr><td></td><td >
[url='$PHP_SELF']<< Tutte le collezioni[/url]</td></tr></table>";
}
5ym0
Ho fatto un po' di pasis avanti sistemando un po' il codice, però ho bisogno una mano aiutatemi per favore! Vi posto tutto.
galleria.php:
elabora_img_gal.php:Codice PHP:
if($album == '')
{
echo "<table width='600' border='0' cellspacing='5' cellpadding='5'>
<tr><td style='color:#85661f;font-size:0.9em' align='center' colspan='4'>[b]FOTO GALLERY[/b]
</td></tr>";
$dir="../public/gallery/";
$colonne=2;
$n=0;
if (is_dir($dir))
{
if ($dh = opendir($dir))
{
while (($file = readdir($dh)) !== false)
{
if($file!="." and $file!="..")
{
//echo "filename: $file : filetype: " . filetype($dir . $file) . "\n";
$album[$n]=$file;
$n++;
}
}
for($i=0;$i<count($album);$i++)
{
include("elabora_img_gal.php");
// $tit="$dir$album[$i]/titolo.txt";
// echo $tit;
//if(file_exists($tit))
//{
//$contenuto = file_get_contents($tit);
if($i % $colonne==0)
{
echo "<tr>\n";
}
echo "<td>";
include("random_foto.php");
echo "</td><td style='font-size:0.7em;font-weight:bold;width:400;'>
[url='$PHP_SELF?album=$album[$i]']".$contenuto."[/url]</td>";
if($i % $colonne == ($colonne - 1) || ($i+1) == count($album))
{
echo "</tr>\n";
}
//}
//else
//{
//echo "errore";
//}
}
closedir($dh);
}
}
echo "</table>";
}
else
{
echo "<table width='850' border='0'>
<tr><td valign='top' width='650' >[img]$im[/img]</td><td valign='top' width='400' > <table width='400' border='0'>";
$colonne=4;
$num="0";
$dir2="../public/gallery/$album/";
if(is_dir($dir2))
{
if($dh2=opendir($dir2))
{
while(($file2=readdir($dh2))!==false)
{
if($file2!="." and $file2!=".." and $file2!="Thumbs.db" and $file2!="titolo.txt" and $file2!="big" and $file2!="small")
{
$foto[$num]=$file2;
$num++;
}
}
//echo count($foto);
sort($foto);
$titolo="gallery/$album/titolo.txt";
//if(file_exists($titolo))
//{
$contenuto = file_get_contents($titolo);
echo "<tr><td style='font-size:0.7em;font-weight:bold;color:#85661f;' colspan='4'>$contenuto
</td></tr>";
//}
/*********** PAGINAZIONE *************/
$tot_records = count($foto);
//echo "$tot_records
";
// risultati per pagina(secondo parametro di LIMIT)
$per_page ="20";
$tot_pages = ceil($tot_records / $per_page);
// pagina corrente
$current_page = (!$_GET['page']) ? 1 : (int)$_GET['page'];
// primo parametro di LIMIT
$primo = ($current_page - 1) * $per_page;
include ('comp/paginazione_gal.php');
//echo "tot: $lungh_array
";
//echo "start: $primo
";
if ($page) {
$per_page= $per_page*$page;
}
for($i=$primo;$i<$per_page;$i++){
if( $foto[$i] and $foto[$i]!='small' and $foto[$i]!='big' and $foto[$i]!='titolo.txt'){
if($i % $colonne==0){
echo "<tr>\n";
}
echo "<td>[url='$PHP_SELF?im=$foto[$i]&album=$album&page=$current_page'][img]$dir2/small/$foto[$i][/img][/url]</td>";
if($i % $colonne == ($colonne - 1) || ($i+1) == $tot_records){
echo "</tr>\n";
}
}
}
echo "<tr><td style='font-size:0.7em;color:#85661f;' colspan='4'>".$paginazione."</td></tr>";
}
}
echo "</table></td></tr><tr><td></td><td >
[url='$PHP_SELF']<< Tutti gli album[/url]</td></tr></table>";
closedir($dh2);
}
e infine random_poto.php:Codice PHP:
/******** MINIATURA BIG **********/
$q=0;
//echo $album[$i]."
";
$dir2="../public/gallery/$album[$i]/";
$big="../public/gallery/$album[$i]/big";
$small="../public/gallery/$album[$i]/small";
if(!file_exists($big)){
@mkdir("$big", 0777);
}
if(!file_exists($small)){
@mkdir("$small", 0777);
}
if (is_dir($dir2)) {
if ($dh2 = opendir($dir2)) {
while (($file2 = readdir($dh2)) !== false) {
if($file2!="." and $file2!=".." and $file2!="small" and $file2!="big" and $file2!="Thumbs.db" and $file2!="titolo.txt"){
$foto[$q]=$file2;
$q++;
}
}
//echo $album[$i]."-".count($foto)."
";
for($r=0;$r<count($foto);$r++){
$bigfilename="$dir2$foto[$r]";
$filenameb=$dir2."big/$foto[$r]";
$filename = $dir2."small/$foto[$r]";
//echo $foto[$r]."
";
if (!file_exists($filenameb)) {
.....dimensiono immagini
$foto=array();
Allo stato attuale mi fa le miniature degli album, ma non riesco a cliccarci sopra per poter sfogliare l'album...up!Codice PHP:
//echo $album[$i];
$small="../public/gallery/".$album[$i]."/small/";
$origini="../public/gallery/".$album[$i]."/";
$s=0;
if(file_exists($small)){
$mina=array();
if($cart= opendir($small)){
while (($min = readdir($cart)) !== false) {
if($min!="." and $min!=".." and $min!='Thumbs.db'){
$mina[$s]=$min;
$s++;
}
}
if(count($mina)==0){
echo "problemi";
}else{
$indice=rand(0,(count($immagini)-1));
$pat=$small.$mina[$indice];
//echo $pat;
echo "[img]$pat[/img]";
}
}else{
echo "Attenzione, impossibile aprire la cartella ".$small;
}
}else{
$mina=array();
if($cart= opendir($origini)){
while (($min = readdir($cart)) !== false) {
if($min!="." and $min!=".." and $min!='Thumbs.db'){
$mina[$s]=$min;
$s++;
}
}
if(count($mina)==0){
echo "problemi";
}else{
$indice=rand(0,(count($immagini)-1));
$pat=$small.$mina[$indice];
//echo $pat;
echo "[img]$pat[/img]";
}
}else{
echo "Attenzione, impossibile aprire la cartella ".$origini;
}
}
5ym0
Ciao
non so se può aiutarti ma potresti usare jalbum
o almeno una parte del codice
ciao
Scusa se rispondo solo oggi, ma non ho proprio avuto tempo di accedere al forum.Originariamente inviato da Symon83
Prendendo spunto da script qua e là son riuscito a buttar giù qualcosa ma non funziona niente..il codice ( anche se molto confuso ) è questo.....
Non mi va di sembrare pedante, ma hai scritto una vagonata di codice senza specificare quale sia l'errore.
Hai un messaggio di errore?
Cos'è dovrebbe eseguire lo script, e che invece non funziona?
Non si visualizzano le thumbnails???
Se posso darti un consiglio, poi, ragiona per step.
Scopiazzando di qua e di la, si inseriscono in uno script tante belle cose, poi magari non funzionano le funzioni di base e tutto lo script sembra non funzionare.
Ragioniamo per step, quindi.
Lo script apre una cartella dove dovrebbero esserci immagini.
Manda in echo (semplicemente) i nomi delle immagini e delle miniature.
Se questo step funziona, allora passa al successivo, cioè la visualizzazione delle immagini stesse.
Solo in ultimo, inserisci il layout e tutto l'HTML.
![]()
Ok, parto allora dal primo pezzo..
Allora con questo codice vedo correttamente il riepilo degli album con la loro miniatura e il titolo che pesca dal txt. Quando clicco sul titolo per entrare nell'album il link che richiama è questo per esempio:Codice PHP:
<?
//scelgo la directory dove inserirò gli album
$dir="../public/gallery/";
$colonne=2;
$n=0;
if (is_dir($dir))
{
if ($dh = opendir($dir))
{
while (($file = readdir($dh)) != false)
{
if($file != "." and $file != "..")
{
$album[$n]=$file;
$n++;
}
}
for($i=0;$i<count($album);$i++)
{
//creo due cartelle ''big'' e ''small'' dove inserisco le miniature e le foto grandi
include("elabora_img_gal.php");
//nella cartella principale dell'album metto un txt che sarà poi il titolo dell'album
$tit="$dir$album[$i]/titolo.txt";
echo $tit;
$contenuto = file_get_contents($tit);
if($i % $colonne==0)
{
echo "<tr>\n";
}
echo "<td>";
//qui è dove ho problemi su queste due righe
include("random_foto.php");
echo "[url='$PHP_SELF?album=$album[$i]']".$contenuto."[/url]";
if($i % $colonne == ($colonne - 1) || ($i+1) == count($album))
{
echo "</tr>\n";
}
}
closedir($dh);
}
}
http://www.miosito.com/test/galleria.php?album=auto
gli errori che stampa sono questi:
../public/gallery/a/titolo.txt
Warning: file_get_contents(../public/gallery/a/titolo.txt) [function.file-get-contents]: failed to open stream: No such file or directory in D:\Inetpub\webs\miosito\test\galleria.php on line 26
Warning: opendir(../public/gallery/a/) [function.opendir]: failed to open dir: No such file or directory in D:\Inetpub\webs\miosito\test\random_foto.php on line 33
Attenzione, impossibile aprire la cartella ../public/gallery/a/
nel primo errore mi da errore su qua
$contenuto = file_get_contents($tit);
che non capisco perchè lo va a cercare sotto
../public/gallery/a/titolo.txt
per il secondo errrore il codice è questo in random_foto.php
Riesci ad aiutarmi pe rfavore? grazieCodice PHP:
$small="../public/gallery/".$album[$i]."/small/";
$origini="../public/gallery/".$album[$i]."/";
$s=0;
if(file_exists($small)){
$mina=array();
if($cart= opendir($small)){
while (($min = readdir($cart)) !== false) {
if($min!="." and $min!=".." and $min!='Thumbs.db'){
$mina[$s]=$min;
$s++;
}
}
if(count($mina)==0){
echo "problemi";
}else{
$indice=rand(0,(count($immagini)-1));
$pat=$small.$mina[$indice];
//echo $pat;
echo "[img]$pat[/img]";
}
}else{
echo "Attenzione, impossibile aprire la cartella ".$small;
}
}else{
$mina=array();
if($cart= opendir($origini)){ // RIGA D'ERRORE
while (($min = readdir($cart)) !== false) {
if($min!="." and $min!=".." and $min!='Thumbs.db'){
$mina[$s]=$min;
$s++;
}
}
if(count($mina)==0){
echo "problemi";
}else{
$indice=rand(0,(count($immagini)-1));
$pat=$small.$mina[$indice];
//echo $pat;
echo "[img]$pat[/img]";
}
}else{
echo "Attenzione, impossibile aprire la cartella ".$origini; //ERRRORE STAMPATO
}
}
5ym0
Non hai fatto proprio come ti ha (giustamente) suggerito alcio
In quel codice c'e' un sacco di roba in piu' del minimo necessario ed e' difficile capire quale sia il problema senza avere sotto mano la tua struttura delle directory: dagli errori e' evidente che ci sono problemi coi path, ma dire esattamente quali e' dura con informazioni parziali.
Inoltre una cosa sicuramente da rivedere e' il fatto che includi un sacco di volte gli stessi file, se devi compiere piu' volte le stesse operazioni, non fare mille include: nei file esterni crei delle funzioni, includi i file UNA volta e poi chiami le funzioni tutte le volte che vuoi.
Scusa ma dov'è che includo più volte gli stessi file, a cosa ti riferisci?
5ym0
Hai due include all'interno di un ciclo for, quindi vengono inclusi per ogni file che elabori.