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

    Problema form caricamento file

    Sera a tutti,
    ho alcuni problemi con un form che si occupa di eseguire l'upload di uno o più file nel mio db. Il problema è che sembra che le variabili passate dai campi hidden non vengano ricevute dalla pagina upload.php, cosa posso fare?
    caricafile.php:

    Codice PHP:
    <?php
         session_start
    ();
        require_once(
    'mysqlconn.php');
        
    mysql_select_db($database$utenti);
        
    $id = (int)$_SESSION['id'];
        if (
    $_SESSION['stat'] != true)
            
    header('Location: login.php');
        
    $sql mysql_query("SELECT * FROM utenti WHERE id = '".$id."' ") or die (mysql_error());
        
    $info mysql_fetch_array($sql);
        
    $ed = (int)$_POST['ed'];
        
    $doc = (int)$_POST['doc'];
        include(
    'funzioni.php');
        
    $abbonamento ver_abbonamento();
        if(
    $_GET['tipo'] != 'contratto' && $abbonamento == false){
            
    header('Location: edificio.php?ed='.$ed.'');
        }else{
     
    ?>
    <html>
        <head>
            <title>Caricamento file</title>
            <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
            <link rel="stylesheet" href="https://bootswatch.com/cosmo/bootstrap.min.css"><!-- Latest compiled and minified CSS -->
            <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script><!-- jQuery library -->
            <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script><!-- Latest compiled JavaScript -->
                    <!--AGGIUNTi -->
            <link rel="stylesheet" href="css/global.css">
            <script src="js/uploads.js" type="text/javascript"></script>
                    <meta charset="utf-8" />
                                <script type="text/javascript">
                var inputs = document.getElementById("inputs");
                            function addInput(event){
                    var input = document.createElement("input");
                    input.type = "file";
                    input.name = "file[]";
                    input.onchange = addInput;
                    inputs.appendChild(input);
                    event.target.onchange = undefined;
                }
                            inputs.getElementsByTagName("input")[0].onchange = addInput;
            </script>
        </head>
        <body onLoad="addInput()">
            <br>
            <?php include('navbar.php'); ?>
            <div id="main" class="container">
                <div class="row">
                    <div class="col">
                    <?php if((int)$_GET['add'] == 1){
                        echo 
    "INSERISCI SUBITO IL CONTRATTO DI QUESTO EDIFICIO<br><br>";}?>
        <form action="upload.php?ed=<?php echo $ed;?>&doc=<?php echo $doc?>&tipo=<?php echo $tipo?>" method="post" enctype="multipart/form-data" id="upload" class="upload">
            <fieldset>
                <legend>Upload files</legend>
                <input type="hidden" name="edificio" id="edificio" value="<?php echo $ed?>">
                <input type="hidden" name="doc" id="doc" value="<?php echo $doc?>">
                <input type="hidden" name="tipo" id="tipo" value="<?php echo $_GET['tipo']; ?>">
                <input type="file" id="file" name="file[]" multiple>
                <input type="submit" name="submit" id="submit" value="upload" >
            </fieldset>
            <div class="bar">
                <span id="pb" class="bar-fill"><span id="pt" class="bar-fill-text">0%</span></span>
            </div>
            <!-- decommentalo se vuoi che ti mostri sotto la progress bar i file uploadati una volta finito             (in tal caso decommenta anche la parte commentata nel upload.js nella cartella js        <div id="uploads" class="uploads">            Upload file links will apper her.        -->
            </div>
            <script type="text/javascript">
                document.getElementById('submit').addEventListener('click', function(e){
                    e.preventDefault();
                    var f  = document.getElementById('file'),                    pb = document.getElementById('pb');
                        pt = document.getElementById('pt');
                    app.uploader({
                                files:f,
                                progressBar: pb,
                                progressText: pt,
                                processor: 'upload.php'                            //commenta o decommenta o rimuovi in base alle tue esigenze
                                                                 /*finished :
                                 function(data){
                                    var uploads = document.getElementById('uploads'),
                                        succeeded = document.createElement('div'),
                                        failed = document.createElement('div'),
                                        anchor,
                                        span,
                                        x;
                                    if (data.failed.length) {
                                        failed.innerHTML = '<p>Unfortunately, the following.</p>';
                                    };
                                    uploads.innerText = '';
                                    for (x =0; x < data.succeeded.length ; x++) {
                                        anchor = document.createElement('a');
                                        anchor.href = 'upload/' + data.succeeded[x].file;
                                        anchor.innerText = data.succeeded[x].name;
                                        anchor.target = '_blank';
                                        succeeded.appendChild(anchor);
                                    };
                                    for (x =0; x < data.failed.length ; x++) {
                                        span = document.createElement('span');
                                        span.innerText = data.failed[x].name;                                    failed.appendChild(span);
                                    };
                                    uploads.appendChild(succeeded);
                                    uploads.appendChild(failed);
                                },
                                error: function(){
                                    console.log('not working');
                                } */
                           });
                });
                        </script>
        </form>
                    </div>
                </div>
            </div>
                </body>
    </html>
    <?php ?>
    upload.php:
    Codice PHP:
    <?php
        header
    ('Content-Type: application/json');
        
    $succeeded = array();
        
    $failed =array();
        
    $uploaded = array();
        
    $allowed = array('mp3''jpg');
        
    session_start();
        require_once(
    'mysqlconn.php');
        
    mysql_select_db($database$utenti);
        
    $id = (int)$_SESSION['id'];
        if(
    $_SESSION['stat'] != true){
            
    header('Location: login.php');
        }
        
    $sql mysql_query("SELECT * FROM utenti WHERE id = '".$id."' ") or die (mysql_error());
        
    $info mysql_fetch_array($sql);
        
    $ed = (int)$_GET['edificio'];
        
    $doc = (int)$_GET['doc'];
        
    $tipo $_GET['tipo'];
        include(
    'funzioni.php');
        
    $error false;
        
    $abbonamento ver_abbonamento();
        if(
    $_POST['tipo'] != 'contratto' && $abbonamento == false){
            
    header('Location: edificio.php?ed='.$ed.'');
        }else{
            
    file_put_contents('log.txt'"Abbonamento valido");
            
    file_put_contents('log.txt'"tipo:".$tipo." \n"."file: \n ".$_FILES["file"]."\ned:".$ed);
            if(!empty(
    $_FILES["file"]) && !empty($tipo)) {
                
    file_put_contents('log.txt'"File non vuoto");
                
    $controllo mysql_query("SELECT * FROM edifici WHERE id = '".$ed."' ") or die (mysql_error());
                if(
    mysql_num_rows($controllo) == 0){
                    
    $error true;} //EDIFICIO INESISTENTE
                
    $verifica mysql_fetch_array($controllo);
                if(
    $verifica['utente'] != $id){
                    
    $error true;} //EDIFICIO DI UN ALTRO UTENTE
                
    if($error != true && $tipo != 'identità'){
                    
    file_put_contents('log.txt'"Errore nel possesso");
                    foreach (
    $_FILES['file']['name'] as $key => $name) {
                        if (
    $_FILES['file']['error'][$key] === 0) {
                                                    
    $temp $_FILES['file']['tmp_name'][$key];
                                                    
    $ext explode('.'$name);
                            
    $ext strtolower(end($ext));
                            
    $file md5_file($temp) . time() . '.' $ext;
                            if (
    in_array($ext$allowed) === true /*&& move_uploaded_file($temp, "upload/{$file}") === true*/) {
                                
    file_put_contents('log.txt'"File valido");
                                
    $file1 pathinfo($_FILES['file']['name'][$key]);
                                
    $data addslashes(fread(fopen($_FILES['file']['tmp_name'][$key], "rb"),$_FILES['file']['size'][$key]));
                                
    $risultato mysql_query("INSERT INTO file (utente, edificio, nome, tipo, nomefile, file, size, type, estensione, documento) VALUES ('".$id."', '".$ed."', '".mysql_real_escape_string($_POST['nome'])."', '".mysql_real_escape_string(htmlspecialchars($_POST['tipo']))."', '".mysql_real_escape_string(htmlspecialchars($_FILES['file']['name'][$key]))."', '".$data."', '".$_FILES['file']['size'][$key]."', '".mysql_real_escape_string(htmlspecialchars($_FILES['file']['type'][$key]))."', '".$file1['extension']."', '".$doc."') ") or die (mysql_error());
                                
    $succeeded[] = array(
                                                
    'name' => $name,
                                                
    'file' => $file
                                                
    );
                                                            
    file_put_contents('log.txt'"Successo");
                            }else{
                                
    $failed[] = array(
                                    
    'name' => $name);
                            }
                        }
                    }
                }
            }
            if (!empty(
    $_POST['ajax'])) {
                echo 
    json_encode(array(
                    
    'succeeded' => $succeeded,
                    
    'failed' => $failed ));
                        }
        }

    ?>
    Ultima modifica di masternick; 13-09-2015 a 22:33

  2. #2
    Utente bannato
    Registrato dal
    Jul 2013
    Messaggi
    290
    troppo complesso per le mie capacità, posso però dirti che è di sicuro una voragine dal punto di vista della sicurezza, sia delle sessioni, sia per sql injection, sia per css... sia per tutto in poche parole.
    Perchè non usi una libreria js già fatta, molto carina e facile da usare, tipo dropzone? Se sono riuscito ad usarla io vuol dire che è proprio facile

  3. #3
    Ci avevo già provato, ma con scarsi risultati perchè non si adattava bene al mio sistema... Questo script invece sarebbe fatto su misura, solo che non capisco per quale motivo alcuni dati siano passati ed altri no...

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.