Foros del Web » Programando para Internet » PHP »

coger variable en cada pagina de la web

Estas en el tema de coger variable en cada pagina de la web en el foro de PHP en Foros del Web. Hola, tengo un problema que seguro podeis explicarme: Como puedo hacer para que al enviar una variable desde un formulario, pueda acceder o mostrar en ...
  #1 (permalink)  
Antiguo 21/11/2009, 17:27
 
Fecha de Ingreso: octubre-2007
Mensajes: 724
Antigüedad: 16 años, 6 meses
Puntos: 4
coger variable en cada pagina de la web

Hola, tengo un problema que seguro podeis explicarme:

Como puedo hacer para que al enviar una variable desde un formulario, pueda acceder o mostrar en las paginas ( cualquier pagina de mi web ) esa variable desde cualquier pagina.

Se hace con variables de session ???
  #2 (permalink)  
Antiguo 21/11/2009, 17:30
Avatar de Sommy  
Fecha de Ingreso: septiembre-2008
Mensajes: 228
Antigüedad: 15 años, 7 meses
Puntos: 6
Respuesta: coger variable en cada pagina de la web

Si el metodo es get, $_GET['nombre_de_input'], si el action es post, $_POST['nombre_de_input']

Si queres mantenerlo en toda la web podes usar una session... $_SESSION['variable'] = $_POST['xxxxx'];

Tambien podes usar cookies...

Suerte!
__________________
Si aún lo llevas, dejalo...
Programador PHP argentina
  #3 (permalink)  
Antiguo 21/11/2009, 17:35
 
Fecha de Ingreso: octubre-2007
Mensajes: 724
Antigüedad: 16 años, 6 meses
Puntos: 4
Respuesta: coger variable en cada pagina de la web

pgracias por la respuesta....

Lo tengo hecho em post, pero el problema es que la pagina que me dirijo después del formulario, si puedo visualizar la variable declarando la variable antes del Head y imprimiendo la variable con:

<?php print $nombre; ?>

pero cuando me dirijo a otra pagina en la cual tambien declarando la variable antes del Head y imprimiendo con <?php print $nombre; ?> pero ya no me reconoce la variable y no imprime nada.

Es decir, form.php me dirijo a la pagina 1 y despues en un enlace de la pagina 1 me dirijo a la pagina 2 pero en la pagina 2 no me reconoce la variable y no la imprime
  #4 (permalink)  
Antiguo 21/11/2009, 17:38
Avatar de Sommy  
Fecha de Ingreso: septiembre-2008
Mensajes: 228
Antigüedad: 15 años, 7 meses
Puntos: 6
Respuesta: coger variable en cada pagina de la web

Tenes que usar una session como te puse en el mensaje anterior... Es la unica forma. Y otra cosa es que tenes que startear las sessiones para poder usarlas, salvo que tu server tenga el setting en auto_start.

Por ultimo no uses print, es desaconsejable ;)
__________________
Si aún lo llevas, dejalo...
Programador PHP argentina
  #5 (permalink)  
Antiguo 21/11/2009, 17:43
 
Fecha de Ingreso: octubre-2007
Mensajes: 724
Antigüedad: 16 años, 6 meses
Puntos: 4
Respuesta: coger variable en cada pagina de la web

seria algo asi ??

<?php
session_start();
$_SESSION['mio'] = $_POST['nombre'];
echo "mi nombre es". print $_POST['nombre'];} ?>
  #6 (permalink)  
Antiguo 21/11/2009, 17:56
 
Fecha de Ingreso: octubre-2007
Mensajes: 724
Antigüedad: 16 años, 6 meses
Puntos: 4
Respuesta: coger variable en cada pagina de la web

Lo he provado asi:
<?php
session_start();
$_SESSION['mio'] = $_POST['nombre'];
echo "mi nombre es". print $_POST['nombre']; ?>

pero me imprime "Pepemi nombre es 1" no imprime el nombre que el usuario pone en el campo del formulario. porque ????

Última edición por jonysi_d; 21/11/2009 a las 18:10
  #7 (permalink)  
