[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