[Php-avanzado] Actualizar pagina desde otra

Leandro Schereik lschereik en hotmail.com
Vie Jun 18 13:26:37 ART 2010


Hola Leo paso algo de codigo por aca asi me puedo explicar mejor.
Cuando me logueo desde index.php esta perfecto ya que cuando hago click en el menu categoria me lleva a art_show.php y carga show.php con los datos de session y carga los articulos junto con la imagen de comprar el mismo.
El problema surge cuando cuando estoy en art_show.php?1, art_show.php?2, .. art_show.php?N  con el comprador sin iniciar sesion al hacerlo, se loguea y no aparecen las imagenes para poder comprar el articulo y el usuario esta logueado, actulizo la pagina con f5 y carga articlos con las imagenes. 
Me explico?
 



categorias.php   :
--------------
<!--  Esta dentro de index.php y arma un menu con las categorias, le pasa a
 art_show.php?id el id de la categoria a mostrar sus articulos -->


<p class="p">Categorias<p>
<br>
<ul class="list">
<?
include_once("conexion.php");

//selecciona todos los nombres de las categorias, si no hay categorias emite un mensaje
$sql=mysql_query("SELECT * FROM categorias  ORDER BY nom");

while($categ=mysql_fetch_row($sql)){
?>
<li><span><a href="art_show.php?id=<?=$categ[0];?>"><? echo($categ[1]."<br>"); ?></a></span></li> 

<?
}
mysql_close();


?>
</ul>


login.php
---------

<?php 
include("funciones.php");
    
    $_SESSION['user'] = (isset($_SESSION['user'])) ? $_SESSION['user'] : '';


    if (isset($_POST["log"])){
        $user=$_POST["user"];
        $pass=$_POST["pass"];
        include("conexion.php");
        $sql=mysql_query("SELECT * FROM compradores WHERE user='$user'");
        $usuario=mysql_fetch_array($sql);
        mysql_close();
        if (($pass==$usuario['pass'])&&($usuario['id_tip_user']==2)){
             $_SESSION['id']=$usuario['id'];
             $_SESSION['user']=$usuario['user'];
             $_SESSION['pass']=$usuario['pass'];
             $_SESSION['nom']=$usuario['nom'];
             $_SESSION['ape']=$usuario['ape'];
             $_SESSION['tel']=$usuario['tel'];
             $_SESSION['email']=$usuario['email'];

             
        }
        else{
            echo("Nombre de Usuario o Contraseña incorrectas.");
        }
        
    }
?>
        
    <? if ($_SESSION['user']==""){ ?> 
    <form name="login" method="post" action="">
        <table>
            <tr>
                <td>Usuario </td>
                <td><input type="text" name="user" id="user"></td>
            
            </tr>
            <tr>    
                <td>Password</td>
                <td><input  type="password" name="pass" id="pass"></td>    
            
            </tr>
            <tr>
                <td></td>
                <td><input type="submit" name="log" id="log" value="Login" onclick="javascript:window.opener.location.reload();"> 
                    <input type="button" name="reg" id="reg" value="Registrarse" onClick="location.href ='comp_alta.php'">
                </td>
            </tr>
        </table>

    <?
                }
                else{
                    echo("Nombre: ".$_SESSION['nom']." ".$_SESSION['ape']);
                    ?> <br /><br />
                       <input type="button" name="logout" id="logout" value="Logout" onClick="location.href ='logout.php'"> 
                       <input type="button" name="editar" id="editar" value="Editar Datos" onclick="location.href ='comp_edit.php'"> <?
                }

            ?>
</form>



show.php
---------
<!--  Dentro de art_show.php -->


