Comunidad de diseño web y desarrollo en internet online

PROBLEMA CON CARRITO-PHP UNA VEZ SUBIDO AL SERVIDOR

Citar            
MensajeEscrito el 31 Ene 2012 11:10 am
Hola, siento tener que recurrir finalmente a vosotros, pero estoy venga darle vuelta y de verdad que no entiendo cual es el problema.

Veréis estoy haciendo una web con un simple carrito en que se van añadiendo productos y luego el pedido se envia via mail. Los datos de los productos los recojo de una bd mediante php. Tengo tres archivos:
1º) es la lista de productos y todo carga a la perfección.
2º) Sería el "popUp" que se abriría al pulsar sobre cualquier producto. En el se encuentra el boton añadir al carrito.
3º) El del carrito, donde debe recoger la variable id que le paso mediante _GET y en base a ella cargarme los datos correspondientes a esa id desde la base de datos. Pero no lo hace. En mi servidor local si, pero una vez lo subo a internet, esto no ocurre.

Os pongo el codigo de los tres archivos para que entendáis mejor el funcionamiento. Ah! y perdonar por tanto rollo en mis comentarios, pero estoy empezando con php y necesito explicarmelo todo a mi misma :P

Productos.php

Código :

<!--Conectamos con mysql y la base de datos-->
<?php

/*require_once  ("estructura/conexionlocal.php");*/
require_once 'estructura/conexion.php';

$titulo= "Productos 'El hombre del Bigote'";

require_once 'estructura/head.php';
?>

    <body>
        
       <div id="container">
   
            <?php include ("estructura/nav.html"); ?>
        
            <div class="main">
        
                
                <div class="menu_lateral">
                    
                    <?php
                    /*Definimos la consulta y la realizamos*/
                    $consulta1="SELECT * FROM categoria_productos";
                    $res2= mysql_db_query($db,$consulta1,$con);
                    
                    /*Ya tenemos los registros en memoria, ahora hay que hacer que aparezcan*/
                    
                    while ($reg2 = mysql_fetch_array($res2)) {
                      
                        $categoria= $reg2['id_categoria'];
                        
                    ?>
                    
                        <div class="categoria">
                            <a href="productos.php?id=<?php echo $categoria;?>"> <?php echo $reg2['nombre_categoria'];?></a>     
                        </div>
                    
                        <div class="linea_productos" id="linea">
                            <div><img src="images/adornos/lineas/lineasProductos/<?php echo $reg2['nombre_categoria'];?>.png"></div>
                        </div>
                
                   
                    <?php } ?>
                    
                </div>
                

                
                <div id="contenedor">
                    
                    <ul id="galeria">
                                         
                        
                        <?php
                        
                        $sql= "SELECT * FROM productos WHERE id_categoria=".$_GET['id']." " ; 
                        $res=mysql_db_query($db,$sql,$con);

                        //echo $sql;

                        while ($reg=  mysql_fetch_array($res)) {
    
                            $miniatura= $reg['id_producto'];
                            $nombre = $reg['nombre_producto'];
                            $descripcion = $reg['descripcion_producto'];
                            $precio = $reg['precio_producto'];
                            
                        ?>
    
                        
                        

                        <li id="thumbnails">
                            <a href="productosPopUp.php?id=<?php echo $_GET['id'];?>&id2=<?php echo $miniatura;?>" class="lbOn">             
                            <img src="images/productos/thumb/<?php echo $miniatura ;?>.png" alt="imagen" /> <!--hay que poner el echo por que aunque no es para que salga en pantalla se necesita para que se imrpima realmente en la ruta-->
                            </a>
                            <br />
                            <span id="nombre"><?php echo $nombre ;?> </span><br />
                            <span><?php echo $precio ;?> </span>
                            <br>
                            <!--VERSION CARRITO1: <a href="carrito/intro_producto.php?id=<?php echo $miniatura;?>&nombre=<?php echo $nombre;?>&precio=<?php echo $precio;?>"><b>A&ntildeadir al carrito</b></a>-->
                
                        </li>
       

                        <?php } ?>
                  
                    
                    </ul>
            
                </div>
                
                 <?php
                        
                        $sql= "SELECT id_categoria FROM productos WHERE id_categoria=".$_GET['id']." " ; //en este caso voy a utilizar todos los campos de la tabla, pero si no fuera así sería preferible descargar concretamente los q nos interesan para gastar menos recursos.
                        $res=mysql_db_query($db,$sql,$con);

                        //echo $sql;

                        if ($reg=  mysql_fetch_array($res)) {
                            
                 ?>
                            <div id="adorno_productos">
                               
                            <img src="images/adornos/adorno_<?php echo $reg['id_categoria'] ;?>.png">

                            </div>
                
                         <?php } ?>
                
               
                
             </div>
           
           
             <?php include ('estructura/pie.html');?>
           
       </div>
        

    </body>
    
