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.