Jump to content
Sign in to follow this  
salvo89

Aiuto con script upload immagini

Recommended Posts

Salve ragazzi, come va?

 

vi scrivo per un problema che mi sta facendo uscire pazzo. Sto creando uno script per la gestione news e l'inserimento delle immagini direttamente in database. Ora inserimento, eliminazione e gestione nessun problema. Il problema si verifica nella modifica delle news. Finchè modifico testo e ricarico una nuova immagine, il database si aggiorna e modifica con successo il tutto. Ma ora io voglio modificare solo il testo senza modificare l'immagine perchè voglio mantenere l'immagine che avevo caricato in fase di creazione della news. Ecco, se quindi qui non carico l'immagine, il database mysql si riaggiorna eliminandomi ovviamente l'immagine stessa. Per evitare che questo succeda io ho fatto un piccolo if che però non ha effetto. Vi posto il codice che tra l'altro non so nemmeno se è giusto oppure no.

 

    <?php

        // Eseguo l'azione solo se è stato dato l'input di invio.
  if(isset($_POST['modifica']))
  {

  if(isset($_FILES['file_inviato'])) { 

  // Recupero alcune informazioni sul file inviato
  $nome_file_temporaneo = $_FILES['file_inviato']['tmp_name'];
  $nome_file_vero = $_FILES['file_inviato']['name'];
  $tipo_file = $_FILES['file_inviato']['type'];
    $dati_file = file_get_contents($nome_file_temporaneo);
  $dati_file = addslashes($dati_file);

  //mi stampo una variabile che mi riporta le informazioni sulla query SQL
  $stampaquery = "nome_file = '$nome_file_vero', tipo_file = '$tipo_file', dati_file = '$dati_file',";

  }
  else {

  //Altrimenti non carico nulla
  $stampaquery = "";
  }

           // Definisco altre variabili e faccio un replace per i caratteri speciali
  $data = $_POST['data'];
  $titolo = $_POST['titolo'];
  $breve_descrizione = $_POST['breve_descrizione'];
  $descrizione = $_POST['descrizione'];
  $titolo = str_replace("'", "´", $titolo);
  $breve_descrizione = str_replace("'", "´;", $breve_descrizione);
  $descrizione = str_replace("'", "´;", $descrizione);

  // Valido i campi
  if(empty($data) || empty($titolo) || empty($breve_descrizione) || empty($descrizione)) {
  mostra_form("<script>alert('Alcuni campi obbligatori non sono stati compilati');</script>");
  }
  else{

  // Query per inserire il file nel DB
  $conn = "UPDATE notizie SET  $stampaquery titolo = '$titolo', data = '$data', breve_descrizione = '$breve_descrizione', descrizione = '$descrizione' WHERE id_file =" .$_GET['id_file'];
  mysql_query($conn)
  OR die('Query non valida: ' . mysql_error());
  echo ("<script language='JavaScript' type='text/javascript'>alert('Notizia modificata con successo'); window.location='gestione_notizie.php'</script>");
  }
  }

  // Apro la query per stamparmi i dati delle news da visualizzare sugli input text e sulle textarea, nonchè l'immagine
  $conn = "SELECT * FROM notizie WHERE id_file=" .$_GET['id_file'];
  $risultato = mysql_query($conn) or die('Errore nella query SQL');
  while(list($id_file, $nome_file, $tipo_file, $dati_file, $data, $titolo, $breve_descrizione, $descrizione) = mysql_fetch_array($risultato))
  {
  ?>

(SEGUE HTM) 
<?php
}
?>

 

Aiutatemi vi prego!!!.

ciao e grazie

Share this post


Link to post
Share on other sites

Se ho capito bene dal codice, basta che metti

 

$conn = "UPDATE notizie SET titolo = '$titolo', data = '$data', breve_descrizione = '$breve_descrizione', descrizione = '$descrizione' WHERE id_file =" .$_GET['id_file'];

 

invece di

 

$conn = "UPDATE notizie SET  $stampaquery titolo = '$titolo', data = '$data', breve_descrizione = '$breve_descrizione', descrizione = '$descrizione' WHERE id_file =" .$_GET['id_file'];

 

 

Devi commentare meglio il tuo codice, sopratutto dire cosa intendi fare. È chiaro per te che ci stai lavorando, ma non lo è per me che non ho una minima idea di quello che vorresti fare.

Share this post


Link to post
Share on other sites

Perche` non usi MVC? Usa un framework invece dello spaghetti PHP.

 

Se una volta vuoi aggiornare il titolo ed una volta il file o entrambi, crea due funzioni, una per ogni azione, poi le richiami in base al criterio che vuoi. Mischiare il codice tutto insieme e mettere la logica solamente negli if e` sbagliato e crea confusione come nel tuo caso. Anche se protrebbe stare tutto in uno script e` difficile capire cosa stai facendo, anche per te. Fai un po` di refactoring e separa il codice in funzioni, sicuramente vedrai dove sta l'errore.

 

Spero che tu prenda questo in modo costruttivo, non vorrei essere offensivo :-)

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×