Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2013
    Messaggi
    32

    inserimento immagine in news

    buongiorno a tutti... di nuovo!

    apro questa discussione per un problema sull'inserimento di immagini in database.. ecco la situazione:

    ho creato tramite php un'area riservata e grazie ai preziosi consigli di chi mi ha risposto in questo forum ho creato un'area per inserire news in modo dinamico tramite un form. Quello che non sono ancora riuscito a fare è l'inserimento delle immagini (ad ogni news corrisponde un'immagine).. ora metto del codice ma premetto che questo è solo l'ultimo tentativo che ho fatto, perchè prima ho pure provato ad inserire nel database solo il nome dell'immagine e l'immagine la salvavo in una cartella a mia scelta.. ma non sono riuscito..

    inserisci_immagine.php:
    codice HTML:
    <h1>Inserimento post:
    </h1><form action="insert.php" method="post" enctype="multipart/form-data">
    Carica il tuo file: <br />            <input type="file" name="file" /><br />
    Titolo:<br><input name="titolo" type="text"><br />
    Testo:<br><textarea name="testo" cols="30" rows="10"></textarea><br />
    Autore:<br><input name="autore" type="text"><br />
    <input name="submit" type="submit" value="Scrivi"></form>
    insert.php:
    Codice PHP:
    <?php// inizializzazione della sessione
    session_start();
    // controllo sul valore di sessione
    if (!isset($_SESSION['login']))
    {
     
    // reindirizzamento alla home page in caso di login mancato
     
    header("Location: index.php");
    }


    // valorizzazione delle variabili con i parametri dal form
    if(isset($_POST['submit'])&&($_POST['submit']=="Scrivi")){


      if(isset(
    $_POST['autore'])){
        
    $autore addslashes(filter_var($_POST['autore'], FILTER_SANITIZE_STRING));
      }
      if(isset(
    $_POST['titolo'])){
        
    $titolo addslashes(filter_var($_POST['titolo'], FILTER_SANITIZE_STRING));
      }
      if(isset(
    $_POST['testo'])){
        
    $testo addslashes(filter_var($_POST['testo'], FILTER_SANITIZE_STRING));
      }
      
          
    // inclusione del file della classe
        
    include "funzioni_mysql.php";
        
    // istanza della classe
        
    $data = new MysqlClass();
        
    // chiamata alla funzione di connessione
        
    $data->connetti();
        
    $t "post"# nome della tabella
        
    $v = array ($titolo,$testo,$autore,date("Y-m-d")); # valori da inserire
        
    $r =  "titolo_post,testo_post,autore_post,data_post"# campi da popolare


       // chiamata alla funzione per l’inserimento dei dati
        
    $data->inserisci($t,$v,$r);
        echo 
    "Articolo inserito con successo.";
            }
        
        
    //chiamata funzione per inserimento immagine
        
    include ("funzioni_mysql.php");
        if(isset(
    $_FILES['file']))
        {
            
    upload();
        }
        else
        { echo 
    "NESSUNA IMMAGINE"; }


    // disconnessione
        
    $data->disconnetti();


    ?>
    funzioni_mysql.php: (c'è anche la funzione di connessione che non copio)
    Codice PHP:
       //funzione inserimento immagine
    function upload()
    {  
       
    $result false;  $immagine '';   
       
    $result = @is_uploaded_file($_FILES['file']['tmp_name']);   
       if (!
    $result)   
           {     echo 
    "Impossibile eseguire l'upload.";     
                 return 
    false;
            }   else{     
                   
    $type $_FILES['file']['type'];      
                   
    $nome $_FILES['file']['name'];     
                   
    $immagine = @file_get_contents($_FILES['file']['tmp_name']);    
                   
    $immagine addslashes ($immagine);      
                   @include 
    'config.php';     
                   
    $sql "INSERT INTO post (immagine_post) VALUES ('$immagine')";     
                   
    $result = @mysql_query ($sql) or die (mysql_error());     
                   return 
    true;  
            }
     }

    //funzione per l'inserimento dei dati in tabella
        
    public function inserisci($t,$v,$r null)    
            {         
                      if(isset(
    $this->attiva))          
                      {
                         
    $istruzione 'INSERT INTO '.$t;
                         if(
    $r != null)
                          { 
                              
    $istruzione .= ' ('.$r.')';   
                          }

                     for(
    $i 0$i count($v); $i++)       
                      {
                            if(
    is_string($v[$i]))               
                                  
    $v[$i] = '"'.$v[$i].'"';            
                      }
                     
    $v implode(',',$v);
                     
    $istruzione .= ' VALUES ('.$v.')';
                
                     
    $query mysql_query($istruzione) or die (mysql_error());
                   
                     }else{               
                          return 
    false;            
                    } 
           } 
    Tramite questo form riesco ad inserire il titolo, il testo e l'autore del post, ma non l'immagine (nella tabella del db il campo dell'immagine, sia se blob, sia se VARCHAR e quindi solo il nome dell'immagine) resta NULL.. cosa devo modificare??

    edit: scusate c'è qualcosa che non va nella visualizzazione del codice, non va a capo. provo a risolvere.

    ri-edit: ora dovrebbe andar bene.
    Ultima modifica di simba92; 19-06-2014 a 16:09 Motivo: scusate c'è qualcosa che non va nella visualizzazione del codice, non va a capo. provo a risolvere.
    Paterno' Red Sox Baseball - www.redsoxpaterno.com

  2. #2
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    a parte che dovresti usare pdo e non mysql che è antico.

    1 ) non si capisce se upload e inserisci fanno parte di una classe e se si quale
    2) quando fai upload non inserisci il riferimento al record appena inserito. come vuoi associare la foto alla news?
    3) in fase di sviluppo elimina gli operatori come @ e visualizza tutti gli errori in modo da trovare la soluzione facilmente
    4) scrivi meglio il codice con le opportune identazioni e ritorno a capo. e' difficile che qualcuno sul forum ti aiuti in questo modo.
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.