</html>[/center][/center]




popUp.php

Código :

<?php session_start(); 
$titulo = "Productos EL HOMBRE DEL BIGOTE";

//creamos dos variables que tomen el valor de las variables pasadas por la uRL. El hecho de separarlas, y seguir manteniendo la id de la categoría,
//(se podía haber echo unicamente con la id del producto) Nos sirve para prograamar el boton volver, y conseguir que vuelva al apartado del menu (categoria)
//en el que nos encontramos. Si no lo hicieramos así, perderíamos este dato y solo podríamos decirle que volviera a una determinada categoria fija.
//Esto es consecuencia de la programación dinamica. Si tuvieramos un pop Up para cada categoria esto no ocurriría, pero al estar programando dinamicamente, 
//el usuario puede haber pulsado cualquier boton y estar en cualquier categoria de productos. ¿A cual volvemos? Pues a la que marca la variable pasada por GET.
$id_categoria = $_GET['id']; // Variable correspondiente a la id categoria
$id_producto = $_GET['id2']; //id2 es la segunda variable que pasamos via _GET, correspondiente a la id del producto que se debe mostrar


?>

<!--Conectamos con la BD y obtenemos la información del producto actual-->

<?php
require_once  ("estructura/conexionlocal.php");
/*require_once 'estructura/conexion.php';*/


$sql= "SELECT * FROM productos WHERE id_producto=$id_producto" ; //en este caso voy a utilizar todos los campos de la tabla, pero si no fuera así sería preferible descargar concretamente los q nos interesan para gastar menos recursos.
$res=mysql_db_query($db,$sql,$con);
$reg= mysql_fetch_array($res);



include("estructura/head.php");


?>


    <body>
        
        
        <div id="contenidoPopUp">


        
        <!--desplegamos la imagen actual a tamañao completo con su respectiva descripcion-->
        
        <img id="imgcompleta" src="images/productos/popUp/<?php echo $reg['id_producto'];?>.jpg" alt="<?php echo $reg['nombre_producto'];?>" />
        
        
         <!-- aqui, en el boton VOLVER podriamos untiliar java (javascript:history.back()) 
        pero como el Pop Up no cambia la url, realmente es como si no hubieramos avanzado. 
        Por lo que no retrocede a la pagina correspondiente-->
        <div id="navegacion"><a href="carrito.php">Ver cesta</a> | <a href="productos.php?id=<?php echo $id_categoria;?>">Volver</a></div>
        
        <!--Establecemos un pequeño div para la informacion de la imagen. 
        Cuando el usuario pase el mouse por encima, apareceran los datos 
        (titulo y descripcion) -->
   
        <div id="masInfo">
        <h4><?php echo $reg['nombre_producto'];?></h4>
        <p id="descripcion"><?php echo $reg['descripcion_producto'];?></p>    
        <br>
        <br>
        <br>
        <p id="precio"><?php echo $reg['precio_producto'];?> </p> 
        <br>
        <a id="botonAñadir" href='carrito.php?id=<?php echo $reg['id_producto'];?>&action=add' alt='Añadir al carro'>
        <button  type="button" value="Añadir al carrito">  
        <span> Añadir al carrito <span id="flecha"> ></span> </span> 
        </button>              
        </a>
        <br>
        </div>
        
        </div>
        
        <div id="cerrar">
            <a href="#" class="lbAction" rel="deactivate">
                <img id="botonCerrar" src="images/iconos/popUp/lightbox-btn-close.gif" />
            </a>
        </div>
        
        
    </body>
    
</html>


Y por último el del Carrito.php:

Código :

<?php 
session_start();

$titulo = "Carrito de Compra con Php y Mysql";

/*require_once  ("estructura/conexionlocal.php");*/
require_once 'estructura/conexion.php';

include("estructura/head.php");
?>

