[PHP] Immagini caricate su server diverse da quelle mostrate

iucaa

Nuovo Utente
20 Nov 2017
14
0
1
55
Buonasera a tutti,
sto letteralmente impazzendo, ho due script per la gestione di foto jpg sul mio sito, nel primo script php, nella parte html/javascript colleziono il titolo, la didascalia e la foto stessa (posso sceglire quattro tipi di foto), nello script successivo carico la foto sul server e faccio tutta una serie di operazioni quali il controllo delle dimensioni, il naming eccetera, tutto funziona correttamente come voluto, verifico che nella cartella di destinazione del server sono presenti le foto che ho indicato, le scarico in ftp sulla cartella del sito locale e le verifico e sono esattamente quelle che ho caricato, ma se vado a ricaricare il form dove le inserisco (e dove ci sono mostrate tutte e quattro le foto dell'utente in questione, caricate da server) mi appare una foto diversa da quella nuova! (spesso quella precedente): non è una questione di cache (in testa agli script uso le istruzioni no cache sia lato php che html), ho provato a cambiare il browser (chrome e firefox) ma la musica è sempre la stessa (in questi browser ho anche il plugin che mi pulisce la cache), in 35 anni di carriera informatica è una cosa che non mi e' mai capitata!.
 

iucaa

Nuovo Utente
20 Nov 2017
14
0
1
55
Credo che al 99% non dipenda dal mio codice ma dall'accopiata cloudflare/altervista!, visto che tra l'altro con chrome il codice mi funziona e con firefox no!.
 

iucaa

Nuovo Utente
20 Nov 2017
14
0
1
55
Ciao Macus
grazie per la tua risposta, tu hai ragione e anche il tuo prof, ma purtroppo non programmo da ieri ma da circa 35 anni :), ci ho passato notti intere, le immagini vengono scaricate sul sito, e nominate correttamente solo che visualizzandole da web, dalla console dell'hosting provider vedo la vecchia foto (non aggiornata), se la scarico con l'FTP in locale vedo quella nuova, inutile cancellare la cache del browser, inutile cancellare tutta la cartella locale e riscaricare il contenuto il risultato è sempre le stesso!, se hai voglia ti mostro con teamviewer dal mio pc di cosa parliamo (magari mi sono incartato io o sto diventando "rinco").
Un saluto

PS: stasera mi sono accorto che il problema c'e' anche con un'altra procedura anche che gestisce altre immagini (che ovviamente funzionava).
 

iucaa

Nuovo Utente
20 Nov 2017
14
0
1
55
Non hai solo la cache del browser.....
Che framework usi? NESSUNO
Versione di php? PHP Version 5.3.2
Web server?
Windows NT VB01F001 6.1 build 7601 ((null) Service Pack 1) i586 (
Apache 2.0 Handler)

(Su altervista)
Librerie js? jQuery v2.0.0, Bootstrap v3.0.1
É una web app o un sito? sito classico web
Utilizzi app.appcache? NO
Utilizzi un sistema di templating per il rendering? NO

Grazie
 

macus_adi

Utente Attivo
5 Dic 2017
1.265
82
48
IT/SW
Detta così e stando a quanto da te asserito É COLPA DEL SERVER!

Magari sarebbe utile avere/vedere un link e/o il pezzetto di codice atto al salvataggio e al recupero dell'img....
Link?
Codice?
 

iucaa

Nuovo Utente
20 Nov 2017
14
0
1
55
Ciao Macus, non riesco ad inserirlo,..... è oltre il limite consentito dal sito :(
di seguito il pezzetto di codice html che visualizza le 4 foto (A,B,C,D), prelevate da una tabella che contiene i nomi delle stesse compreso l'estensione, non credo che sia significativo inserire il codice di lettura della tabella mysql

Codice:
    <div class="col-md-3">
           <span class="label label-warning" title="">Figura Intera (FI)</span>
          <img id="photoimg[]"
             name="photoimg[]"
            src="images/users/album/D.jpg" 
            title="Fai click sulla foto per gestire la foto, inserimento, modifica e cancellazione "
            width="100"
            class="thumbnail"
            alt="Figura Intera (FI) "
          onclick="mostraModalFoto('images/users/album/D.jpg',''                                     ,''
                                     ,'cnk7QeuqkuH_9Wu20'
                                     ,'FI'
                                     , 1);"                        
          />
          <p id="titolo[]" name="titolo[]"></p>
          <p id="didascalia[]" name="didascalia[]" ></p>
          <p>
           <span class="label label-success" title="Questa foto risulta approvata e quindi visibile a tutti"> Approvata <span class="glyphicon glyphicon-thumbs-up"></span>  
             </p>        
           </div><!-- row interna -->
 
Ultima modifica:

iucaa

Nuovo Utente
20 Nov 2017
14
0
1
55
Parte del codice incaricato del trasferimento dell'immagine e memorizzazione su disco php


Codice:
$filenametmp=$_FILES['filefotoload']['tmp_name'];
$fototype=$_FILES['filefotoload']['type'];
$filerr=@$_FILES['filefotoload']['error'];
$bytes = filesize(@$_FILES['filefotoload']['tmp_name']);

$filetotmp = APP_SYSTEM .   APPURL. "xxxtmp_ID".$_POST['id'] .  "." . $ext;
$fileonrecord = $lastidinsert . "." . $ext;
$fotofileuser = $lastidinsert . "." . $ext;
if(move_uploaded_file($filenametmp, $filetotmp))     {
   echo  " - OK TRASFERITO SU SERVER ";);
     }
 
Ultima modifica:

