Hola, mira, lo mas util es hacer algo como esto..
1.- Creas una pagina que verifique la existencia de la session.. para no reescribirla creandola en todas las paginas.. y solo la incluyes en todos los archivos que requieran de la session.. algo como..
Código PHP:
<?php
include("tulibreriadelcarro.php");
session_start();
if(!isset($_SESSION["carro"])){
$_SESSION["carro"] = new carrodeCompra();
}
if($_SESSION["sesion"]!="logged")
{
$_SESSION["usuario"] = "Invitado";
}
?>
y por ejemplo donde muestres el campo de loggin o de inicio de session, solo mostrarlo si no estan loggeados.. algo como...
Código PHP:
//si no iniciaron session
if($_SESSION["sesion"]!="logged")
{
//mostrar formulario de inicio de session
}else
{
//mostrar bievenido y si quieres algunos datos del usuario..
}
2.- Con respecto a tu otra pregunta.. pues solamente es de que recorras en un for.. el carrito y lo imprimas en unas variables para enviar un correo.. por ejemplo.. si usas php mailer o la funcion mail pues seria distinto pero pues la implementacion del mensaje es parecida..
2.1.. Buscas en el array de los productos con un for..todos los productos que no esten marcados con 0 (osea que hayan sido borrados).. y los vas guardando en una tabla igualita a la de ver_carrito.php, pero ahora en lugar de ir imprimiendo cada linea, la vags acumulando a una variable.. que meteras en el cuerpo del mensaje..
Código PHP:
$carromail = "<table>";
for ($i=0;$i<$this->num_productos;$i++){
//si no estan marcados con 0
if($this->array_id_prod[$i]!=0){
$carromail.= '<tr>';
$carromail.= "<td>" . $this->array_nombre_prod[$i] . "</td>";
$carromail.= "<td>" . $this->array_precio_prod[$i] . "</td>";
$carromail.= '</tr>';
$suma += $this->array_precio_prod[$i];
}
}
$carromail.= "</table>";
ya tienes el cuerpo del mensaje.. procedes a enviarlo..
Cabe destacar que no solo vas a enviar eso en el mail, pero le puedes agregar mas cosas a la variable $carromail.=