gallery visualizza la prima immagine

iperboreo

Utente Attivo
21 Giu 2012
126
0
16
Ciao ho un problemino strano, non capisco,
ho un "form" multiplo per l'upload foto e funziona bene, carica le foto nel database.

ma se carico per esempio 2 immagini, (chiaramente diverse) mi visualizza due volte la prima immagine, anche se nel database sono caricate giustamente, diverse.
DA CHE DIPENDE? io estraggo tutte le foto dal db, ma se carico piu foto contemporaneamente mi visualizza solo la prima foto ripetuta tante volte quante sono le foto che ho selezionato per il caricamento.

Grazie se potete darmi il suggerimento.
 

iperboreo

Utente Attivo
21 Giu 2012
126
0
16
Ciao ecco il form
HTML:
<form method="post" action="upload_foto.php" enctype='multipart/form-data'>
<b>Titolo:<br />
<input name="titolo" type="text" size="25"><br />
<b>Descrizione:<br />
<textarea name="descrizione" cols="20" rows="6"></textarea><br />
<b>Immagine:<br />
<input id="imagefile" name="imagefile[]" type="file" multiple="multiple"><br />
<!-- <input type="file" name="imagefile"    multiple="multiple"  > -->
<input type="submit" name="Submit" value="Carica">
</form>

e il file che visualizza le immagini prese dal db, dove il form sopra, correttamente salva.

PHP:
<?php
session_start();

@include 'configa.php';

// apro la tabella che ci servirà per l'impaginazione
echo "<table>";

// recupero i dati dal DB
$query = "SELECT * FROM images WHERE id_utente='".$_SESSION['id']."' ORDER By id";



$res = mysql_query($query) or die (mysql_error());

// numero delle immagini presenti nel DB
$n_img = mysql_num_rows($res);

// verifico che il DB ospiti almeno un'immagine
if($n_img >= 1 ){
  // stabilisco il numero di righe e colonne della nostra tabella per l'impagninazione
  $colonne = 6;
  $righe=0;


  // ciclo tutti i record recuperati attraverso la nostra query
  while ($f=@mysql_fetch_array($res)){
    $righe++;
    $id = $f['id'];
    $titolo = stripslashes($f['Titolo']);
    $nome = stripslashes($f['Nome']);
    $descrizione = stripslashes($f['Descrizione']);

    // stampo la cella contenente l'immagine
    echo "<td width=\"0%\">\n";
    echo $titolo . "<br />";
    echo "<a href=\"visual.php?id=" . $id . "\">";
    echo "<img src=\"" . $path_img . "tb_" . $nome . "\" border=\"0\"></a>";
    echo "<br />" . $descrizione;
echo "<br />";
    echo "<a href=\"elimina_foto.php?id_Titolo=$id\">Elimina</a><br>";  

    echo "</td>\n";

    // quando il numero di righe equivale al valore impostato nella variabile $righe
    // procedo a chiudere la linea e ad azzerare il valore di $righe
    if ($righe == $colonne){
      echo "</tr><tr>\n";
      $righe = 0;
    }
  }
}else{
  // stampo un messaggio se il DB è vuoto
  echo "Nessuna immagine inserita.";
}
@mysql_close($cn);
echo "</table>";
?>
 
Ultima modifica di un moderatore:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
così a naso nella visualizzazione non vedo errori, ma da quello che dici
io estraggo tutte le foto dal db, ma se carico piu foto contemporaneamente mi visualizza solo la prima foto ripetuta tante volte quante sono le foto che ho selezionato per il caricamento.
probabilmente dipende da come gestisci il nome delle immagini in caso di immagini multiple
ti consiglio di mettere un var_dump dove leggi i dati dal form

PHP:
var_dump($_FILE['imagefile']);

ti accorgi che $_FILE è un array di array quindi se prendi per sapere il nome $_FILE['imagefile']['name'] sbagli
 

iperboreo

Utente Attivo
21 Giu 2012
126
0
16
Ciao scusa ma non ho capito dove mettere il var_dump nel file di visualizzazione o nel form?

Eppure il form lavora bene, inserisce le immagini nel database, ma poi è il file gallery.php che le visualizza, che mostra solo una foto ripetutamente.

Non capisco il nesso con il form di upload
 

iperboreo

Utente Attivo
21 Giu 2012
126
0
16
BORGO, MI CORREGGO SCUSA, IN REALTA NEL DATABASE INSERISCE SOLO UNA FOTO, NON TUTTE,

