Hallo
<?
session_start();
$_SESSION['zahl'] = $_GET['zahl'];
An dieser Stelle überschreibst Du den Wert in der Session. Wenn nichts mit GET übergeben wird, ist $_SESSION['zahl'] anschließend leer.
Wie kommst Du also daruaf, daß da ein Wert bestehen bleiben sollte?
if (empty ($zahl)) { $zahl="5"; }
Was hat diese Zeile damit zu tun?
Gruß,
Maddin