Uno studente suppongo

Diciamo pure che stai creando degli utenti hard coded dentro il tuo codice php piuttosto che utilizzare un DB per l'archiviazione degli stessi ed utilizzi password in chiaro.

Nel momento in cui una autenticazione va a buon fine non fai altro che creare una variabile di sessione.

$_SESSION['auth']

Nelle tue pagine protette quindi controlli l'esistenza di tale variabile prima di visualizzarne il contenuto, altrimenti rispedisci l'utente alla pagina di login. Una cosa del tipo

Codice PHP:
<?php
session_start
();
if(!isset(
$_SESSION['auth'] ))
  
header("Location:login.php");
?>
...
resto pagina protetta
...
Dando un link per il logout non dovrai fare altro che invocare (a te come e quando... puoi seguire il suggerimento di fmortara per cui effettuare il logout su login senza trasmissione di dati post)
Codice PHP:
unset($_SESSION['auth']); 
La funzione session_destroy(); che ti è stata proposta è anche valida, ma la ritengo un po' troppo invasiva, dato che in sessione potresti conservare delle informazioni relative alla sessione di navigazione che prescindono dalla autenticazione e che con tale istruzione andresti a perdere.

Dopo l'unset le pagine protette con l'if di esempio sono immediatamente non più accessibili anche se linkate in modo diretto