cioè io ne seleziome mettiamo 3, e lui mi inserisce nel database solo una di queste, credo la prima, poi il file di visualizzazione
mi mostra quella foto 3 volte.


SCUSATE IL CASINO ORA HO APPURATO CHE FA COSI
 

iperboreo

Utente Attivo
21 Giu 2012
126
0
16
Questo è il file upload.php che dovrebbe inserire i file nel database, ma inserisce solo una foto indipendentemente che io ne selezioni tante

GRAZIE ANCORA

PHP:
<?php
session_start();


$id_utente = $_SESSION['id'];

if(isset($_POST['Submit'])){
  // faccio un po' di inclusioni...
  @include 'configa.php';
  @require 'function.php';

  // Creo una array con i formati accettati
  $tipi_consentiti = array("image/gif","image/jpeg","image/png","image/bitmap" );
  //print_r($_FILES);
  $i = 0;
 // $lista = $_FILES['imagefile']['name'];
  foreach($_FILES as $file){
    foreach($file['name'] as $filename){
  // verifico che il formato del file sia tra quelli accettati
  if (@in_array($file['type'][$i], $tipi_consentiti)){ 
    // copio il file nella cartella delle immagini
    @copy ($file['tmp_name'][$i], $path_img . $filename);

    // recupero i dati dal form
    $titolo = @addslashes($_POST['titolo']);
    $descrizione = @addslashes($_POST['descrizione']);
    $nome = @addslashes($filename);
    $path = $path_img . stripslashes($nome);
    $tipo = @addslashes($file['type'][$i]);

    // creo la miniatura
	@makeThumb($path_img,$path,$nome,$tipo,100,100,"tb_");
    @makeThumb($path_img,$path,$nome,$tipo,48,48,"mini_");
    // aggiorno il database


   $query = "INSERT INTO images (Titolo,Descrizione,Nome,Tipo,id_utente) 

VALUES('$titolo','$descrizione','$nome','$tipo','$id_utente')";

    $res = @mysql_query($query) or die (mysql_error());
    header("location:http://basefull.altervista.org/foto.php");


    // Stampo a video un po' di informazioni

  }else{
    // stampo un messaggio di errore nel caso in cui il file sia di un formato non consentito

@header("Location: foto.php");
  
  }
} 
}
}
?>
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
prova a mettere un var_dump e commentare l'header per vedere i risultati

PHP:
   $query = "INSERT INTO images (Titolo,Descrizione,Nome,Tipo,id_utente) VALUES('$titolo','$descrizione','$nome','$tipo','$id_utente')";
    var_dump($query );echo "<br />;
    $res = @mysql_query($query) or die (mysql_error());
    //header("location:http://basefull.altervista.org/foto.php");
se carichi es. tre foto dovresti vedere tre query diverse, se sono uguali c'è da rivedere probabilmente i foreach
 

iperboreo

Utente Attivo
21 Giu 2012
126
0
16
ciao,
ho aggiunto il var dump, ma non so bene cosa devo notare adesso, cosa mi aiuta a fare quesa aggiunta?
non so cosa guardare.
grazie
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
il var dump ti restituisce il valore delle stringa
es se carichi due foto
1) tramonto , descrivo il tramonto, tramonto.jpg , 37
2) alba , decrivo il sorgere del sole , alba.jpg , 37
devi vedere stampate due righe (xyx = quanti caratteri, vedrai un numero)

string(xyz) "INSERT INTO images (Titolo,Descrizione,Nome,Tipo,id_utente) VALUES('tramonto','descrivo il tramonto','tramonto.jpg','jpg','37')"
string(xyz) "INSERT INTO images (Titolo,Descrizione,Nome,Tipo,id_utente) VALUES('alba','decrivo il sorgere del sole','alba.jpg','jpg','37')"

se vedi come sopra allora bisogna cercare l'errore da qualche altra parte, se invece vedi
string(xyz) "INSERT INTO images (Titolo,Descrizione,Nome,Tipo,id_utente) VALUES('tramonto','descrivo il tramonto','tramonto.jpg','jpg','37')"
string(xyz) "INSERT INTO images (Titolo,Descrizione,Nome,Tipo,id_utente) VALUES('tramonto','descrivo il tramonto','tramonto.jpg','jpg','37')"