<form action="" method="get" name="carro"> 
<?
// id de la categoria a buscar sus articulos
if (isset($_REQUEST["id"])){
    $id=$_REQUEST["id"];

    include("conexion.php");
    $sql=mysql_query("SELECT * FROM articulos where id_categ='$id'");
    //$cant: cantidad de filas consultadas para mostrar articulos o mensaje error (sin articulos)
    $cant=mysql_num_rows($sql);
    if ($cant > 0){
            while($art=mysql_fetch_array($sql)){
                //verifica stock para listar solo articulos con stock mayor a 0
                if($art["stock"]>0){        
                    if (isset($_SESSION['id'])){
                        if (isset($_SESSION['carro']))
                            $carro=$_SESSION['carro'];
                        else
                            $carro=array();
                        
                        // si no esta id del articulo en el carro lo muestra con la imagen de agregar
                        if (!in_array($art["id"],$carro)){
                        ?>
                         
                            <div id="show_art">
                                <div id="show_img">
                                    <img src="<?=$art["img1"];?>" height="75" width="75"/><br>
                                </div>
                                <div id="show_titulo" >
                                    <h3><?=$art["nom"];?></h3>
                                </div>
                                <div id="show_detalle">
                                    Precio:$<?=$art["precio"];?> Stock:<?=$art["stock"];?>    
                                </div>
                                <div id="show_carrito">
                                    <!-- y finaliza por -->
                                    <a href="agregar.php?id=<?=$art["id"];?>"><img src="images/agregar.png" /></a>                            
                                </div>
        
                            </div>
                        <?
                          } 
                          else{
                        
                            ?>
                              <div id="show_art">
                                    <div id="show_img">
                                        <img src="<?=$art["img1"];?>" height="75" width="75"/><br>
                                    </div>
                                    <div id="show_titulo" >
                                        <h3><?=$art["nom"];?></h3>
                                    </div>
                                    <div id="show_detalle">
                                        Precio:$<?=$art["precio"];?> Stock:<?=$art["stock"];?>    
                                    </div>
                                    <div id="show_carrito">
                                        <!-- y finaliza por -->
                                        <a href="borrar.php?id=<?=$art["id"];?>">boorrar</a>
                                    </div>
            
                                </div>
                              <?
                        }//cierra else (!esta($carro,$art["id"])){
                        }//cierra if (isset($_SESSION['user'])){
                    else{ //if (isset($_SESSION['user'])){
                          ?>
                            <div id="show_art">
                                <div id="show_img">
                                    <img src="<?=$art["img1"];?>" height="75" width="75"/><br>
                                </div>
                                <div id="show_titulo" >
                                    <h3><?=$art["nom"];?></h3>
                                </div>
                                <div id="show_detalle">
                                    Precio:$<?=$art["precio"];?> Stock:<?=$art["stock"];?>    
                                </div>
                                <div id="show_carrito">
                                    <p>Debe estar logueado para realizar compras.</p><!-- y finaliza por -->
                                    

                                </div>
        
                            </div>
                          <?
                    }
                            
                }
            } // cierra if($art["stock"]>0)
    }// cierra while($art=mysql_fetch_array($sql))
    
    else{
        echo("No hay articulos para la categoria seleccionada.");
}// cierra if ($cant > 0){

}//cierra if (isset($_REQUEST["id"])){

?>
</form>


Saludos

Leandro 



> From: leonardot en pegasusnet.com.ar
> To: php-avanzado en pato2.fi.mdp.edu.ar
> Date: Thu, 17 Jun 2010 11:15:49 -0300
> Subject: Re: [Php-avanzado] Actualizar pagina desde otra
> 
> Hola Leandro,
> 
> 	se me escapa el por qué de esta necesidad tan particular....
> 
> 	A priori, si en show.php hay un include con un login, basta que el
> formulario de login tenga en su action al propio show.php, para que,
> cuando el usuario se loguea, vaya al servidor, se autentifique, y al
> recargarse naturalmente show.php, se mostrará el contenido sin necesidad
> de tanta complicación!
> 
> 	La lógica de show.php es simple: si no está autentificado, se incluye
> login.php, y si sí está autentificado, se incluye el articulos.php (o
> como se llame) para mostrar el artículo correspondiente.
> 
> 	Qué esto esté en un <div> o en cualquier otro elemento HTML no cambia
> la secuencia de ejecución del script.
> 
> 	O es muy fácil, o me perdí de algo ;-)
> 
> 	Saludos!
> 
> 
> PD: no cuelgues el recuperatorio!
> 
> El jue, 17-06-2010 a las 05:02 +0000, Leandro Schereik escribió:
> > Hola a todos:
> > tengo un sitio maqueteado con div y dentro de esos div includes.
> > 
> > Una de las paginas del sitio es show.php que muestra articulos con una
> > imagen para comprar dicho articulo la idea es que la imagen se muestre
> > si el comprador inicio sesion (hasta ahi todo bien). 
> > 
> > La consulta es la siguiente: como puedo hacer para que al iniciar
> > sesion (dentro de un div en show.php tengo un include("login.php"))
> > forzar que actualice la pagina (show.php) asi entran las variables de
> > session con datos y muestra la imagen para poder comprar el producto,
> > ya que inicio sesion y dichas imagenes no aparecen, actualizo la
> > pagina con F5 y ahi si.
> > 
> > Investigando un poco encontre que en el evento onclick del formulario
> > login podia hacer lo siguiente con javascript: 
> > <input type="submit" name="log" id="log" value="Login"
> > onclick="javascript:window.opener.location.reload();"> y de esa manera
> > forzar a que se actualice la pagina pero no esta funcionando.
> > 
> > Espero haber sido claro
> > 
> > Muchas Gracias 
> > 
> > Leandro Schereik
> 
> -- 
> 
> Leonardo Tadei
> leonardot en pegasusnet.com.ar
> http://blog.pegasusnet.com.ar
> Firma pública: http://www.pegasusnet.com.ar/LeonardoTadei-public.key
> 
> _______________________________________________
> Php-avanzado mailing list
> Php-avanzado en pato2.fi.mdp.edu.ar
> http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
 		 	   		  
_________________________________________________________________
¿Tenés poco tiempo? Accedé a Hotmail mucho más rápido. Ver más
http://www.descubrehotmail.com/velocidad.asp 
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://www3.fi.mdp.edu.ar/cgi-bin/mailman/private/php-avanzado/attachments/20100618/38a1a669/attachment-0001.htm 


Más información sobre la lista de distribución Php-avanzado