Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    72

    inserire query per caricare percorso e file su altervista

    ciao a tutti,
    ho un problema con l'inserimento dei dati in una tabella (chiamata upload) sul mio sito altervista. l'architettura per il database è phpmyadmin versione 4.1.7.

    attraverso un form html il codice php che ho impostato devo inserire una riga nella tabella pratiche e una riga o più righe nella tabella upload: infatti la prima tabella passa dati di testo e date, mentre la seconda passa file e dati di testo. inoltre il codice php carica il file (o i files) in una cartella appositamente creata.

    con xampp in locale funziona tutto, invece su altervista riesco solo ad inserire una riga nella tabella pratiche, mentre non viene creata nessuna riga per la tabella file. Inoltre il codice permette di inserire i file, allegati nel form, nella cartella creata su altervista.

    per chiarezza allego immagine del form:
    form-html.png

    ecco invece il codice php (trascrivo solo quello per inserire una riga nella tabella upload ed inviare il file nella cartella):


    // Se il modulo viene inviato... if(isset($_POST['invia_pratica']) && $_FILES['userfile']['size'] > 0)
    {


    // Controllo id_prat
    $query_id_prat = mysql_query("SELECT id_prat FROM pratiche WHERE id_prat = '" . mysql_insert_id() . "' ");
    $dati_id_prat = mysql_fetch_array($query_id_prat);


    $errors= array();
    foreach($_FILES['userfile']['tmp_name'] as $key => $tmp_name ){
    $fileName = $key.$_FILES['userfile']['name'][$key];
    $fileSize =$_FILES['userfile']['size'][$key];
    $tmpName =$_FILES['userfile']['tmp_name'][$key];
    $file_type=$_FILES['userfile']['type'][$key];
    $id_pratica = $dati_id_prat[id_prat];
    if(!get_magic_quotes_gpc()){
    $fileName = addslashes($fileName);
    $fileSize = addslashes($fileSize);
    $file_type = addslashes($file_type);}

    if($fileSize > 2097152){
    $errors[]='File size must be less than 2 MB';
    }

    // Controllo id utente
    $query_ut_utenti = mysql_query("SELECT * FROM utenti WHERE id = '" . $_SESSION['login'] . "' LIMIT 1");
    $dati_ut_utenti = mysql_fetch_array($query_ut_utenti);
    $id_ut_utenti = $dati_id['id'];

    // Controllo nome utente
    $nome = $dati_id['nome'] ." ";
    $cognome = $dati_id['cognome'];
    $nome_utente = $nome .$cognome;

    $fp = fopen($tmpName, 'r');
    $content = fread($fp, filesize($tmpName));
    $content = addslashes($content);
    fclose($fp);

    $query = "INSERT INTO upload (id_pratica, id_ut_utenti, name, size, type, content ) "." VALUES ('$id_pratica', '$id_ut_utenti', '$fileName', '$fileSize', '$fileType', '$content')";
    $desired_dir= $_SERVER["DOCUMENT_ROOT"] = "/membri/qui_ho_messo_il_mio_dominio/uplds/";

    if(empty($errors)==true){
    if(is_dir($desired_dir)==false){
    mkdir("$desired_dir", 0700); // Create directory if it does not exist
    }
    if(is_dir("$desired_dir/".$fileName)==false){
    move_uploaded_file($tmpName,"$desired_dir/".$fileName);
    }else{ // rename the file if another one exist
    $new_dir="$desired_dir/".$fileName.time();
    rename($tmpName,$new_dir) ;
    }
    mysql_query($query);
    }else{
    print_r($errors);
    }
    }
    if(empty($error)){
    echo "Success";
    }

    // Reindirizzo l'utente ad una pagina di conferma della registrazione
    header('Location: gest_ptc.php');
    exit;

    }
    non capisco proprio perché in locale funzioni... tra l'altra uso altervista perchè gratis, ma il sito poi avrà un hosting proprio (a pagamento con aruba)... quindi prima di far comprare il sito volevo testarlo online...

    qualcuno mi può aiutare?

    grazie mille in anticipo.
    Ultima modifica di gianluis; 25-09-2016 a 00:40

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,501
    Verifica la dimensione massima dei file in upload accettati da Altervista, magari il file eccede tale dimensione e non lo fa caricare.
    Fa una prova con un file piccolo, qualche KB, e vedi se funziona, se funziona il problema è quello.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    72
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Verifica la dimensione massima dei file in upload accettati da Altervista, magari il file eccede tale dimensione e non lo fa caricare.
    Fa una prova con un file piccolo, qualche KB, e vedi se funziona, se funziona il problema � quello.


    ciao Alhazred, grazie per la risposta. Hai ragione, il file non me lo carica e mi crea una riga nella tabella upload nella quale i campi size e name sono uguali a 0.

    ora vorrei limitare l'inserimento di file solo in formato pdf.
    if($fileType != "pdf" or $fileType != "PDF" ) {
    echo "Puoi caricare solo file con formato pdf.";exit();
    }



    il problema � che se carico file pdf, visualizzo l'errore.
    dove sto sbagliando?

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.