Di solito, si salvano le varie informazioni nel database.
Per il login, è comodo usare le sessioni (vedi ad esempio qui).
Io ad esempio, salvo nelle sessioni il nick al momento del login. Quindi, ad esempio, dentro $_SESSION['utente'] ho il nick.
Potresti fare una pagina che con il parametro GET mostri il profilo dell'utente passato (tramite il parametro get {o post}.
Un esempio (ovviamente ci sono molti modi: di solito io lo faccio così {ehm, non l'ho mai fatto, ma se mi capitasse di farlo...}):
Codice PHP:
<?php
session_start();
if(!isset($_GET['utente']))
die('Nessun utente da visualizzare');
if(!isset($_SESSION['utente']))
die('Prima devi loggarti');
if($_SESSION['utente'] == $_GET['utente'])
echo 'benvenuto, '.$_GET['utente'];
else echo 'Stai visitando il profilo di '.$_GET['utente'];
//mostra nome, immagini, ... di $_GET['utente'] (ad esempio, prelevando i dati dal database)
?>
Ciao!