Max 1

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
29 Feb 2012
4.232
321
83
@Lucaa
Da regolamento del forum, come tutti noi sei tenuto ad usare il tag
o il tag
per il PHP, quando posti del codice, oppure la funzione codice dalla barra degli strumenti

Inoltre ti prego di leggere attentamente il regolamento generale del forum e quello di sezione dove posti
Grazie

Correggi i tuoi post!!
 
  • Like
Reactions: iucaa

iucaa

Nuovo Utente
20 Nov 2017
14
0
1
55
Ok grazie per le indicazioni, seguo le regole, fatto un saluto
 
Ultima modifica:

iucaa

Nuovo Utente
20 Nov 2017
14
0
1
55
Carica le rispettive informazioni della foto sulla quale si è cliccato quali nome file della foto , didascalia, e altri controlli passate come parametri, poi esegue la visualizzazione del form in modalità Modal

Codice:
<script>
function mostraModalFoto(fotoname,
                         titolo,
                         didascalia,
                         idfoto,
                         tipofoto,
                         approvata){
    if (tipofoto == 'PP'){ document.getElementById('tipofoto').value=0;        }
    if (tipofoto == 'MB'){ document.getElementById('tipofoto').value=1;        }
    if (tipofoto == 'PA'){ document.getElementById('tipofoto').value=2;        }
    if (tipofoto == 'FI'){ document.getElementById('tipofoto').value=3;        }

document.getElementById('fotofilename').value=fotoname;     
document.getElementById('modalfoto').src=fotoname;     
document.getElementById('titolo_frmmodal').value=titolo;
document.getElementById('didascalia_frmmodal').value=didascalia;
var str = document.getElementById('modalfoto').src;
var n = str.includes("image_nf.jpg");
if (str.includes("image_nf.jpg")){
   document.form1.action.value = 'ins';
   document.getElementById('buttonmodalconferma').disabled = true;
   document.getElementById('buttonmodalconferma').innerHTML = "Inserisci"
}

document.getElementById('idfoto').value=idfoto;   
if (document.getElementById('idfoto').value==0) {
   document.form1.action.value = 'ins';
   document.getElementById('modallabelinsmodifica').innerHTML = "<strong>Mario Rossi</strong> - Inserisci Foto ";     
   document.getElementById('buttonmodalconferma').innerHTML = "Inserisci";     
   document.getElementById('buttonmodalconferma').disabled = true; 
   document.getElementById('buttonmodalelimina').disabled = true;
   document.getElementById('filefotoload').innerHTML = "Inserisci";     
   document.getElementById('titolo_frmmodal').value = "Mario rossi - "+document.getElementById('titolo_frmmodal').value;

 
   } else {
   document.form1.action.value = 'upd'; 
   document.getElementById('modallabelinsmodifica').innerHTML = "Modifica Foto ("+fotoname+")";     

}                     

if (approvata==1){
   $('#fotoapprovata').bootstrapToggle('on');
   } else {
   $('#fotoapprovata').bootstrapToggle('off');     
}

switch (tipofoto) {

    case 'PP':
      document.getElementById('tipofotopp').checked = true;   
      break;
    case 'MB':
      document.getElementById('tipofotomb').checked = true;   
      break;
    case 'PA':
      document.getElementById('tipofotopa').checked = true;   
      break;
    case 'FI':
      document.getElementById('tipofotofi').checked = true;   
      break;


}    // end select


$(document).ready(function() {
   $('#modal-container-000000').modal({
    show: true,
   })
 });


}

</script>
 

macus_adi

Utente Attivo
5 Dic 2017
1.265
82
48
IT/SW
Carica le rispettive informazioni della foto sulla quale si è cliccato quali nome file della foto , didascalia, e altri controlli passate come parametri, poi esegue la visualizzazione del form in modalità Modal
Ti do un consiglio... BUTTA STO CODICE....

Codice:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>TEST</title>
    <script src="js/lib/underscore/underscore.js"></script>
    <script src="js/lib/jquery/jquery3.js"></script>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
    <script src="js/app.js"></script>
</head>
<body>

<img class="imgclick" src="icon-large-download.png" data-tipofoto="1" data-id="1" data-name="test name" data-alt="test" data-user="user" />

<div class="modal" id="exampleModal" tabindex="-1" role="dialog">
    <div class="modal-dialog" role="document">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title" id="titolo">Modal title</h5>
                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                    <span aria-hidden="true">&times;</span>
                </button>
            </div>
            <div class="modal-body" id="content">
                <div id="container-img">

                </div>
                <div id="content-data">

                </div>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-primary">Save changes</button>
                <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
            </div>
        </div>
    </div>
</div>

</body>
</html>
File app.js
Codice:
function image_model(img){
    return img[0].dataset;
}
function get_info_image(e){
    var self=this;
    var current_img=$(e.currentTarget);
    var info=image_model(current_img);

    $('#container-img').html('<img src="'+current_img[0].src+'" />');
    var data_cnt=$('#content-data');
    data_cnt.html(' ');
    _.each(info,function(v,k){
       data_cnt.append('<div>'+k+': <b>'+v+'</b></div>');
    });
    $('#exampleModal').modal('show');
}

$(document).ready(function(){

    $('.imgclick').on('click',function(e){
        get_info_image(e);
    });

});
Utilizza i data di HTML5
 
  • Like
Reactions: iucaa

iucaa

Nuovo Utente
20 Nov 2017
14
0
1
55
Ok grazie, appena ho tempo mi ci metto (è codice standard bootstrap 3 comunque non l'ho scritto io) :(, ciao un saluto