Io devo creare un post, dove inserisco il titolo, il testo e un'immagine. Poi clicco sul pulsante 'crea post' e il post si visualizza sotto. Ma non riesco a far visualizzare l'immagine. Questo è il mio codice:
nella pagina blog.php dove creo il post ho:
in HTML per caricare l'immagine questo:
Poi per visualizzare ogni singolo post, e quindi l'immagine, ho fatto un ciclo :
Le query funzionano correttamente, l'immagine viene inserita nel database, ma non viene visualizzata. Perchè?
nella pagina blog.php dove creo il post ho:
PHP:
if(isset ($_POST['creapost'])){
$uploadDir = __DIR__.'\immagini';
$allowedextension = array("png", "jpg", "jpeg", "gif" );
if (!empty($_FILES)){
foreach ($_FILES as $file) {
if (UPLOAD_ERR_OK === $file['error']) {
$fileName = basename($blog.$file['name']);
// prendo l'estensione del file
$fileextension = pathinfo($fileName, PATHINFO_EXTENSION);
if (! in_array($fileextension, $allowedextension)) {
$error= "il file che hai caricato non ha un' estensione valida!<br>Per favore, seleziona un immagine in formato png, jpg, jpeg o una gif" ;
$fileName= "";
}
else{
move_uploaded_file($file['tmp_name'], $uploadDir.DIRECTORY_SEPARATOR.$fileName);
}
}
else{
if ($file['error']==4){
$fileName= NULL;
}
else{
$error=" errore nel caricamento del file";
}
}
}
}
else{
$fileName= NULL;
}
if (($fileName != "") or (is_null($fileName))){
$titolopost = $_POST['titolopost'];
$testo = $_POST['areapost'];
$img = $_POST['img'];
$query2 = "INSERT INTO post(titoloPost,data,ora,testo,nomeUtente,titoloBlog,img) VALUES ('$titolopost', SYSDATE(), NOW(), '$testo',(SELECT nomeUtente FROM utentiregistrati WHERE nomeUtente = '$nomeutente'),(SELECT titoloBlog FROM blog WHERE titoloBlog = '$blog'),'$img')";
$result2 = mysqli_query($mysqli, $query2);
if(!$result2){
echo 'errore';
}
}
}
in HTML per caricare l'immagine questo:
HTML:
<label for "immagine">Inserisci un'immagine (GIF, JPEG, JPG, PNG): </label>
<input type="file" value="scegli immagine" name="img" />
Poi per visualizzare ogni singolo post, e quindi l'immagine, ho fatto un ciclo :
PHP:
<?php
$query3 = "SELECT * FROM post WHERE titoloBlog = '$blog'";
$result3 = mysqli_query($mysqli, $query3);
while($row3= mysqli_fetch_assoc($result3)){
$postdititolo = $row3["titoloPost"];
$testopost = $row3["testo"];
$imgpost = $row3["img"];
$datapost = $row3["data"];
$orapost = $row3["ora"];
$idPost = $row3["IDpost"];
?>
<div id ='visualizzapost'>
<p id = "dataora"> <?php echo $datapost ?> - <?php echo $orapost?> </p>
<h3 id = "Tpost"> <?php echo $postdititolo ?> </h3>
<?php
if (empty($imgpost)){ ?>
<script>
$(document).ready(function(){
$('#img<?php echo $idPost; ?>').hide();
});
</script>
<?php } else{ ?>
<script>
$(document).ready(function(){
$('#img<?php echo $idPost; ?>').show();
});
</script>
<?php }; ?>
<img id="img<?php echo $idPost; ?>" src="immagini/<?php echo $imgpost ?>" style="display:block; margin:10% auto; text-align:center; width:40%; ">
</img>
<p id = "Testopost"> <?php echo $testopost ?> </p>
Le query funzionano correttamente, l'immagine viene inserita nel database, ma non viene visualizzata. Perchè?