cioè due righe uguali probabilmente l'errore è nella lettura nel foreach
(hai commentato l'header location? altrimenti non fai in tempo a vederle)

fai quella prova e sappimi dire se le righe sono diverse o sono tutte uguali, se sono uguali do un occhio al foreach
edit
anche se penso che sia li

edit 2
togli tutte quelle @ se qualcosa da errore non viene visualizzato e quindi non capisci dove lo script si pianta
 
Ultima modifica:

iperboreo

Utente Attivo
21 Giu 2012
126
0
16
Ciao rieccomi,
ho provato a togliere tutte le @ per vedere i resoconti, e ad aggiungere il var_dump,
ma non cambia nulla, non vedo nessuna scritta, mi carica le foto uguali e basta, devo aver sbagliato.

Ho modificato il file upload_foto (a cui punta il form) in questo modo:
PHP:
<?php
session_start();


$id_utente = $_SESSION['id'];

if(isset($_POST['Submit'])){
  // faccio un po' di inclusioni...
  include 'configa.php';
  require 'function.php';

  // Creo una array con i formati accettati
  $tipi_consentiti = array("image/gif","image/jpeg","image/png","image/bitmap" );
  //print_r($_FILES);
  $i = 0;
 // $lista = $_FILES['imagefile']['name'];
  foreach($_FILES as $file){
    foreach($file['name'] as $filename){
  // verifico che il formato del file sia tra quelli accettati
  if (in_array($file['type'][$i], $tipi_consentiti)){ 
    // copio il file nella cartella delle immagini
    copy ($file['tmp_name'][$i], $path_img . $filename);

    // recupero i dati dal form
    $titolo = addslashes($_POST['titolo']);
    $descrizione = addslashes($_POST['descrizione']);
    $nome = addslashes($filename);
    $path = $path_img . stripslashes($nome);
    $tipo = addslashes($file['type'][$i]);

    // creo la miniatura
	makeThumb($path_img,$path,$nome,$tipo,100,100,"tb_");
    makeThumb($path_img,$path,$nome,$tipo,48,48,"mini_");
    // aggiorno il database


   $query = "INSERT INTO images (Titolo,Descrizione,Nome,Tipo,id_utente) VALUES('$titolo','$descrizione','$nome','$tipo','$id_utente')";

var_dump($query ); echo "<br />"; 


    $res = mysql_query($query) or die (mysql_error());
    header("location:http://basefull.altervista.org/foto.php");


    // Stampo a video un po' di informazioni

  }else{
    // stampo un messaggio di errore nel caso in cui il file sia di un formato non consentito

header("Location: foto.php");
  
  }
} 
}
}
?>
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
ho provato l'inserimento multiplo (provato con 2 immagini) e mi sembra che funzi, infatti il var_dump mi restituisce (l'id_utente valorizzato a caso):
string(121) "INSERT INTO images (Titolo,Descrizione,Nome,Tipo,id_utente) VALUES('aaaa','bbbbbb','lago_santo-02.jpg','image/jpeg','33')"
string(121) "INSERT INTO images (Titolo,Descrizione,Nome,Tipo,id_utente) VALUES('aaaa','bbbbbb','lago_santo-01.jpg','image/jpeg','33')"

quindi per prima cosa verifica e sappimi dire se es. inserisci due immagini
1) con phpmyadmin verifica come sono i record
2) si caricano le due immagini e si creano le tumbs
?

poi per una verifica posta come è strutturata la tabella images
 

iperboreo

Utente Attivo
21 Giu 2012
126
0
16
Ciao Borgo e grazie,

qui la tabella "images"
PHP:
CREATE TABLE IF NOT EXISTS `images` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `id_utente` int(11) NOT NULL,
  `Titolo` varchar(255) NOT NULL DEFAULT '',
  `Descrizione` varchar(255) NOT NULL DEFAULT '',
  `Nome` varchar(255) NOT NULL DEFAULT '',
  `Tipo` varchar(255) NOT NULL DEFAULT '',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=308 ;

e qui RIALLEGO il file precedente che fa l'upload, ma che invece su due foto ne carica solo una nel database mysql,
e poi ti allego in ultimo il file gallery che visualizza le immagini, e invece di due foto, mi mostra due volte la foto l'unica inserita.

PHP:
<?php
session_start();


$id_utente = $_SESSION['id'];

