Foros del Web » Programando para Internet » PHP »

Enviar varialbes ocultas

Estas en el tema de Enviar varialbes ocultas en el foro de PHP en Foros del Web. Buenas, Actualmente uso esto para enviar variables de un archivo a otro: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original header ( "Location: ./archivo.php?id= $id " ) ...
  #1 (permalink)  
Antiguo 10/01/2013, 09:18
 
Fecha de Ingreso: junio-2011
Mensajes: 342
Antigüedad: 12 años, 10 meses
Puntos: 5
Exclamación Enviar varialbes ocultas

Buenas,

Actualmente uso esto para enviar variables de un archivo a otro:

Código PHP:
Ver original
  1. header("Location: ./archivo.php?id=$id");

El problema aquí es que el usuario que acceda va a ver la variable en su barra de navegación. Como puedo hacer para que solo vea archivo.php pero la varaible se envie?
  #2 (permalink)  
Antiguo 10/01/2013, 09:28
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 12 años, 11 meses
Puntos: 76
Respuesta: Enviar varialbes ocultas

puedes hacerlo con sesiones o literalmente codificar o encriptar el valor del id

Código PHP:
Ver original
  1. $idsend = base64_encode($id);
  2. header("Location: ./archivo.php?id=$idsend");
  3.  
  4. // y cuando lo recibas en el otro lado lo decodificas
  #3 (permalink)  
Antiguo 10/01/2013, 09:31
Avatar de heryfer  
Fecha de Ingreso: febrero-2002
Ubicación: Valencia, España
Mensajes: 164
Antigüedad: 22 años, 2 meses
Puntos: 0
Respuesta: Enviar varialbes ocultas

Hola aqui te paso 2 funciones que te puede ayudar

function get_input($variable, $default = "", $sql_filter = true, $check_empty = true){
global $CONFIG;

if ( (isset($variable) && isset($_REQUEST[$variable]) && ( (is_array($_REQUEST[$variable]) && count($_REQUEST[$variable]) > 0 ) || trim($_REQUEST[$variable]) != "" || !$check_empty) ) || isset($CONFIG->input[$variable])) {

if (isset($CONFIG->input[$variable])) {

$var = $CONFIG->input[$variable];

}else{

if (is_array($_REQUEST[$variable])) {
$var = $_REQUEST[$variable];
} else {
$var = trim($_REQUEST[$variable]);
}

}



return $var;
}

if (is_array($_REQUEST[$variable]) && count($_REQUEST[$variable]) == 0){
$default = null;
}


return $default;

}


function set_input($variable, $value, $check_empty = false) {

global $CONFIG;

if (!$check_empty || ($value && trim($value) != "") ){

if (!isset($CONFIG->input))
$CONFIG->input = array();

if (is_array($value)){

foreach ($value as $key => $val)
$value[$key] = trim($val);

$CONFIG->input[trim($variable)] = $value;

}else{

$CONFIG->input[trim($variable)] = trim($value);
}

}

}

usos
set_input('id', '8');

$id = get_input('id');

ten en cuenta que la variable $CONFIG es global

Este método se utiliza mucho cuando el sitio web tiene url amigables entonces los parametros los pasas de esta manera.

Saludos
  #4 (permalink)  
Antiguo 10/01/2013, 09:31
 
Fecha de Ingreso: junio-2011
Mensajes: 342
Antigüedad: 12 años, 10 meses
Puntos: 5
Exclamación Respuesta: Enviar varialbes ocultas

Cita:
Iniciado por informacionsys Ver Mensaje
puedes hacerlo con sesiones o literalmente codificar o encriptar el valor del id

Código PHP:
Ver original
  1. $idsend = base64_encode($id);
  2. header("Location: ./archivo.php?id=$idsend");
  3.  
  4. // y cuando lo recibas en el otro lado lo decodificas
Si, pero de esta manera el usuario final ve en la barra de URL esto:

Cita:
archivo.php?id=
Cómo puedo hacer para que solo vea esto:

Cita:
archivo.php
PD: @heryfer para hacer lo que menciono aquí arriba que función utilizo, me puedes poner la que tengo que con un Highlight de código en el foro es que me cuesta diferenciar lo que tengo que usar.
  #5 (permalink)  
Antiguo 10/01/2013, 09:49
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 12 años, 11 meses
Puntos: 76
Respuesta: Enviar varialbes ocultas

podrias usar urls amigables o bien sesiones.
  #6 (permalink)  
Antiguo 10/01/2013, 09:53
 
Fecha de Ingreso: junio-2011
Mensajes: 342
Antigüedad: 12 años, 10 meses
Puntos: 5
Exclamación Respuesta: Enviar varialbes ocultas

Cita:
Iniciado por informacionsys Ver Mensaje
podrias usar urls amigables o bien sesiones.
Me puedes poner un ejemplo de la sesiones?
  #7 (permalink)  
Antiguo 10/01/2013, 09:54
 
Fecha de Ingreso: noviembre-2012
Ubicación: Caracas - Venezuela
Mensajes: 116
Antigüedad: 11 años, 5 meses
Puntos: 1
Respuesta: Enviar varialbes ocultas

Como dijo bien el amigo "informacionsys" puedes usar sesiones O como lo dice tu post puedes usar un hidden field:

envias por POST la variable (no saldrá en la barra de navegaciones)

y utilizas un campo oculto por ejemplo:

Código PHP:

<input type="hidden" name="variable" id="variable" value="<?php echo $_POST['id'?>" />
entonces la variable oculta recibe el ID pero no se ve a nivel de HTML pero está la variable almacenada a nivel de PHP, con eso debe bastar
  #8 (permalink)  
Antiguo 10/01/2013, 09:57
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 12 años, 11 meses
Puntos: 76
Respuesta: Enviar varialbes ocultas

mira

Código PHP:
Ver original
  1.  
  2. // cada vez que inicie eliminamos la sesion
  3. unset($_SESSION["idsend"]);
  4.  
  5.  
  6. //asignamos a la sesion en valor nuevo
  7. $_SESSION["idsend"] = $id;
  8.  
  9. header("Location: ./archivo.php");
  10.  
  11.  
  12. // en el archivo.php siempre cuando se usa sesiones debe ir session_start()
  13. //simplemente llamas a la sesion
  14. echo $_SESSION["idsend"];

Prueba y me cuentas si te sirve asi
  #9 (permalink)  
Antiguo 10/01/2013, 09:58
Avatar de heryfer  
Fecha de Ingreso: febrero-2002
Ubicación: Valencia, España
Mensajes: 164
Antigüedad: 22 años, 2 meses
Puntos: 0
Respuesta: Enviar varialbes ocultas

Código PHP:
function get_input($variable$default ""$sql_filter true$check_empty true){
global 
$CONFIG;

if ( (isset(
$variable) && isset($_REQUEST[$variable]) && ( (is_array($_REQUEST[$variable]) && count($_REQUEST[$variable]) > ) || trim($_REQUEST[$variable]) != "" || !$check_empty) ) || isset($CONFIG->input[$variable])) {

if (isset(
$CONFIG->input[$variable])) {

$var $CONFIG->input[$variable];    

}else{

if (
is_array($_REQUEST[$variable])) {
$var $_REQUEST[$variable];
} else {
$var trim($_REQUEST[$variable]);
}

}



return 
$var;    
}

if (
is_array($_REQUEST[$variable]) && count($_REQUEST[$variable]) == 0){
$default null;
}


return 
$default;

}


