RE:ayuda :( REFRESCAR PAGINA EN PHP
El problema es el siguiente:
Cuando cargas la página normalmente lanzas una petición que lo que hace es devolver esa página.
(por ejemplo, pides http://..../catalogo.php y te devuelve esa página y ya)
Cuando añades un producto al carrito, lo que tú estás haciendo es primero hacer la operación de añadir ese producto al carrito y luego devolviendo otra vez la página. En una sola llamada.
(por ejemplo, pides http://..../catalogo.php?accion=añadir&producto=1234 y eso añade el producto al carrito y en la misma llamada te devuelve la página del catálogo)
Cuando haces esto último, la página en la que estás ahora es esa ( http://..../catalogo.php?accion=añadir&producto=1234 ) no es la página original ( http://..../catalogo.php ) así que si la refrescas, se vuelve a llamar a lo mismo... a añadir el producto.
Lo que te comenta basnek es que hagas lo siguiente:
Cuando llames a añadir un producto al carrito ( http://..../catalogo.php?accion=añadir&producto=1234 ) en lugar de hacer la operación de añadir y en la misma llamada devolver la página del catálogo, hazlo separado. Es decir, que después de haber hecho la acción de añadir el producto al carrito, no devuelvas la página, sino que digas "ya está hecho, ahora ve a la página de ver el catálogo".
Y esto se hace usando header(), que es una función que te permite modificar la cabecera de la respuesta HTTP. La cabecera de la respuesta HTTP es algo que va antes de tu página y es lo que contiene códigos como "404 página no encontrada" o "500 Error del servidor". En tu caso, lo que necesitas hacer es incluir una cabecera que le dice "ve a ver esta otra página en lugar de la que me has pedido". Es la cabecera Location. P.ej. si le pones "Location: /catalogo.php" lo que haría sería decir "vale, ya he procesado la llamada de añadir al carrito, ahora vete a catalogo.php" sin más, sin operación de añadir.
Y todo esto por qué? Pues porque si haces eso, el navegador al recibir eso, se va a /catalogo.php y queda en esa página. De modo que si le das a refrescar, lo que refresca es esa página, no la que tenía la acción de añadir.