[Php-avanzado] Actualizar pagina desde otra

Leonardo Tadei - Pegasus Tech Supply leonardot en pegasusnet.com.ar
Vie Jun 18 18:01:14 ART 2010


Hola Leandro,

	tiene pinta de ser un problema del orden de las inclusiones.

	Enviá el index.php, para ver el flujo de las llamadas, y el
art_show.php

	Fijate también se estás recibiendo el "id" de la categoría para armar
el primer SELECT * FROM articulos where id_categ='$id' en show.php
	De hecho, hace un print de esta query, y fijate si se genera o no la
query correcta...

	También, si andás con tiempo, pasate el sábado entre las 11 y las 13hs
por la FI, que estamos en la 2da parte de la clase de PHP Inicial,
instálas lo que tenés hecho hasta ahora en el server de la facu, y lo
vemos juntos con el código corriendo.

	Seguimos!

El vie, 18-06-2010 a las 16:26 +0000, Leandro Schereik escribió:
> 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
> 
> 
> ______________________________________________________________________
> Acceder a tu casilla ahora es mucho más rápido. Ahora Hotmail es un
> 70% más veloz. Conocé más
> _______________________________________________
> Php-avanzado mailing list
> Php-avanzado en pato2.fi.mdp.edu.ar
> http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
-- 


Leonardo Tadei
leonardot en pegasusnet.com.ar
Pegasus Tech Supply
Tel: (+54)(+223) 471-2880
La Salle 1131 - Mar del Plata - Argentina
http://www.pegasusnet.com.ar / http://blog.pegasusnet.com.ar
http://www.prometeustech.com.ar / http://www.grupopegasus.com
Firma pública: http://www.pegasusnet.com.ar/LeonardoTadei-public.key
                



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