function 
set_input($variable$value$check_empty false) {

global 
$CONFIG;

if (!
$check_empty || ($value && trim($value) != "") ){

if (!isset(
$CONFIG->input))
$CONFIG->input = array();

if (
is_array($value)){

foreach (
$value as $key => $val)
$value[$key] = trim($val);

$CONFIG->input[trim($variable)] = $value;

}else{

$CONFIG->input[trim($variable)] = trim($value);
}

}    



pagina que envias
Código PHP:
set_input('id''8'); 
pagina que recibes los datos
Código PHP:
$id get_input('id'); 
la variable config la tiene que meter en un sesion
  #10 (permalink)  
Antiguo 10/01/2013, 10:02
 
Fecha de Ingreso: junio-2011
Mensajes: 342
Antigüedad: 12 años, 10 meses
Puntos: 5
Exclamación Respuesta: Enviar varialbes ocultas

Cita:
Iniciado por heryfer Ver Mensaje
Código PHP:
function get_input($variable$default ""$sql_filter true$check_empty true){
global 
$CONFIG;

if ( (isset(
$variable) && isset($_REQUEST[$variable]) && ( (is_array($_REQUEST[$variable]) && count($_REQUEST[$variable]) > ) || trim($_REQUEST[$variable]) != "" || !$check_empty) ) || isset($CONFIG->input[$variable])) {

if (isset(
$CONFIG->input[$variable])) {

$var $CONFIG->input[$variable];    

}else{

if (
is_array($_REQUEST[$variable])) {
$var $_REQUEST[$variable];
} else {
$var trim($_REQUEST[$variable]);
}

}



return 
$var;    
}

if (
is_array($_REQUEST[$variable]) && count($_REQUEST[$variable]) == 0){
$default null;
}


return 
$default;

}


function 
set_input($variable$value$check_empty false) {

global 
$CONFIG;

if (!
$check_empty || ($value && trim($value) != "") ){

if (!isset(
$CONFIG->input))
$CONFIG->input = array();

if (
is_array($value)){

foreach (
$value as $key => $val)
$value[$key] = trim($val);

$CONFIG->input[trim($variable)] = $value;

}else{

$CONFIG->input[trim($variable)] = trim($value);
}

}    



pagina que envias
Código PHP:
set_input('id''8'); 
pagina que recibes los datos
Código PHP:
$id get_input('id'); 
la variable config la tiene que meter en un sesion
Y esa primera parte del código en que archivo la meto?
  #11 (permalink)  
Antiguo 10/01/2013, 10:04
Avatar de heryfer  
Fecha de Ingreso: febrero-2002
Ubicación: Valencia, España
Mensajes: 164
Antigüedad: 22 años, 2 meses
Puntos: 0
Respuesta: Enviar varialbes ocultas

la funciones las puede poner en cualquier php que utilices como librería
  #12 (permalink)  
Antiguo 10/01/2013, 10:13
 
Fecha de Ingreso: noviembre-2012
Ubicación: Caracas - Venezuela
Mensajes: 116
Antigüedad: 11 años, 5 meses
Puntos: 1
Respuesta: Enviar varialbes ocultas

has como dijo el amigo, usa sesiones o un campo oculto es más fácil que usar esas funciones
  #13 (permalink)  
Antiguo 10/01/2013, 10:18
 
Fecha de Ingreso: junio-2011
Mensajes: 342
Antigüedad: 12 años, 10 meses
Puntos: 5
Exclamación Respuesta: Enviar varialbes ocultas

Cita:
Iniciado por heryfer Ver Mensaje
la funciones las puede poner en cualquier php que utilices como librería
He puesto las funciones tal cual las pusiste en un archivo denominado libreria.php

He modificado el edit.php quedadon así:

Código PHP:
Ver original
  1. require_once('./libreria.php');
  2.  
  3. $id = set_input('id', '8');  
  4.  
  5. header("Location: ./archivo.php?$id");

y el archivo.php así:

Código PHP:
Ver original
  1. require_once('./libreria.php');
  2. $id = get_input('id');
  3. echo $id;

Pero así no pasa la variable.
  #14 (permalink)  
Antiguo 10/01/2013, 10:19
 
Fecha de Ingreso: junio-2011
Mensajes: 342
Antigüedad: 12 años, 10 meses
Puntos: 5
Exclamación Respuesta: Enviar varialbes ocultas

Cita:
Iniciado por angelsds Ver Mensaje
has como dijo el amigo, usa sesiones o un campo oculto es más fácil que usar esas funciones
Me puedes poner un ejemplo de como lo debo usar?
  #15 (permalink)  
Antiguo 10/01/2013, 10:25
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 12 años, 11 meses
Puntos: 76
Respuesta: Enviar varialbes ocultas

Código PHP:
Ver original
  1.  
  2. // cada vez que inicie eliminamos la sesion
  3. unset($_SESSION["idsend"]);
  4.  
  5.  
  6. //asignamos a la sesion en valor nuevo
  7. $_SESSION["idsend"] = $id;
  8.  
  9. header("Location: ./archivo.php");
  10.  
  11.  
  12. // en el archivo.php siempre cuando se usa sesiones debe ir session_start()
  13. //simplemente llamas a la sesion
  14. echo $_SESSION["idsend"];
  #16 (permalink)  
Antiguo 10/01/2013, 10:34
Avatar de heryfer  
Fecha de Ingreso: febrero-2002
Ubicación: Valencia, España
Mensajes: 164
Antigüedad: 22 años, 2 meses
Puntos: 0
Respuesta: Enviar varialbes ocultas

La variable $CONFIG la tienes que pasar en una session.

Si solo necesitas pasar un solo parámetro no compliques con las funciones has como dice informacionsys.

La funciones te darán mayor abstracción si tienes que utilizar este metodo muchas veces en la aplicación
  #17 (permalink)  
Antiguo 10/01/2013, 10:37
 
Fecha de Ingreso: junio-2011
Mensajes: 342
Antigüedad: 12 años, 10 meses
Puntos: 5
Exclamación Respuesta: Enviar varialbes ocultas

Cita:
Iniciado por informacionsys Ver Mensaje
Código PHP:
Ver original
  1.  
  2. // cada vez que inicie eliminamos la sesion
  3. unset($_SESSION["idsend"]);
  4.  
  5.  
  6. //asignamos a la sesion en valor nuevo
  7. $_SESSION["idsend"] = $id;
  8.  
  9. header("Location: ./archivo.php");
  10.  
  11.  
  12. // en el archivo.php siempre cuando se usa sesiones debe ir session_start()
  13. //simplemente llamas a la sesion
  14. echo $_SESSION["idsend"];
Primero perdona por no haber respondido a tu primer mensaje. Funciona perfectamente!

Lo segundo, puedo usar esto para un href? Así?

Código PHP:
Ver original
  1.  
  2. unset($_SESSION["id"]);
  3.  
  4. $_SESSION["id"] = "1";
  5. echo '<a href="./edit.php?">Edit</a>';

Es importante que esto vaya colocado justo encima de dónde lo utilice, o su posición puede variar?
  #18 (permalink)  
Antiguo 10/01/2013, 10:41
 
Fecha de Ingreso: noviembre-2012
Ubicación: Caracas - Venezuela
Mensajes: 116
Antigüedad: 11 años, 5 meses
Puntos: 1
Respuesta: Enviar varialbes ocultas

Cita:
Iniciado por carlosuc99 Ver Mensaje
Me puedes poner un ejemplo de como lo debo usar?
te lo puse casi de primero en el post, si vas a preguntar o pedir ayuda en un foro debes estar dispuesto a leer TODOS los post de las personas que te quieren ayudar y ser específico con la ayuda que necesitas.

en el código que pusiste de primero estás enviando por GET, ahora envíalo igual con POST

crea una variable oculta o hidden field con php
Código PHP:
<input type="hidden" name="variable" id="variable" value="<?php echo $_POST['id'?>" />
ese hiden field va a capurar la variable que tu le envías pero estará oculta a nivel de html ya que ese hidden field es a nivel de PHP

Etiquetas: ocultas, variables, usuarios
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 02:36.