Salve ragazzi,
vi scrivo questo post per porvi un problema. Nell'area amministrativa del mio sito, originariamente avevo realizzato due form differenti; uno per caricare gli articoli nel database (con i vari campi annessi quali "titolo" ecc.), l'altro per caricare le immagini da associare all'articolo.
Bene, successivamente ho deciso di realizzare un singolo form, che mi consentisse di inserire nello stesso momenti articolo e immagine annessa. Per capirci mi sembra utile postare il codice relativo al form, anche se non è php. Tuttavia serve per comprendere quel che chiedo dopo.
Ecco il codice:
<form name="info" action="inse.php" method="post" enctype="multipart/form-data">
<h3><font size="3">Titolo</font></h3>
<textarea name="titolo" cols="40" rows="2"></textarea>
<h3><font size="3">Sottotitolo</font></h3>
<textarea name="sottotitolo" cols="40" rows="2"></textarea>
<h3><font size="3">Testo</font></h3>
<textarea name="testo" cols="40" rows="10"></textarea>
<h3><font size="3">Autore</font></h3>
<input type="text" name="autore">
<h3>Upload</h3>
<input type="hidden" name="MAX_FILE_SIZE" value="300000" />
<input type="file" name="file" size="40" />
<input type="submit" value="invia">
Elenco Immagini
Elenco articoli
</form>
Bene, come si può notare il form richiama il file "inse.php", quello che dovrebbe accogliere i vari dati provenienti dal form stesso. Ora vi posto il codice relativo al file "inse.php", ossia:
<?php
$titolo = htmlentities(strip_tags($_POST["titolo"]));
$sottotitolo = htmlentities(strip_tags($_POST ["sottotitolo"]));
$testo = str_replace("\n", "
",$_POST["testo"]);
$autore = htmlentities(strip_tags($_POST["autore"]));
if($titolo=="")
{
print ("Il titolo è obbligatorio
<a href=\"forminse.php\">indietro</a>
");
}
elseif($sottotitolo=="")
{
print "Il sottotitolo è obbligatorio
<a href=\"forminse.php\">indietro</a>
";
}
elseif($testo=="")
{
print "Il testo è obbligatorio
<a href=\"forminse.php\">indietro</a>
";
print "Titolo: $titolo
";
print "Sottotitolo: $sottotitolo
";
print "Testo: $testo
";
print "Autore: $autore
";
}
else
{
function upload()
{
$result = false;
$immagine = '';
$size = 0;
$type = '';
$nome = '';
$max_size = 300000;
$result = @is_uploaded_file($_FILES['file']['tmp_name']);
if (!$result)
{
echo "Impossibile eseguire l'upload.";
return false;
}else{
$size = $_FILES['file']['size'];
if ($size > $max_size)
{
echo "Il file è troppo grande.";
return false;
}
$type = $_FILES['file']['type'];
$nome = $_FILES['file']['name'];
$immagine = @file_get_contents($_FILES['file']['tmp_name']);
$immagine = addslashes ($immagine);
include("config.php");
include("config2.php");
mysql_connect($db_host,$db_user,$db_password,$db_n ame) or die ("non riesco a connettermi");
mysql_select_db("$db_name") or die ("Non riesco a selezionare il database");
$sql = "insert into articoli (titolo, sottotitolo, testo, autore, nome, size, type, immagine) values ('$titolo', '$sottotitolo', '$testo','$autore','$nome','$size','$type','$immag ine')";
$result = @mysql_query ($sql) or die (mysql_error());
return true;
$ultimo_id = mysql_insert_id();
}
}
?>
<?php
echo "<h3>Titolo:</h3> $titolo
";
echo "<h3>Sittotitolo:</h3> $sottotitolo
";
echo "<h3>Testo:</h3> $testo
";
echo "<h3>Autore:</h3> $autore
";
echo "<h3>Ultimo id inserito:</h3> $ultimo_id
";
echo "<h3>Pubblicato il:</h3>". date ("d/m/Y");
?>
Ora, il problema è questo. Pare funzionare tutto bene, in quanto col form, richiamando il file "inse.php", mi compare una pagina dove risultano immessi tutti i dati tranne 1 !!!!!!!!!!
Ossia l'ultimo id inserito (che dovrebbe essere stampato grazie alla riga "echo "<h3>Ultimo id inserito:</h3> $ultimo_id
";") risulta vuoto. E quindi non mi compare l'articolo da nessuna parte, cioè non viene caricato nel database. Così come, controllando la pagina che visualizza le immagini caricate, non risulta inserita l'immagine relativa. Perchè???
Grazie mille
p.s. Spero di essermi spiegato bene!