Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    problema valore variabile

    Ciao a tutti,
    premetto che non sono molto esperta di php, e si vede
    arrivo subito al dunque...
    Il seguente codice permette l'upload di una immagine dal browser ad una determinata directory del sito. Lo script inoltre permette di inserire l'url dell'immagine all'interno di un database.

    <?
    $img_scheda = $_GET['id'];
    //recupero l'url id della tabella scheda

    $directory = "images/";
    // inseriamo le dimensioni massime consentite per l'upload
    // massimo peso
    $max_file_size = 20240;
    // massima larghezza
    $max_width = 300;
    // altezza massima
    $max_height = 100;

    //La parte seguente di codice verifica se esiste il valore "upload" in POST
    //In caso contrario viene visualizzato il form per l'upload dell'immagine


    if(!isset($_POST['upload'])){
    echo "<form action='db_insImmagini.php' method='post' enctype='multipart/form-data'>
    Nome Immagine:

    <input type='text' name='nomeimmagine' />

    Inserisci file:

    <input type='file' name='immagine' />

    <input type='submit' name='upload' value='Carica Immagine' /></form>";
    }
    // enctype='multipart/form-data' all'interno del tag form è fondamentale per l'upload dell'immagine

    elseif(isset($_POST['upload'])){
    // prendo il timestamp per dare un nome casuale al file dell'immagine
    $timestamp = time();
    $nomeimmagine = mysql_real_escape_string($_POST['nomeimmagine']);
    $dimensioni = getimagesize($_FILES['immagine']['tmp_name']);
    $larghezza = $dimensioni[0];
    $altezza = $dimensioni[1];


    //costruisco l'array degli errori
    $errors = array();
    if(empty($nomeimmagine) || empty($dimensioni)) {
    $errors[] = 'Non hai inserito un nome all\'immagine.';
    }
    if(empty($_FILES['immagine']['name'])) {
    $errors[] = 'Non hai inserito l\'immagine per il caricamento';
    }
    //verifico se il file è stato caricato correttamente
    if(!is_uploaded_file($_FILES['immagine']['tmp_name'])) {
    $errors[] = 'Si sono verificati errori durante l\'upload.';
    }
    if($_FILES['immagine']['size'] > $max_file_size) {
    $errors[] = 'Immagine troppo pesante la dimensiome massima consentita è: ' . $max_file_size . ' bytes.';
    }


    // Verifico se l'immagine è di tipo jpeg o gif

    $type=$_FILES['immagine']['type'];
    if($type != "image/gif" && $type != "image/pjpeg" && $type != "image/jpeg") {
    $errors[] = 'L\'immagine deve essere del formato JPEG o GIF.';
    }


    // controllo le dimensioni dell'immagine
    if($altezza > $max_width) {
    $errors[] = 'L\'altezza della tua immagine è troppo grande';
    }
    if($larghezza > $max_width) {
    $errors[] = 'La tua immagine è troppo larga.';
    }


    // Se ci sono stampo gli errori

    if(count($errors) > 0) {
    echo 'ERRORS:

    indietro

    ';
    foreach($errors as $err) {
    echo $err . '
    ';
    }
    }
    //altrimenti effettuo l'upload
    else {
    $urlimmagine = $directory. time() . '_' . $_FILES['immagine']['name'];
    //inserisco l'immagine nella directory e se tutto va bene nel database
    if(copy($_FILES['immagine']['tmp_name'], $urlimmagine)) {
    mysql_query("INSERT INTO immagini (nomeimmagine, urlimmagine, img_scheda ) VALUES ('$nomeimmagine', '$urlimmagine', '$img_scheda')");
    echo 'L\'immagine è stata caricata con successo. Clicca qui per vedere l\'immagine.'; }
    else
    echo 'Si sono verificati errori durante il caricamento dell\'immagine.';

    }
    }
    ?>

    Funziona benissimo tranne per un piccolo problema: Nel Database non mi carica nessun valore nel campo img_scheda , nonostante gli ho assegnato la variabile $img_scheda = $_GET['id'];

    Potete aiutarmi??!! Dove sbaglio??!! Funziona tutto tranne il caricamento del dato img_scheda su DB... Grazie in anticipo

  2. #2
    Sei sicura che $_GET['id'] sia definita?

  3. #3
    Certo, a quella pagina arrivo da seguente link:
    X

    Infatti ho provato a farlo stampare a video e funziona
    <?php echo $_GET['id']; ?>

  4. #4
    A colpo d'occhio manca una { dopo l'ultimo else ...

    Poi una domanda: non ti scrive solo quel campo o non ti scrive tutto il record?

  5. #5
    Non mi da errori di sintassi, nel DB mi riporta sempre valore uguale a zero "0", invece di restituirmi l'ID scheda...

  6. #6
    Originariamente inviato da hooara
    Non mi da errori di sintassi, nel DB mi riporta sempre valore uguale a zero "0", invece di restituirmi l'ID scheda...
    Non è che magari quel campo sul db è numerico mentre tu gli stai scrivendo dentro un testo? (infatti $img_scheda lo passi tra gli apici...)

  7. #7
    Scusate il ritardo per la risposta... ho avuto problemi con il pc...
    avevi ragiono Luca, il campo è numerico!!!
    comunque ora funziona benissimo, ho fatto alcune modifiche e funziona alla grande, lo trascrivo, magari può servire a qualcuno e GRAZIE a tutti per l'aiuto


    <?php
    // indichiamo la cartella che conterrà le immagini
    $directory = "images/";
    // inseriamo le dimensioni massime consentite per l'upload
    // massimo peso
    $max_file_size = 20240;
    // massima larghezza
    $max_width = 300;
    // altezza massima
    $max_height = 100;

    //La parte seguente di codice verifica se esiste il valore "upload" in POST
    //In caso contrario viene visualizzato il form per l'upload dell'immagine


    if(!isset($_POST['upload'])){ ?>


    <form action="db_insImmagini.php" method="post" enctype="multipart/form-data">
    Nome Immagine:

    <input type="text" name="nomeimmagine" />

    <input name="img_scheda" type="text" value="<?php echo $_GET['id']; ?>" />


    Inserisci file:

    <input type='file' name='immagine' />

    <input type='submit' name='upload' value='Carica Immagine' />
    </form>


    <?php }
    // enctype='multipart/form-data' all'interno del tag form è fondamentale per l'upload dell'immagine

    elseif(isset($_POST['upload'])){
    // prendo il timestamp per dare un nome casuale al file dell'immagine
    $timestamp = time();
    $nomeimmagine = mysql_real_escape_string($_POST['nomeimmagine']);
    $dimensioni = getimagesize($_FILES['immagine']['tmp_name']);
    $larghezza = $dimensioni[0];
    $altezza = $dimensioni[1];


    //costruisco l'array degli errori
    $errors = array();
    if(empty($nomeimmagine) || empty($dimensioni)) {
    $errors[] = 'Non hai inserito un nome all\'immagine.';
    }
    if(empty($_FILES['immagine']['name'])) {
    $errors[] = 'Non hai inserito l\'immagine per il caricamento';
    }
    //verifico se il file è stato caricato correttamente
    if(!is_uploaded_file($_FILES['immagine']['tmp_name'])) {
    $errors[] = 'Si sono verificati errori durante l\'upload.';
    }
    if($_FILES['immagine']['size'] > $max_file_size) {
    $errors[] = 'Immagine troppo pesante la dimensiome massima consentita è: ' . $max_file_size . ' bytes.';
    }


    // Verifico se l'immagine è di tipo jpeg o gif

    $type=$_FILES['immagine']['type'];
    if($type != "image/gif" && $type != "image/pjpeg" && $type != "image/jpeg") {
    $errors[] = 'L\'immagine deve essere del formato JPEG o GIF.';
    }


    // controllo le dimensioni dell'immagine
    if($altezza > $max_width) {
    $errors[] = 'L\'altezza della tua immagine è troppo grande';
    }
    if($larghezza > $max_width) {
    $errors[] = 'La tua immagine è troppo larga.';
    }


    // Se ci sono stampo gli errori

    if(count($errors) > 0) {
    echo 'ERRORS:

    indietro

    ';
    foreach($errors as $err) {
    echo $err . '
    ';
    }
    }
    //altrimenti effettuo l'upload
    else {
    $urlimmagine = $directory. time() . '_' . $_FILES['immagine']['name'];
    //inserisco l'immagine nella directory e se tutto va bene nel database
    if(copy($_FILES['immagine']['tmp_name'], $urlimmagine)) {
    mysql_query("INSERT INTO immagini (nomeimmagine, urlimmagine, img_scheda) VALUES ('$nomeimmagine', '$urlimmagine', $img_scheda)");
    echo 'L\'immagine è stata caricata con successo. Clicca qui per vedere l\'immagine.'; }
    else
    echo 'Si sono verificati errori durante il caricamento dell\'immagine.';

    }
    }
    ?>


    FUNZIONAAAAAAAAA

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.