Antiguo 21/11/2009, 17:59
Avatar de dannce4life  
Fecha de Ingreso: junio-2008
Ubicación: localhost
Mensajes: 137
Antigüedad: 15 años, 10 meses
Puntos: 6
Respuesta: coger variable en cada pagina de la web

em, enviaste las variables?

Código php:
Ver original
  1. <?
  2. if(!$_POST) exit('No se ha enviado las variables via POST');
  3. else
  4. {
  5.     $_SESSION['nombre'] = $_POST['nombre'];
  6.     print $_POST['nombre'].' Se ha guardado en la sesion NOMBRE';
  7. }
  8. ?>
__________________
Gracias
  #8 (permalink)  
Antiguo 21/11/2009, 18:32
 
Fecha de Ingreso: octubre-2007
Mensajes: 724
Antigüedad: 16 años, 6 meses
Puntos: 4
Respuesta: coger variable en cada pagina de la web

declaro la variable justo antes del head:

<?php $nombre = $_POST['nombre'];?>

y en el <body> pongo lo que me has aconsejado:

<?
session_start();
if(!$_POST) exit('No se ha enviado las variables via POST');
else
{
$_SESSION['nombre'] = $_POST['nombre'];
print $_POST['nombre'].' Se ha guardado en la sesion NOMBRE';
}
?>

pero no imprime nada
  #9 (permalink)  
Antiguo 21/11/2009, 18:37
 
Fecha de Ingreso: octubre-2007
Mensajes: 724
Antigüedad: 16 años, 6 meses
Puntos: 4
Respuesta: coger variable en cada pagina de la web

creo que ya esta solucionado, era el
<?php


voy a hacer mas pruebas
  #10 (permalink)  
Antiguo 21/11/2009, 18:45
 
Fecha de Ingreso: octubre-2007
Mensajes: 724
Antigüedad: 16 años, 6 meses
Puntos: 4
Respuesta: coger variable en cada pagina de la web

he hecho pruebas y una vez enviado el form si me recoge la variable en la "pagina1", pero si despues en la "pagina1" hago un enlace para ir a la "pagina2" entonces alli no me reconoce la variable y me sale el echo "No se ha enviado las variables via POST"

porque ???
  #11 (permalink)  
Antiguo 21/11/2009, 18:51
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 8 meses
Puntos: 32
Respuesta: coger variable en cada pagina de la web

Osea, haces un enlace con la etiqueta <a en la pagina 1, das clic en el enlace y este te manda a la pagina 2 con algunas variables y como las capturas con $_POST ??, si lo estas haciendo asi, esta mal hecho debe capturarlas con $_GET
__________________
Como presentar nuestros datos por medio de tablas . clase Aco_DataGrid Version 1.4
  #12 (permalink)  
Antiguo 21/11/2009, 19:16
 
Fecha de Ingreso: octubre-2007
Mensajes: 724
Antigüedad: 16 años, 6 meses
Puntos: 4
Respuesta: coger variable en cada pagina de la web

si, asi lo estoy haciendo, pero si cambio a:
declaro la variable en la "pagina2":

<?php $nombre = $_GET['nombre'];?>

y creo la session y imprimo asi:

<?php
session_start();
if(!$_GET) exit('No se ha enviado las variables via POST');
else
{
$_SESSION['mio'] = $nombre;
print ' Hola '. $nombre;
}
?>

entonces en la "pagina2" me sale el echo "No se ha enviado las variables via POST"
  #13 (permalink)  
Antiguo 21/11/2009, 19:27
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 8 meses
Puntos: 32
Respuesta: coger variable en cada pagina de la web

Y como las estas mandando ?, pon mas codigo porfas, tambien intenta imprimir $nombre antes de la condicion, a ver si contiene algo
__________________
Como presentar nuestros datos por medio de tablas . clase Aco_DataGrid Version 1.4
  #14 (permalink)  
Antiguo 21/11/2009, 19:32
 
Fecha de Ingreso: octubre-2007
Mensajes: 724
Antigüedad: 16 años, 6 meses
Puntos: 4
Respuesta: coger variable en cada pagina de la web

el problema es que no se como enviarlas de la "pagina1" a la "pagina2"

me sale lo siguiente:

"Hola No se ha enviado las variables via POST"
  #15 (permalink)  