if(isset($_POST['Submit'])){
  // faccio un po' di inclusioni...
  include 'configa.php';
  require 'function.php';

  // Creo una array con i formati accettati
  $tipi_consentiti = array("image/gif","image/jpeg","image/png","image/bitmap" );
  //print_r($_FILES);
  $i = 0;
 // $lista = $_FILES['imagefile']['name'];
  foreach($_FILES as $file){
    foreach($file['name'] as $filename){
  // verifico che il formato del file sia tra quelli accettati
  if (in_array($file['type'][$i], $tipi_consentiti)){ 
    // copio il file nella cartella delle immagini
    copy ($file['tmp_name'][$i], $path_img . $filename);

    // recupero i dati dal form
    $titolo = addslashes($_POST['titolo']);
    $descrizione = addslashes($_POST['descrizione']);
    $nome = addslashes($filename);
    $path = $path_img . stripslashes($nome);
    $tipo = addslashes($file['type'][$i]);

    // creo la miniatura
	makeThumb($path_img,$path,$nome,$tipo,100,100,"tb_");
    makeThumb($path_img,$path,$nome,$tipo,48,48,"mini_");
    // aggiorno il database


   $query = "INSERT INTO images (Titolo,Descrizione,Nome,Tipo,id_utente) VALUES('$titolo','$descrizione','$nome','$tipo','$id_utente')";

var_dump($query ); echo "<br />"; 


    $res = mysql_query($query) or die (mysql_error());
    header("location:http://basefull.altervista.org/foto.php");


    // Stampo a video un po' di informazioni
  }else{
    // stampo un messaggio di errore nel caso in cui il file sia di un formato non consentito

header("Location: foto.php");
  
  }
} 
}
}
?>

file gallery.php che estrae le foto e le visualizza, anche se tutte scompigliate, non riuscendo a "tagliarle tutte uguali":
PHP:
<?php
session_start();

@include 'configa.php';

// apro la tabella che ci servirà per l'impaginazione
echo "<table>";

// recupero i dati dal DB
$query = "SELECT * FROM images WHERE id_utente='".$_SESSION['id']."' ORDER By id";



$res = mysql_query($query) or die (mysql_error());

// numero delle immagini presenti nel DB
$n_img = mysql_num_rows($res);

// verifico che il DB ospiti almeno un'immagine
if($n_img >= 1 ){
  // stabilisco il numero di righe e colonne della nostra tabella per l'impagninazione
  $colonne = 6;
  $righe=0;


  // ciclo tutti i record recuperati attraverso la nostra query
  while ($f=@mysql_fetch_array($res)){
    $righe++;
    $id = $f['id'];
    $titolo = stripslashes($f['Titolo']);
    $nome = stripslashes($f['Nome']);
    $descrizione = stripslashes($f['Descrizione']);

    // stampo la cella contenente l'immagine
    echo "<td width=\"0%\">\n";
    echo $titolo . "<br />";
    echo "<a href=\"visual.php?id=" . $id . "\">";
    echo "<img src=\"" . $path_img . "tb_" . $nome . "\" border=\"0\"></a>";
    echo "<br />" . $descrizione;
echo "<br />";
    echo "<a href=\"elimina_foto.php?id_Titolo=$id\">Elimina</a><br>";  

    echo "</td>\n";

    // quando il numero di righe equivale al valore impostato nella variabile $righe
    // procedo a chiudere la linea e ad azzerare il valore di $righe
    if ($righe == $colonne){
      echo "</tr><tr>\n";
      $righe = 0;
    }
  }
}else{
  // stampo un messaggio se il DB è vuoto
  echo "Nessuna immagine inserita.";
}
@mysql_close($cn);
echo "</table>";
?>
 

iperboreo

Utente Attivo
21 Giu 2012
126
0
16
ciao Borgo,
hai detto che a te funziona tutto? hai provato?
cosi com'è non va, continua a caricare una sola foto nel db

grazie
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
ecco ho visto, se non erro, dove hai l'inghippo
dentro il secondo foreach hai l'istruzione
header("location:http://basefull.altervista.org/foto.php");
questa ti fa uscire dopo il primo inserimento, quindi i successivi non vengono inseriti.
prima prova a commentarla, poi spostala fuori dai forheac
 

iperboreo

Utente Attivo
21 Giu 2012
126
0
16
header pagina tolto

Ciao Borgo grazie,
in effetti se tolgo il primo header.... mi carica tutto, ma non ritorna nella pagina foto del sito, resta nella pagina del file upload.php.

Come devo fare? grazie

PHP:
<?php
session_start();


$id_utente = $_SESSION['id'];

