Y ese codigo te genera algun error o advertencia como de "Warning: Cannot modify headers information..." o similar?
1- No debes enviar ni un caracter, ni un espacio, ni saltos de linea, mucho menos etiquetas HTML, CSS, etc. antes de session_start() o header() porque ambas instrucciones fallaran.
2- Inmediatamente despues de un header('Location: ...'); debes agregar
exit; para finalizar la ejecucion del script y evitar acciones impredecibles.
Tu codigo deberia ser mas o menos asi:
Código PHP:
Ver original<?php
// Verificas el inicio de sesion
if($_SESSION['user'] == 'invitado' || $_SESSION['user'] == 'administrador') {
header("Location: index.php?page=compralogin"); }
// Verificas si ya se proceso el formulario
if(isset($_POST['enviat'])) { // Verificas la informacion del formulario
// La ingresas a base de datos
// Eliminas la informacion de compra en la sesion (si es que ya no la necesitas)
// Muestras un mensaje de que todo salio bien y/o rediriges a otra pagina
}
// Aqui muestras tu formulario
?>
<html>
<head>
<title>bla bla bla</title>
<style type="text/css">body { background:#fff; }</style>
</head>
<body>
<form .............>
</form>
</body>
</html>