Antiguo 21/11/2009, 19:38
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 8 meses
Puntos: 32
Respuesta: coger variable en cada pagina de la web

Digamos que esta es la pagina 1

pagina1.php

<a href="pagina2.php?variable1=valor1">Dame clic para enviarte a la pagina 2</a>

Esta es la pagina 2


pagina2.php

echo $_GET['variable1'];
__________________
Como presentar nuestros datos por medio de tablas . clase Aco_DataGrid Version 1.4
  #16 (permalink)  
Antiguo 21/11/2009, 19:47
Avatar de Sommy  
Fecha de Ingreso: septiembre-2008
Mensajes: 228
Antigüedad: 15 años, 7 meses
Puntos: 6
Respuesta: coger variable en cada pagina de la web

Claro, asi es... Pero eso ya no seria un form...
__________________
Si aún lo llevas, dejalo...
Programador PHP argentina
  #17 (permalink)  
Antiguo 21/11/2009, 19:50
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 8 meses
Puntos: 32
Respuesta: coger variable en cada pagina de la web

Cita:
Iniciado por Sommy Ver Mensaje
Claro, asi es... Pero eso ya no seria un form...
Al ver que jonysi_d en su codigo pone $_GET deduzco que esta usando ese metodo y no el post
__________________
Como presentar nuestros datos por medio de tablas . clase Aco_DataGrid Version 1.4
  #18 (permalink)  
Antiguo 21/11/2009, 19:59
Avatar de Sommy  
Fecha de Ingreso: septiembre-2008
Mensajes: 228
Antigüedad: 15 años, 7 meses
Puntos: 6
Respuesta: coger variable en cada pagina de la web

Si, pero por medio de links (URL) no poder formularios... Eso entiendo... Calculo que a esta altura debe haberlo solucionado...
__________________
Si aún lo llevas, dejalo...
Programador PHP argentina
  #19 (permalink)  
Antiguo 21/11/2009, 20:54
Avatar de dannce4life  
Fecha de Ingreso: junio-2008
Ubicación: localhost
Mensajes: 137
Antigüedad: 15 años, 10 meses
Puntos: 6
Respuesta: coger variable en cada pagina de la web

jonysi_d:

Voy a hacer un poco de docencia con vos para que te quede sabido.


Las variables $_SESSION, se pueden leer desde cualquier parte del sitio. Y SIEMPRE debe definirse la función session_start() antes de cualquier etiqueta HTML.

Con un ejemplo tal vez lo entiendas mejor:

Mi página principal:

Código:
<? session_start() ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Mi página Principal</title>

</head>

<body>
<? if(!$_POST): ?>
<form action="" method="post">
	<p>Introducí tu nombre</p>
	<input name="nombre" type="text" /><br />
	<input name="boton" type="submit" value="Enviar" />
</form>
<? else: ?>
	<? $_SESSION['nombre'] = $_POST['nombre']; ?>
	<p>Hola <?= $_SESSION['nombre'] ?>, Bienvenido al sitio</p>
<? endif; ?>
</body>
</html>
ahora mi página dos:
Código:
<? session_start() ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Mi página Principal</title>

</head>

<body>
<p>Hola <?= $_SESSION['nombre'] ?>, esta es la página número dos.</p>
</body>
</html>
espero estos ejemplos te sirvan para interpretar un poco mejor el lenguaje.
__________________
Gracias
  #20 (permalink)  
Antiguo 22/11/2009, 13:49
 
Fecha de Ingreso: octubre-2007
Mensajes: 724
Antigüedad: 16 años, 6 meses
Puntos: 4
Respuesta: coger variable en cada pagina de la web

mas o menos lo tengo solucionado. muchas gracias, ahora tengo el siguiente problemilla. Quiero que si hay usuario registrado, es decir, hay "$_SESSION['MM_Username']" se muestre un div, pero cuando no haya session no se muestre, he provado asi, pero no me sale bien:

<?php
$_SESSION['MM_Username'];
echo $_SESSION['MM_Username'];
if {!$_SESSION['MM_Username'];
echo "<a href="login.php"> Login usuarioa </a>;
}


?>
  #21 (permalink)  