<body>


  <div id="container">
   
    

        <?php include("estructura/nav.html");?>
           

        
        
            <div class="main">
            
            
            
                <div id="contenedor_carrito">
                
      
                        <h1 id="cabecera">Carrito de compras</h1>
   
      
                        <div class='text-border'>        
        
                            <div id="cuerpo">
                                
                                <div id="principal_carrito">
                
                                <?php
         
         if (isset($_GET['id']))
            $id = $_GET['id'];
         else
            $id = 1;
         
         if (isset($_GET['action']))
            $action = $_GET['action'];
         else
            $action = "empty";
   
   
         switch($action){
         
            case "add":
               if(isset($_SESSION['carro'][$id]))
                  $_SESSION['carro'][$id]++;
               else
                  $_SESSION['carro'][$id]=1;
            break;
            
            case "remove":
               if(isset($_SESSION['carro'][$id]))
               {
                  $_SESSION['carro'][$id]--;
                  if($_SESSION['carro'][$id]==0)
                     unset($_SESSION['carro'][$id]);
               }
               
            break;
            case "removeProd":
               if(isset($_SESSION['carro'][$id])){
                  unset($_SESSION['carro'][$id]);
               }
            break;
            
            case "mostrar":
               if(isset($_SESSION['carro'][$id])){
                  continue;
               }
            break;
            
            case "empty":
               unset($_SESSION['carro']);
            
            break;
                  
            
         }

         /*MOSTRAR Carro*/
         /*echo "<pre>";
            print_r($_SESSION);
           echo "</pre>";

           echo "CANTIDAD: " .   $_SESSION['carro'][$id] . "<br>";
           echo "ID      : " . $id . "<br>";
         */
         
         if(isset($_SESSION['carro'])){
            
            $totalcoste = 0;
            //Inicializamos el contador de productos seleccionados.
            $xTotal = 0;
                                ?>
            
                                    <li>
                                        <ul class="nombre_columnas">
                                            
                                            <li id="columna_nombre">Producto<div id="navegacion_carrito"><a href="javascript:history.back(1)">Volver</a></div></li>
                                            <li> Unidades </li>
                                            <li> Precio Unitario </li>
                                            <li> Subtotal </li>
                                            
                                            
                                        </ul>
                                        
                                    </li>
         
                                <?php
   
            
            foreach($_SESSION['carro'] as $id => $x){
               $resultado = mysql_query("SELECT * FROM productos WHERE id_producto=$id");
               $mifila = mysql_fetch_array($resultado);
               $id = $mifila['id_producto'];
               $producto = $mifila['nombre_producto'];
               //acortamos el nombre del producto a 40 caracteres
               $producto = substr($producto,0,36);
               $precio = $mifila['precio_producto'];
               //Coste por art�culo seg�n la cantidad elegida
               $coste = $precio * $x;
               //Coste total del carro
               $totalcoste = $totalcoste + $coste;
               //Contador del total de productos a�adidos al carro
               $xTotal = $xTotal + $x;
               ?>
                                        
                                    <li>
                                        <ul class="productos_ordenados">
                                            
                                            <li id="nombre_producto">
                                            <?php echo $mifila['nombre_producto'] ;?>    
                                            </li>
                                            
                                            <li>
                                            <?php echo $x ;?>
                                            </li>
                                            
                                            <li>
                                            <?php echo $precio ;?>
                                            </li>
                                            
                                            <li>
                                            <?php echo $coste ;?>
                                            </li>
                                            
                                                                                 
                                         
                                            <li id="acciones">
                                            <a href="carrito.php?id=<?php echo $id ;?>&action=add"><img src="images/iconos/carrito/aumentar.png" style="padding:0 0 0 5px" alt="aumentar cantidad" /> </a>
                                            <a href="carrito.php?id=<?php echo $id ;?>&action=remove"><img src="images/iconos/carrito/restar.png" alt="reducir cantidad" /> </a>
                                            <a href="carrito.php?id=<?php echo $id ;?>&action=removeProd"><img src="images/iconos/carrito/eliminar.png" alt="eliminar" /> </a>
                                            </li>
                                            
                                        </ul>
                                        
                                    </li>
            <?php
               
            }
                                
                                ?>
                                    <div id="total">
                                        
                                        <li>
                                            <ul class="productos_ordenados total">
                                                
                                                <li id="nombre_total"> <label class="Negrita">Total:</label></li>
                                                <li></li>
                                                <li></li>
                                                <li><label class="Negrita">&#0128 <?php echo $totalcoste ;?></li>
                                              
                                                
                                            </ul>
                                        </li>
                                    </div>
                                    
                                    <div id="totalIVA">
                                        <li>
                                            <ul class="productos_ordenados total+IVA">
                                                <li id="nombre_totalIVA"><label id="label_totalIVA" class="Negrita">Total+IVA:</label></li>
                                                <li></li>
                                                <li></li>
                                                <li><label id="label_importe_total" class="Negrita">&#0128 <?php echo $totalcoste*1.18 ;?></li>
                                            </ul>
                                        </li>
                                        
                                        <a href="comprar.php"><imput type="button" value="finalizar compra"/></a>
                                    </div>
                                    
                                    
   
                        <?php
         }
         else
                       
                            
                                    echo "<li id='vacia'>Su carro se encuentra vac&iacute;o</li>"
   
                        ?>      
                               
                                </div> <!-- Cierre principal carrito -->
   
                            </div> <!-- Cierro cuerpo-->
            
                        
                        </div> <!-- Cierre Text-border -->
                
            
                </div> <!-- Cierre contenedor carrito -->
                
                
                
                <div id="resumen">
                    
                    <h4>RESUMEN:</h4>
                    
                    <div id="resumen_total">

                
                                                
                        <li>
                    
                     
                                                    
                            <ul>

                                                        
                                <li><label>Total:</label><label>   <?= $totalcoste;?>  &#0128 </label></li>
                                
   

                   
                            </ul>
                
                                                
                        </li>  
                
                
                                            
                    </div> <!-- Cierre RESUMEN Total -->
                    
                    
                    <div id="resumen_totalIVA">

                
                                   
                        <li>
                    
                                                    
                            <ul>

                        
                                                        
                                <li><label>Total + IVA(18%):</label></li>

                                
                                <li><label id="precio_final">&#0128
                        
                                
                                <?= $totalcoste*1.18;?></label>                 

   
                                </li>
                        
                        
                                <li><div id="btn_confirmar"><a href='contacto.php'><input type='image'  src="images/iconos/carrito/btn_comprar.png" value='finalizar compra' /></a></div></li>                      
                              
                                                    
                            </ul>

                
                                                
                        </li>
                        
                    </div> <!-- Cierre RESUMEN totalIVA -->
                    
                </div> <!-- Cierre Resumen -->
                
                <a id="estadoPedido" href="http://www.mrw.es/seguimiento_envios/MRW_seguimiento_envios.asp"> <img src="images/iconos/carrito/estadoPedido.png"><span>Ver estado Pedido</span> </a>
                
            </div> <!-- Cierre Main -->
      
      <?php
        include("estructura/pie.html");
      ;?>

  </div>

