[PHP] Immagini caricate su server diverse da quelle mostrate

  • Creatore Discussione Creatore Discussione iucaa
  • Data di inizio Data di inizio

iucaa

Nuovo Utente
20 Nov 2017
14
0
1
59
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!.
 
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!.
 
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).
 
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
 
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?
 
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:
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:
@Lucaa
Da regolamento del forum, come tutti noi sei tenuto ad usare il tag
code-gif.6007
o il tag
php-png.6009
per il PHP, quando posti del codice, oppure la funzione codice dalla barra degli strumenti
box-inserisci-2-png-jpg.6008

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
Ok grazie per le indicazioni, seguo le regole, fatto un saluto
 
Ultima modifica:
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>
 
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
Ok grazie, appena ho tempo mi ci metto (è codice standard bootstrap 3 comunque non l'ho scritto io) :(, ciao un saluto
 

Discussioni simili