Ver Mensaje Individual
  #13 (permalink)  
Antiguo 23/03/2005, 09:27
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
Por mi parte no he probado el carrito . .sólo he visto por encima el código ...

En "mete_producto.php" y "elimina_producto".. siendo un script de proceso sólo (ya que va a crear unos elementos nuevos en una serie de arrays que al final quedan en una sesión .. El botón de "ver carrito" no debería existir ahí. Deberías redireccionar automáticamente hacia ver_carrito.php usando:

header("Location: ver_carrito.php");

Podrías tener un sólo script para procesos con el carrito (elimina/añade) pero bueno .. eso es un detalle.

Con eso te evitas que si se recarga esa página donde se hace el proceso de "mete_producto.php" .. se origien nuevos registros en el carrito iguales (repetidos). Además que lo lógico y la opción que ahí das es esa sóla .. así que mejor que ir directo.

En ver_carrito.php (y otros que no lo hagas)
Deberías usar la misma filosofía que usas en mete_producto.php

if (!isset($_SESSION["ocarrito"])){
$carrito= new carrito();
} else{
$carrito=$_SESSION["ocarrito"] ;
}

Si no lo haces .. obtendras mensajes de error tipo "objeto no definido" cuando tengas problemas con sesiones.. Cuando si lo usas .. si no existe la sesión .. se creará (instanciará ) el objeto (classe) .. pero sin valores .. el resto de tu lógica ya se encargará de decir cosas tipo "no hay productos en el carrito" .. etc.. y otras validaciones que podrías hacer.

En lib_carrito.php .. el método para enviar el e-mail .. creo que no corresponde usarlo ahí. Por ejemplo yo no uso "mail()" para enviar e-mails .. uso otras funciones/classes .. así que ese método me "rije" a usar mail(). En tal caso estaría bueno un método de "genera_cuerpo_e-mail" tal vez con ese detalle del pedido .. pero no mezclar el "envio" en sí .. un metodo que lo llame y me devuelva el "pedido" para gestionarlo como cada uno lo necesite ..
Por ejemplo .. el método "imprime_pedido()" me podría servir para componer mi e-mail por otro médio .. pero ese método fija el formato a HTML (tal vez alguien necesite hacerlo en texto plano) ..


En fin .. son detalles "funcionales" .. El caso es que cuando diseñas una "classe" (Objeto) debes intentar hacerlo lo más versatil posible .. NO es llegar y "parchearlo" con tus "funciones" que necesites. Esas funciones son própias de tu "aplicación" del momento . .pero no de su base.

Un saludo,