Originariamente inviato da homerbit
session_start();
va in primissima riga, assicurati che non ci sia una qualche include e\o ritorno a capo

tolto il while, ma hai lasciato l'assegnazione $row = mysql_fetch_array($res) ?
Ecco lo script:

Codice PHP:
<?php

session_start
();

/* -- Connettiamoci al DataBase -- */
include ('database_login.php');

/* -- Recuperiamo i Valori -- */
$user $_POST['user'];
$pass $_POST['pass'];
$risp "ok";
$login $_GET['login'];

/* -- Serve per Evitare di Ricevere subito un Messaggio dallo Script -- */
if ( $login == $risp 
{
/* -- Controlliamo che i Campi siano stati tutti Compilati -- */
if ( $user && $pass 
{
/* -- Effettuiamo l'Escape per i Valori Speciali, cosi da evitare Problemi con le Query -- */
$user mysql_real_escape_string($user);
$pass mysql_real_escape_string($pass);

/* -- Query che Invia una richiesta al DataBase, visualizza se i Valori esistano -- */
$sql "SELECT * FROM registrati WHERE nick = '$user' AND pass = MD5('$pass')";
$res mysql_query($sql) or die (mysql_error());

/* -- Se i Dati inseriti sono Esatti e Presenti all'interno della Tabella possiamo far effettuare il Login -- */
if ( $res == TRUE 
{
/* -- Creo una Sessione con ID dell'Utente, che lo farà restare Connesso tutto il Tempo della Navigazione alle Pagine protette da Login -- */
$row mysql_fetch_array($res);
$id_utente $row['id'];
$nome_utente $row['nick'];
$_SESSION['id_utente'] = $id_utente;
$_SESSION['nome_utente'] = $nome_utente;

/* -- Infine reindirizzo l'Utente nella pagina protetta da Login -- */
header ("location: paginasegreta.php");
}


echo 
"Username o Password non corrette";
}
else 
{
echo 
"Non sono stati compilati tutti i dati obbligatori";
}
}

?>
<html>

<head>

    <title>Login</title>

</head>

<body>

<form action='<? echo $_SERVER['PHP_SELF']; ?>?login=ok' method='post'>

[b]Username[/b]

<input type='text' name='user'>

[b]Password[/b]

<input type='password' name='pass'>


<input type='submit' value='Accedi'>


</form>

</body>

</html>