pero las sessiones no se guardan bien, por ejemplo, si se fijan en la case confproducto, cuando el if(empty($pn)) da falso el form no aparece, y creo que es porque las sesiones no estan grabadas.
Código PHP:
   <?php
include 'config.php';
session_start();
 
$a = trim(htmlentities($_GET['a']));
$gid = trim(htmlentities($_GET['gid']));
    if(empty($gid))
    {
        $gid = 1;
    }
?>
<html>
<head>
<!--deje solo las etiquetas html necesarias porque no entraba el msj-->
<title><?php echo $titulo; ?> - Carro de Pedidos</title>
  <script type="text/javascript">
  <!--
  function tipodominio1()
  {
   document.getElementById('div2').style.display = 'none';
   document.getElementById('div1').style.display = 'inherit';
  }
  function tipodominio2()
  {
   document.getElementById('div2').style.display = 'inherit';
   document.getElementById('div1').style.display = 'none';
  }
  -->
  </script>
</head>
<body>
<?php
switch($a)
{
    default:
    ?>
<ul>
    <?php
    $qry = mysql_query("SELECT * FROM grupos ORDER BY id");
    while($grupo = mysql_fetch_array($qry))
    {
    ?>
    <li><a href="carrito.php?gid=<?php echo $grupo['id']; ?>"><?php echo $grupo['nombre']; ?></a></li>
    <?php
    }
    ?>
</ul>
<table width="800" border="0">
  <?php
  $qry = mysql_query("SELECT * FROM productos WHERE gid='$gid' ORDER BY orden");
  while($producto = mysql_fetch_array($qry))
  {
  ?>
  <tr>
    <td><?php echo $producto['nombre']; ?><br />
        <?php echo $producto['comentarios']; ?></td>
    <td>
    <?php
    if($producto['preciomensual'] != "0.00")
    {
        $preciomensual = $producto['preciomensual'];
        echo "$preciomensual $moneda mensual<br>";
    }
    if($producto['preciotrimestral'] != "0.00")
    {
        $preciotrimestral = $producto['preciotrimestral'];
        echo "$preciotrimestral $moneda trimestral<br>";
    }
    if($producto['preciosemestral'] != "0.00")
    {
        $preciosemestral = $producto['preciosemestral'];
        echo "$preciosemestral $moneda semestral<br>";
    }
    if($producto['precioanual'] != "0.00")
    {
        $precioanual = $producto['precioanual'];
        echo "$precioanual $moneda anual<br>";
    }
    ?>
    </td>
    <td><a href="carrito.php?a=agregar&pid=<?php echo $producto['id'];?>">Pedir Ahora</a></td>
  </tr>
  <?php
  }
  ?>
</table>
<?php
    break;
    case "agregar":
    
    $pid = trim(htmlentities($_GET['pid']));
    ?>
    <form action="carrito.php?a=confproducto" method="post">
<p>El Producto/Servicio que has elegido requiere de un nombre de dominio. Elija la opción que desee de las siguientes e introduzca un nombre de dominio.</p>
<p><input type="radio" name="opcion" value="tipodominio1" onClick="(this.checked) ? tipodominio1() : tipodominio2();" >
Registrar dominio</p>
<p><input type="radio" name="opcion" value="tipodominio2" onClick="(this.checked) ? tipodominio2() : tipodominio1();" >Usar dominio existente</p>
<div id="div1" style="display:none">
<p>www.<input type="text" name="nomdominio" size="30" >
<select name="extdominio">
<?php
$qry = mysql_query("SELECT * FROM dominios ORDER BY id");
while($extensiondominio = mysql_fetch_array($qry))
{
?>
<option value="<?php echo $extensiondominio['extension']; ?>"><?php echo $extensiondominio['extension']; ?></option>
<?php
}
?>
</select></p><p>Tenga en cuenta que los dominios .com.ar solo admiten hasta 19 carácteres.</p></div>
<div id="div2" style="display:none">
<p>www.<input type="text" name="nomdominioex" size="30">.<input type="text" name="extdominioex" size="8" ></p>
</div>
<input type="hidden" name="pid" value="<?php echo $pid; ?>" />
<input type="submit" name="Enviar" value="Hacer Clic para Continuar > >" />
</form>
<?php
    break;
    case "confproducto":
    
        if($_SESSION['productocomprado'] != true)
    {
        $_SESSION['productoscomprados'] = 0;
    }
    $pid = trim(htmlentities($_POST['pid']));
    $pn = trim(htmlentities($_GET['pn']));
if(empty($pn))
{
?>
<h2>Configuración de Productos</h2>
<p>El Producto/Servicio que ha elegido tiene las opciones de configuracion siguientes. Modifique las que le interesen.</p>
<h3>Producto/Servicio</h3>
<?php
$qry = mysql_query("SELECT * FROM productos WHERE id='$pid'");
if($producto = mysql_fetch_array($qry))
{
    $gid = $producto['gid'];
    $qry = mysql_query("SELECT * FROM grupos WHERE id='$gid'");
    if($grupo = mysql_fetch_array($qry))
    {
?>
<p><?php echo $grupo['nombre']; ?> - <?php echo $producto['nombre']; ?><br />
<?php echo $producto['comentarios']; ?></p>
<h3>Ciclo de Facturación</h3>
<form action="carrito.php?a=actualizar" method="post">
<select name="ciclodefacturacion">
    <?php
    if($producto['preciomensual'] != "0.00")
    {
        $preciomensual = $producto['preciomensual'];
        echo "<option value=\"mensual\">$preciomensual $moneda mensual</option>";
    }
    if($producto['preciotrimestral'] != 0.00)
    {
        $preciotrimestral = $producto['preciotrimestral'];
        echo "<option value=\"trimestral\">$preciotrimestral $moneda trimestral</option>";
    }
    if($producto['preciosemestral'] != 0.00)
    {
        $preciosemestral = $producto['preciosemestral'];
        echo "<option value=\"semestral\">$preciosemestral $moneda semestral</option>";
    }
    if($producto['precioanual'] != 0.00)
    {
        $precioanual = $producto['precioanual'];
        echo "<option value=\"anual\">$precioanual $moneda anual</option>";
    }
    ?>
</select>
<input type="hidden" name="accion" value="1" />
<input type="hidden" name="pid" value="<?php echo $pid; ?>" />
<input type="hidden" name="gid" value="<?php echo $gid; ?>" />
<input type="hidden" name="pn" value="<?php echo $_SESSION['productoscomprados']; ?>" />
<input type="submit" value="Actualizar Carro" />
</form>
<?php
    }
}
 
}
else
{
    
    $pn = trim(htmlentities($_GET['pn']));
    $pid = $_SESSION[$pn]['pid'];
    $gid = $_SESSION[$pn]['gid'];
?>
<h2>Configuración de Productos</h2>
<p>El Producto/Servicio que ha elegido tiene las opciones de configuracion siguientes. Modifique las que le interesen.</p>
<h3>Producto/Servicio</h3>
<?php
$qry = mysql_query("SELECT * FROM productos WHERE id='$pid'");
if($producto = mysql_fetch_array($qry))
{
    $qry = mysql_query("SELECT * FROM grupos WHERE id='$gid'");
    if($grupo = mysql_fetch_array($qry))
    {
?>
<p><?php echo $grupo['nombre']; ?> - <?php echo $producto['nombre']; ?><br />
<?php echo $producto['comentarios']; ?></p>
<h3>Ciclo de Facturación</h3>
<form action="carrito.php?a=actualizar" method="post">
<select name="ciclodefacturacion">
    <?php
    if($producto['preciomensual'] != "0.00")
    {
        $preciomensual = $producto['preciomensual'];
        echo "<option value=\"mensual\">$preciomensual $moneda mensual</option>";
    }
    if($producto['preciotrimestral'] != 0.00)
    {
        $preciotrimestral = $producto['preciotrimestral'];
        echo "<option value=\"trimestral\">$preciotrimestral $moneda trimestral</option>";
    }
    if($producto['preciosemestral'] != 0.00)
    {
        $preciosemestral = $producto['preciosemestral'];
        echo "<option value=\"semestral\">$preciosemestral $moneda semestral</option>";
    }
    if($producto['precioanual'] != 0.00)
    {
        $precioanual = $producto['precioanual'];
        echo "<option value=\"anual\">$precioanual $moneda anual</option>";
    }
    ?>
</select>
<input type="hidden" name="accion" value="2" />
<input type="hidden" name="pn" value="<?php echo $pn; ?>" />
<input type="submit" value="Actualizar Carro" />
</form>
<?php
    }
}
}
    break;
    case "actualizar":
    
    $accion = $_POST['accion'];
    if($accion == 1)
    {
        $_SESSION['productocomprado'] = true;
        $pn = $_POST['pn'];
        $ciclodefacturacion = $_POST['ciclodefacturacion'];
        $pid = $_POST['pid'];
        $gid = $_POST['gid'];
        
        $qry = mysql_query("SELECT * FROM productos WHERE id='$pid'");
        if($producto = mysql_fetch_array($qry))
        {
            if($ciclodefacturacion == "mensual")
            {
                $precio = $producto['preciomensual'];
            }
            if($ciclodefacturacion == "trimestral")
            {
                $precio = $producto['preciotrimestral'];
            }
            if($ciclodefacturacion == "semestral")
            {
                $precio = $producto['preciosemestral'];
            }
            if($ciclodefacturacion == "anual")
            {
                $precio = $producto['precioanual'];
            }
        }
        
        $_SESSION[$pn] = array
        (
        "pn"=>$pn,
        "ciclodefacturacion"=>$ciclodefacturacion,
        "pid"=>$pid,
        "gid"=>$gid,
        "precio"=>$precio,
        );
        
        $productoscomprados = $_SESSION['productoscomprados']+1;
        $_SESSION['productoscomprados'] = $productoscomprados;
        
    }
    else
    {
        if($accion == 2)
        {
        $ciclodefacturacion = $_POST['ciclodefacturacion'];
        if($producto = mysql_fetch_array($qry))
        {
            if($ciclodefacturacion == "mensual")
            {
                $precio = $producto['preciomensual'];
            }
            if($ciclodefacturacion == "trimestral")
            {
                $precio = $producto['preciotrimestral'];
            }
            if($ciclodefacturacion == "semestral")
            {
                $precio = $producto['preciosemestral'];
            }
            if($ciclodefacturacion == "anual")
            {
                $precio = $producto['precioanual'];
            }
        }
        
        $_SESSION[$pn] = array
        (
        "ciclodefacturacion"=>"$ciclodefacturacion",
        "precio"=>"$precio",
        );
        
        echo $_SESSION[$pn]['pn'];
        echo "<br>";
        echo $_SESSION[$pn]['ciclodefacturacion'];
        echo "<br>";
        echo $_SESSION[$pn]['pid'];
        echo "<br>";
        echo $_SESSION[$pn]['precio'];
        }
        else
        {
            echo "<script type=\"text/javascript\">";
                echo "location.href=\"carrito.php\";";
            echo "</script>";
        }
 
    }
 
    break;
    case "ver":
    
?>
<table width="800" border="0">
  <tr>
    <td>Descripción</td>
    <td>Precio</td>
  </tr>
  <tr>
    <td> </td>
    <td> </td>
  </tr>
  <tr>
    <td>Subtotal:</td>
    <td> </td>
  </tr>
  <tr>
    <td>Importe a la fecha:</td>
    <td> </td>
  </tr>
</table>
<?php
    break;
}
?>
</body>
</html>    
 


