- Home
- Categorie
- Coding e Sistemistica
- PHP
- Scegliere la condivisione dei file
-
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.
-
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.
-
Grazie provo e poi ti faccio sapere...thank!!!!
-
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ì???
-
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!!!
-
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.
-
Il problema è risolto yeah....grazie100000000
-
Di nulla.