[Php-avanzado] Actualizar pagina desde otra
Leonardo Tadei - Pegasus Tech Supply
leonardot en pegasusnet.com.ar
Sab Jun 19 20:13:17 ART 2010
Ojalá sea porque entendiste bien la idea de layout y su aplicación de
hace 2 mails...
Saludos!!!
El sáb, 19-06-2010 a las 23:11 +0000, Leandro Schereik escribió:
> Hola Leo: hace de cuenta que no leiste el mail anterior ja
>
> Saludos
>
> Muchas gracias
>
> ______________________________________________________________________
> From: lschereik en hotmail.com
> To: php-avanzado en pato2.fi.mdp.edu.ar
> Date: Sat, 19 Jun 2010 03:04:05 +0000
> Subject: Re: [Php-avanzado] Actualizar pagina desde otra
>
> Hola Leo, PERFECTO incluyendo login.php arriba anda barbaro.
>
> El problema es que tendria que cambiar el layout no? Para colocar
> login.php primero.
> O tendria que cambiar la logica de lo programado para no modificar el
> layout?
> Como pudiste ver en index.php tengo un menu a la izquieda de la pagina
> donde estan las categorias, en el medio los articulos y a la derecha
> de la pagina el login.
>
>
> Muchisimas Gracias por la ayuda
>
> Leandro
>
>
> > From: leonardot en pegasusnet.com.ar
> > To: php-avanzado en pato2.fi.mdp.edu.ar
> > Date: Fri, 18 Jun 2010 23:16:13 -0300
> > Subject: Re: [Php-avanzado] Actualizar pagina desde otra
> >
> > Hola Leandro,
> >
> > tenés un problema en el orden de las llamadas.
> > Fijate que en show.php, mostrás los productos solo si if
> > (isset($_SESSION['id'])){
> > El $_SESSION['id'] se determina en login.php,
> > if (($pass==$usuario['pass'])&&($usuario['id_tip_user']==2)){
> > $_SESSION['id']=$usuario['id'];
> > etc
> >
> > pero login.php incluido después de categorias.php que incluye a
> > art_show.php, que a su vez incluye a show.php, que cuando se
> ejecuta, no
> > pasa por el isset($_SESSION['id'])
> >
> > Como es una variable de sesión, la segunda vez que vas a la página,
> sí
> > está seteada y por eso ves que al recargar sí se ven las cosas...
> >
> > Ahora bien, esto te pasa porque tenés un código endiabladamente
> > complejo!!!
> > La idea del concepto de layout, es que tengas muchas, repito, muchas
> > páginas, y que al tener todas el mismo layout, sea fácil cambiarle
> lo
> > que muestran adentro, porque en su cuerpo incluyen diferentes
> cosas...
> > tu aplicación siempre le muestra al usuario index.php en el url, con
> lo
> > que tu sitio es imposible de bookmarkear (perdón por el anglicismo)
> y
> > además te ganaste un montón de complejidad innecesaria, porque no
> agrega
> > funcionalidad.
> >
> > Dicen los que sabes que "depurar el código es mucho más difícil que
> > escribirlo, por eso, si escribimos el código más complejo de que
> somos
> > capaces, no seremos capaces de depurarlo si tiene un error".
> > Este principio fue elevado a "metodología de programación" y se
> llama
> > KISS.
> >
> > Solución: el código de login tiene que estar arriba del todo (lo que
> > además es lógico, porque si no la aplicación te permite hacer lo que
> > esté antes del login aunque no estés logueado)
> >
> > Seguimos!
> >
> >
> >
> >
> > El vie, 18-06-2010 a las 21:15 +0000, Leandro Schereik escribió:
> > > Hola Leo te agrego index.php y art_show.php la query esta bien
> genera
> > > lo correcto.
> > > El sabado no puedo ir pero en la semana si en que dias y horarios
> > > podria pasar?
> > >
> > >
> > > index.php
> > > ---------
> > > <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
> > > "http://www.w3.org/TR/html4/loose.dtd">
> > > <html>
> > > <head>
> > > <title>Inicio</title>
> > > <meta http-equiv="content-type" content="text/html;
> charset=UTF-8">
> > > <link rel="stylesheet" type="text/css" href="css/styles.css">
> > > </head>
> > >
> > > <body>
> > >
> > > <!-- Wrapper -->
> > > <div id="wrapper">
> > >
> > > <!-- Header -->
> > > <div id="header">
> > > <? include("header.php"); ?>
> > > </div>
> > > <!-- Header -->
> > >
> > > <!-- Content -->
> > > <div id="content">
> > > <img src="images/tail-top.gif">
> > >
> > > <!-- Categorias -->
> > > <div id="categorias">
> > >
> > > <? include("categorias.php"); ?>
> > > </div>
> > > <!-- Categorias -->
> > >
> > > <!-- Medio -->
> > > <div id="medio">
> > >
> > >
> > > </div>
> > > <!-- Medio -->
> > >
> > >
> > >
> > > <!-- Carrito -->
> > > <div id="carrito">
> > > <? include("login.php"); ?>
> > >
> > > </div>
> > > <!-- Carrito -->
> > >
> > >
> > > </div>
> > > <!-- Content -->
> > >
> > >
> > > </div>
> > > <!-- Wrapper -->
> > >
> > > <? // session_destroy(); ?>
> > > </body>
> > >
> > > art_show.php
> > > -------------
> > >
> > > <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
> > > "http://www.w3.org/TR/html4/loose.dtd">
> > > <html>
> > > <head>
> > > <title>Inicio</title>
> > > <meta http-equiv="content-type" content="text/html;
> charset=UTF-8">
> > > <link rel="stylesheet" type="text/css" href="css/styles.css">
> > > </head>
> > >
> > > <body>
> > > <!-- Wrapper -->
> > > <div id="wrapper">
> > >
> > > <!-- Header -->
> > > <div id="header">
> > > <? include("header.php"); ?>
> > > </div>
> > > <!-- Header -->
> > >
> > > <!-- Content -->
> > > <div id="content">
> > > <img src="images/tail-top.gif">
> > >
> > > <!-- Categorias -->
> > > <div id="categorias">
> > >
> > > <? include("categorias.php"); ?>
> > > </div>
> > > <!-- Categorias -->
> > >
> > > <!-- Medio -->
> > > <div id="medio">
> > > <? include("show.php"); ?>
> > > </div>
> > > <!-- Medio -->
> > >
> > >
> > >
> > > <!-- Carrito -->
> > > <div id="carrito">
> > > <? include("login.php"); ?>
> > > <? include("micarro.php");?>
> > >
> > > </div>
> > > <!-- Carrito -->
> > >
> > >
> > > </div>
> > > <!-- Content -->
> > >
> > >
> > > </div>
> > > <!-- Wrapper -->
> > >
> > > <? // session_destroy(); ?>
> > > </body>
> > > </html>
> > >
> > >
> > > > From: leonardot en pegasusnet.com.ar
> > > > To: php-avanzado en pato2.fi.mdp.edu.ar
> > > > Date: Fri, 18 Jun 2010 18:01:14 -0300
> > > > Subject: Re: [Php-avanzado] Actualizar pagina desde otra
> > > >
> > > > 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
> > > >
> > > >
> > > > _______________________________________________
> > > > Php-avanzado mailing list
> > > > Php-avanzado en pato2.fi.mdp.edu.ar
> > > > http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
> > >
> > >
> > >
> ______________________________________________________________________
> > > No importa si es pesado o liviano. Con Hotmail Skydrive tenés 25
> GB
> > > para guardar todo. Clic aquí
> > > _______________________________________________
> > > 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
> >
> >
> > _______________________________________________
> > Php-avanzado mailing list
> > Php-avanzado en pato2.fi.mdp.edu.ar
> > http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
>
>
> ______________________________________________________________________
> Tu vida no tiene límites, ahora Hotmail tampoco. 25 GB para organizar
> y compartir todo. Ver más
>
> ______________________________________________________________________
> Ahora Hotmail es un 70% más veloz. Acceder a tu casilla nunca fue tan
> rápido. Ver 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
http://blog.pegasusnet.com.ar
Firma pública: http://www.pegasusnet.com.ar/LeonardoTadei-public.key
Más información sobre la lista de distribución Php-avanzado