</body>

</html>



Espero que me podáis ayudar de verdad. Me estoy volviendo loca y hoy es mi ultimo dia para terminar la web.

Aqui os pongo también el link por si necesitáis verla en funcionamiento: [url=www.elhombredelbigote.com][/url]

Y ya os digo, en mi servidorlocal funciona perfectamente.

Muchísimas gracias de antemano.

Por ALEGNA_21

19 de clabLevel



 

chrome
Citar            
MensajeEscrito el 31 Ene 2012 04:00 pm
Bueno para quien le puede servir, ya he encontrado la solución. Como era de esperar el problema residia en la consulta que hago a la base de datos en el archivo carrito.php.

Comparando los tres archivos me he dado cuenta que la consulta en este ultimo no estaba hecha del mismo modo, y aunque no encontraba ningun error, he decidido hacer igual q en los otros archivos, ya q en estos si funcionaba. Y así a comenzado a funcionar!!! :D

En resumen. Yo tenía:

$resultado = mysql_query("SELECT * FROM productos WHERE id_producto=$id");
$mifila=mysql_fetch_array($resultado)

Y ahora se ha quedado de la siguiente forma:

$resultado="SELECT*FROM productos WHERE id_producto=$id";
$res= mysql_db_query ($db, $resultado , con);
$mifila = mysql_fetch_array($res);

Aunque no entiendo muy bien por qué si que me funcionaba en local, ni por que es necesario quitar " mysql_query" de la consulta.

Pero bueno, así ahora me funciona. Aunque si alguien me explica el por qué, le estaría muy agradecida :D

Gracias!

Por ALEGNA_21

19 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.