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