Antiguo 22/11/2009, 14:36
Avatar de dannce4life  
Fecha de Ingreso: junio-2008
Ubicación: localhost
Mensajes: 137
Antigüedad: 15 años, 10 meses
Puntos: 6
Respuesta: coger variable en cada pagina de la web

Cita:
Iniciado por jonysi_d Ver Mensaje
mas o menos lo tengo solucionado. muchas gracias, ahora tengo el siguiente problemilla. Quiero que si hay usuario registrado, es decir, hay "$_SESSION['MM_Username']" se muestre un div, pero cuando no haya session no se muestre, he provado asi, pero no me sale bien:

<?php
$_SESSION['MM_Username'];
echo $_SESSION['MM_Username'];
if {!$_SESSION['MM_Username'];
echo "<a href="login.php"> Login usuarioa </a>;
}


?>
Mucho cuidado, el manejo de usuarios debe hacerse de manera correcta para que no haya errores y tengas problemas de seguridad.

mi consejo es el siguiente:

cuando un usuario se loguea, o ingresa al sitio definí una variable para comprobar esto

Login.php
Código php:
Ver original
  1. // aca guardas las variables desde el post. ya lo hice anteriormente, asi que voy al grano
  2. $_SESSION['acceso'] = true;
  3. $_SESSION['usuario'] = 'usuario_tal';

entonces en todas las demás páginas colocas esto para ver si accedieron
Código php:
Ver original
  1. if(!$_SESSION['acceso']) exit(header('location: login.php'));
  2.  
  3. print 'Hola '.$_SESSION['usuario'];
__________________
Gracias
  #22 (permalink)  
Antiguo 22/11/2009, 15:14
 
Fecha de Ingreso: octubre-2007
Mensajes: 724
Antigüedad: 16 años, 6 meses
Puntos: 4
Respuesta: coger variable en cada pagina de la web

Lo he provado y si funciona, pero el problema es que el:
session_start();
if(!$_SESSION['acceso']) exit(header('location: login.php'));

print 'Hola '.$_SESSION['usuario'];

lo coloco en un templates que lo utilizo para usuarios logeados, pero cuando hago click en cualquier enlace de la pagina destino del form, pierdo la session y no me imprime el " hola: pepito de los palotes", como puedo guardar la variable del post con el nombre del usuario y no perderla y poder mostrarla en cada pagina de mi web ???
cuando estoy en la pagina de destino del form y hago click en cualquier otro enlace de la pagina para dirigirme a otra, entonces me sale el siguiente error:

[22-Nov-2009 22:08:18] PHP Warning: session_start() [<a href='function.session-start'>function.session-start</a>]: Cannot send session cache limiter - headers already sent (output started at C:\wamp\www\miweb\index.php:42) in C:\wamp\www\miweb\index.php on line 150

es decir que en todas las paginas se muestre el "Hola. Pepito de los palotes" pero si no hay logeo, que no se muestre nada, no se si me explico bien...

Gràcias
  #23 (permalink)  
Antiguo 22/11/2009, 15:21
Avatar de dannce4life  
Fecha de Ingreso: junio-2008
Ubicación: localhost
Mensajes: 137
Antigüedad: 15 años, 10 meses
Puntos: 6
Respuesta: coger variable en cada pagina de la web

Tus conocimientos son extremadamente básicos.

Primero y principal tendrías que entender como es que funciona el envío de variables a través de POST y GET.

Después de entender eso, Tal vez puedas entender como funcionan las sesiones.
Te explicas bien. Pero no tenés los conceptos fijados.

Nosotros podemos ayudarte en casos específicos, pero no explicarte todo.

Te dejo unos manuales

http://www.desarrolloweb.com/articulos/235.php
http://www.programacionweb.net/artic...ticulo/?num=35

Ah, me olvidaba. Google, no muerde :)
__________________
Gracias
  #24 (permalink)  
Antiguo 22/11/2009, 15:45
 
Fecha de Ingreso: octubre-2007
Mensajes: 724
Antigüedad: 16 años, 6 meses
Puntos: 4
Respuesta: coger variable en cada pagina de la web

muchas gracias... debo aprender mas

los POST los controlo, pero las sessiones es la primera vez que las utilizo

gracias por los enlaces y tu ayuda
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:08.