Salve, sto creando un sito con area riservata in cui gli utenti registrati possono scaricare dei file.
Ho creato il form per caricare i file. Io però vorrei poter proteggere l'accesso ai file, poichè ora se si conosce il link anche utenti non registrati possono scaricare i file.
Nel database non ho salvato i file, ma solamente il loro nome.
Vi posto parte del codice del database e delle pagine php
CREATE TABLE lezione
(
id int NOT NULL,
titolo varchar NOT NULL,
lezione varchar
PRIMARY KEY (id),
)
La pagina per caricare il file è questa:
Mentre questa è la pagina per visualizzare i file caricati:
In questo modo i file vengono caricati nella cartella upload e nel db viene memorizzato il nome del file; però se si conosce il percorso tutti possono accedere ai file.
Come posso fare per proteggere l'accesso?
Grazie
Ho creato il form per caricare i file. Io però vorrei poter proteggere l'accesso ai file, poichè ora se si conosce il link anche utenti non registrati possono scaricare i file.
Nel database non ho salvato i file, ma solamente il loro nome.
Vi posto parte del codice del database e delle pagine php
CREATE TABLE lezione
(
id int NOT NULL,
titolo varchar NOT NULL,
lezione varchar
PRIMARY KEY (id),
)
La pagina per caricare il file è questa:
PHP:
<form method="post" action="#" id="formlezione" enctype="multipart/form-data">
<table width="882">
<tr>
<td width="383">
<label for="numero">Numero</label>
<input type="text" name="numero" id="numero" value="" /></td>
<td width="auto">
<h1><span class="red">Co</span><span class="orange">r</span><span class="blue">si</span></h1>
</td>
</tr>
<tr>
<td>
<label for="titolo">Titolo</label>
<input type="text" name="titolo" id="titolo" value=""/>
</td>
</tr>
<tr>
<td>
<label for="lezione">Lezione</label>
<input type="file" name="lezione" id="lezione" />
</td>
</tr>
<tr>
<td>
<input type="submit" name="invia" id="modifica" value="Aggiorna dati" />
</td>
</tr>
</table>
</form>
</p>
<?php
$titolo = mysqli_real_escape_string($link, $_POST['titolo']);
$lezione = mysqli_real_escape_string($link, $_FILES['lezione']['name']);
move_uploaded_file($_FILES['lezione']['tmp_name'], 'upload/' .$_FILES['lezione']['name']);
$lezione= $_FILES['lezione']['name'];
$invialezione = mysqli_query($link, "INSERT INTO lezione (titolo, lezione) VALUES ('$titolo', '$lezione')");
?>
Mentre questa è la pagina per visualizzare i file caricati:
PHP:
<?php
$query = mysqli_query($link, "SELECT * FROM lezione ");
$quanti = mysqli_num_rows($query);
if ($quanti == 0)
{
echo "Nessun record!";
}
else
{
for($x=0; $x<$quanti; $x++)
{
$rs = mysqli_fetch_row($query);
$id = $rs[0];
$titolo = $rs[2];
$lezione = $rs[4];?>
<tr>
<td><?php echo $titolo;?> €</td>
<td><a href="upload/<?php echo $lezione;?>"><?php echo $lezione;?></a></td>
<?php
}
}?>
In questo modo i file vengono caricati nella cartella upload e nel db viene memorizzato il nome del file; però se si conosce il percorso tutti possono accedere ai file.
Come posso fare per proteggere l'accesso?
Grazie