• User

    Scegliere la condivisione dei file

    Salve vorrei sapere se è possibile realizzare uno script dove, l'utente loggato, sceglie se rendere i suoi file privati o pubblici. Praticamente l'utente fa l'upload del file attraverso il form e a questo punto vorrei chiedergli se vuole il file pubblico o privato....i file vengono estratti da una tabella in mysql.
    Helppppppp. :arrabbiato:


  • Consiglio Direttivo

    Ciao chiara690,
    una prima idea protebbe essere quella di inserire nella tabella un campo "pubblico" dove inserire valori 0 e 1, valori che puoi tranquillamente ricevere da una checkbox del form.
    Se uguale a 1 il file è pubblico, se è uguale a 0 il file è privato.

    Quando farai l'estrazione dei file sul lato pubblica inserirai come clausola WHERE l'opzione che il campo pubblico sia uguale a 1.

    Spero d'esserti stato d'aiuto. 😉


  • User

    Grazie provo e poi ti faccio sapere...thank!!!!


  • User

    Ti posto il form dell'upload:
    [HTML]<form action="upload.php" method="post" enctype="multipart/form-data" name="upload_file">
    <p><span id="spryselect1">
    <label for="pubblica"></label>
    <span class="selectRequiredMsg">Selezionate una voce.</span></span>
    <input type="hidden" name="MAX_FILE_SIZE" value="5000000" />
    <input name="userfile" type="file">
    //questo è il form a tendina della pubblicazione
    <select name="pubblica" size="1" id="pubblica">
    <option value="1" selected="selected">condividi</option>
    <option value="0">non condividi</option>

    </select>[/HTML]
    

    va bene così???


  • User

    Nello script upload.php non so come mettere le variabili ti posto anche questo script php:

    [php]<?php
    require('config.php');

    // Se non è stata definita la variabile manda l'utente alla homepage
    if(!isset($_SESSION['login_username']))
    {
    header('Location: index.php');
    exit;

    }

    if (is_uploaded_file($_FILES['userfile']['tmp_name']))
    {

    //upload
    $nome_file_temporaneo = $_FILES['userfile']['tmp_name'];
    $file_realname = $_FILES['userfile']['name'];
    $tipo_file = $_FILES['userfile']['type'];
    $pubblica_si = $_FILES['userfile']['1'];
    $pubblica_no = $_FILES['userfile']['0'];

    // leggo il contenuto del file
    $dati_file = file_get_contents($nome_file_temporaneo);

    // preparo il contenuto del file per la query
    $dati_file = addslashes($dati_file);
    

    //Copio il file nella directory
    copy($_FILES['userfile']['tmp_name'], "media/$file_realname");

    $created = date("Y-n-j"); //data del server php nel formato che vogliamo
    //Collegamento al db per scrittura risultato
    mysql_connect("localhost","root","root");
    mysql_select_db("my_provablog3");
    // leggo il contenuto del file
    $dati_file = file_get_contents($nome_file_temporaneo);

    // preparo il contenuto del file per la query
    $dati_file = addslashes($dati_file);
    

    $inserisci = mysql_query("INSERT INTO file (nome_file, id_utente, tipo_file, data_file, dati_file, pubblica) VALUES('$file_realname', '$_SESSION[login_username]','$tipo_file' ,'$created','$dati_file')");

    $created = date("Y-n-j"); //data del server php nel formato che vogliamo

    //Controllo se l'inserimento è andato a buon fine
    if(!$inserisci) {
    echo "Il file è stato inviato ma non è stato possibile scrivere sul database";
    }
    else {
    echo "Il file è stato caricato correttamente";

    }

    }
    else
    {
    echo "Errore nell'upload.<BR>File non disponibile o troppo grande";
    }
    ?>
    <pre><? print_r($_FILES); ?></pre>[/php]

    Scusa ma non sono molto pratica!!!


  • Consiglio Direttivo

    Nella pagina dovrai recuperarti il dato della checkbox "pubblico" con:

    [php]$pubblico=$_POST['pubblico'];[/php]E quindi inserire il valore nell'istruzione SQL:

    INSERT INTO file (nome_file, id_utente, tipo_file, data_file, dati_file, pubblica) VALUES ('$file_realname', '$_SESSION[login_username]','$tipo_file' ,'$created','$dati_file', '$pubblico')
    

    Lo script dovrebbe quindi essere così:
    [php]<?php

    $pubblico=$_POST['pubblica'];
    require('config.php');

    // Se non è stata definita la variabile manda l'utente alla homepage
    if(!isset($_SESSION['login_username']))
    {
    header('Location: index.php');
    exit;

    }

    if (is_uploaded_file($_FILES['userfile']['tmp_name']))
    {

    //upload
    $nome_file_temporaneo = $_FILES['userfile']['tmp_name'];
    $file_realname = $_FILES['userfile']['name'];
    $tipo_file = $_FILES['userfile']['type'];

    // leggo il contenuto del file
    $dati_file = file_get_contents($nome_file_temporaneo);

    // preparo il contenuto del file per la query
    $dati_file = addslashes($dati_file);
    

    //Copio il file nella directory
    copy($_FILES['userfile']['tmp_name'], "media/$file_realname");

    $created = date("Y-n-j"); //data del server php nel formato che vogliamo
    //Collegamento al db per scrittura risultato
    mysql_connect("localhost","root","root");
    mysql_select_db("my_provablog3");
    // leggo il contenuto del file
    $dati_file = file_get_contents($nome_file_temporaneo);

    // preparo il contenuto del file per la query
    $dati_file = addslashes($dati_file);
    

    $inserisci = mysql_query("INSERT INTO file (nome_file, id_utente, tipo_file, data_file, dati_file, pubblica) VALUES('$file_realname', '$_SESSION[login_username]','$tipo_file' ,'$created','$dati_file', '$pubblico')");

    $created = date("Y-n-j"); //data del server php nel formato che vogliamo

    //Controllo se l'inserimento è andato a buon fine
    if(!$inserisci) {
    echo "Il file è stato inviato ma non è stato possibile scrivere sul database";
    }
    else {
    echo "Il file è stato caricato correttamente";

    }

    }
    else
    {
    echo "Errore nell'upload.<BR>File non disponibile o troppo grande";
    }
    ?>
    <pre><? print_r($_FILES); ?></pre>[/php]
    Per quanto riguarda il form dovrebbe andar bene. 😉


  • User

    Il problema è risolto yeah....grazie100000000 🙂


  • Consiglio Direttivo

    Di nulla. 😉