Problem:
Der Warenkorb kann beliebig geändert werden. Die Lieferdaten oben aber können, wenn sie registriert sind, nicht mehr geändert werden! Ohne Registrierung gehen sie aber im Falle einer Änderung des Warenkorbs verloren.
Unverständlich:
Der Warenkorb ist auch in der Session registriert und wird durch die Änderungen nach Belieben überschrieben. Warum werden die Formulardaten nicht mehr überschrieben?
Beobachtung hierzu:
$_SESSION scheint Vorrang vor $_POST zu haben.
Wenn $_SESSION['variable'] existiert, wird $_POST['variable'] ignoriert.
$variable wird im Programm also immer den Wert von $_SESSION haben.
Ich vermute mal, das liegt an register_globals = on in der PHP.INI.
Die ist leider vom Provider so vorgegeben.