if(isset($_POST['Submit'])){
  // faccio un po' di inclusioni...
  include 'configa.php';
  require 'function.php';

  // Creo una array con i formati accettati
  $tipi_consentiti = array("image/gif","image/jpeg","image/png","image/bitmap" );
  //print_r($_FILES);
  $i = 0;
 // $lista = $_FILES['imagefile']['name'];
  foreach($_FILES as $file){
    foreach($file['name'] as $filename){
  // verifico che il formato del file sia tra quelli accettati
  if (in_array($file['type'][$i], $tipi_consentiti)){ 
    // copio il file nella cartella delle immagini
    copy ($file['tmp_name'][$i], $path_img . $filename);

    // recupero i dati dal form
    $titolo = addslashes($_POST['titolo']);
    $descrizione = addslashes($_POST['descrizione']);
    $nome = addslashes($filename);
    $path = $path_img . stripslashes($nome);
    $tipo = addslashes($file['type'][$i]);

    // creo la miniatura
	makeThumb($path_img,$path,$nome,$tipo,100,100,"tb_");
    makeThumb($path_img,$path,$nome,$tipo,48,48,"mini_");
    // aggiorno il database


   $query = "INSERT INTO images (Titolo,Descrizione,Nome,Tipo,id_utente) VALUES('$titolo','$descrizione','$nome','$tipo','$id_utente')";

var_dump($query ); echo "<br />"; 

    $res = mysql_query($query) or die (mysql_error());

        header ????????????????

    // Stampo a video un po' di informazioni
  }else{
    // stampo un messaggio di errore nel caso in cui il file sia di un formato non consentito

header("Location: foto.php");
  
  }
} 
}
}
?>
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
spostalo appena dopo la fine del primo foreach, cioe quando hai finito di ciclare tutto il $_FILES, quando ha finito torna alla pagina che vuoi
 
Discussioni simili
Autore Titolo Forum Risposte Data
L Eliminazione di una pagina dalla gallery SEO e Posizionamento 0
felino [Wordpress] Gallery con foto selezionabili dall'utente WordPress 0
P [Javascript] Slide gallery con frecce Javascript 2
ANDREA20 [Javascript] Slideshow Gallery Javascript 0
felino [WordPress] Gallery a tutto schermo per i dispositivi mobile WordPress 1
S [HTML] Problemi con Blueimp image gallery su Chrome e Firefox HTML e CSS 2
T [HTML] foto gallery HTML e CSS 1
F [PHP] joomla - responsive photo gallery Joomla 6
A Caricare foto in una gallery PHP 0
felino Gallery multilingua WordPress 0
O Gallery con immagini zoomabili Javascript 1
F gallery jquery-ajax Javascript 0
S Gallery con Tag foto: problema doppia chiamata ajax con JQuery jQuery 2
I dissolvenza ed immagini anteprima in slide gallery Javascript 2
M chrome - gallery svbuilder HTML e CSS 2
I problema gallery PHP 0
E joomla e phoca gallery problemi immagine categoria Joomla 8
E phoca gallery e immagine della categoria Presentati al Forum 4
redevilduil dividere la gallery in pagine con php PHP 3
M Creare una gallery con Dreamweaver HTML e CSS 21
I car cutaways per gallery Webdesign e Grafica 0
K CMS per gallery in .NET CMS (Content Management System) 0
D Free image gallery per wordpress WordPress 4
D Gallery foto jQuery 25
Web Designer Avatar Gallery MyBB CMS (Content Management System) 0
K Vendo sito FOTOANNUNCI GALLERY Offerte e Richieste di Lavoro e/o Collaborazione 0
G problema utilizzo highslide-gallery Javascript 0
M [Worpress] Problema con Nextgen Gallery CMS (Content Management System) 2
B Video Gallery in PHP PHP 3
P Gallery in php PHP 1
Artemisia Jquery gallery con più box testo jQuery 0
S Aiuto! Gallery flash e xml! Presentazione aziendale Flash 1
M Pagina PHP con gallery jQuery PHP 0
M come si fa a creare una gallery con flash Flash 0
T gallery before after in flash. Flash 2
T flash gallery e rollover HTML e CSS 4
danlupo Gallery PHP 5
R Gallery con zoom Javascript 4
N vi prego aiuto con una gallery Flash 2
I Gallery con effetto fade Javascript 0
M Consiglio modifica script gallery Javascript 3
M Domanda su gallery dinamica Flash 4
C gallery come questa!!! Flash 2
P Problemi con Gallery Flash 3
A Problema script gallery Flash 0
K Gallery in FLASH, aiuto! Flash 1
F Photo Gallery in Flash Flash 4
muvadi problema con script di una gallery PHP 1
M Java Gallery problem Javascript 3
G gallery foto con voto PHP 1

Discussioni simili