pues con tu primer pregunta respondes la segunda...
 
es necesario 
session_start para activar la sesión, y al igual que los 
header se recomienda hacerlo antes de comenzar a imprimir algo... 
según el manual de PHP (supongo que ya lo consultaste) para eso sirve la sesión, para conservar datos a través de distintas paginas...  
 Código PHP:
    <?php
session_start();
// ...
$_SESSION['foo'] = 'BAR';
// ...
$candy = $_SESSION['foo'];    
  vaya, si no inicias sesión (session_start) ¿¿como pretendías jugar con las variables de sesión???   
NOTA no dejes de consultar el manual... (ahí están la mayoría de respuestas, y en las 
FAQ's del foro también)