Foros del Web » Programando para Internet » PHP »

¿¿¿¿ Pasar variables ????

Estas en el tema de ¿¿¿¿ Pasar variables ???? en el foro de PHP en Foros del Web. Buenas amigos.... tengo un gran drama que no he podido resolver..., resumiendo: necesito rescatar informacion de una BD de un cliente determinado pasando variables (...<a ...
  #1 (permalink)  
Antiguo 22/07/2003, 01:35
 
Fecha de Ingreso: mayo-2003
Mensajes: 174
Antigüedad: 14 años, 6 meses
Puntos: 0
¿¿¿¿ Pasar variables ????

Buenas amigos.... tengo un gran drama que no he podido resolver..., resumiendo:

necesito rescatar informacion de una BD de un cliente determinado pasando variables (...<a href=\"mostrar_reg.php?id=$data[id]\" class=\"correo\">$data[id]</a>... )

aqui lo que hago es enviar a mostrar_reg.php la variable id del registro, ¿cierto?, pero necesito enviar mas de 1 variable, por ejemplo la variable 'corredor'.. ¿¿se puede enviar más de 1 variable??.

Mi problema es el siguiente, al ver la informacion el cliente aparece esto en la linea de Direccion del navegardor:

http://www.xxxxx.cl/_adminxxx/mostrar_reg.php?id=2

pero si el tipo cambia el nº del id desde ahi (.../mostrar_reg.php?id=3 x ejemplo) podrá ver la informacion de otro y puede modificar(esa es la idea de esa página).

Estoy muy enredado????, por favor necesito ayuda....

Muchas gracias por todo
  #2 (permalink)  
Antiguo 22/07/2003, 02:23
Avatar de DINASEN  
Fecha de Ingreso: marzo-2003
Mensajes: 997
Antigüedad: 14 años, 9 meses
Puntos: 1
si se puede pro supuesto mandar mas de una variable seria :ç

<a href=\"mostrar_reg.php?id=$data[id]&nombre=$data[nombre]&direccion=$data[direccion]\" class=\"correo\">$data[id]</a>

como habras visto lo unico que debes hacer es despues te terminar una variable pero un ampersand para unir otra mas (&), primer punto resuelto..

2 para que no pase esto podias hacer lo siguiente

Código PHP:
veri.inc.php 

<?

if ($_SERVER['HTTP_REFERER'] == ""){
header ("Location: error.php");

}
?>


error.php

<?
echo"Error inesperado";
?>

y en la primera linea de donde se visualizan los datos o se editan o borras pones

require("veri.inc.php");
esta es una solucion otra seria codificar los datos con envias de alguna manera que tu solo conozcas como me explico manoloWeb el otro dia muy bien y seria asi

Código PHP:
Codigo e idea de ManoloWeb:

Una cosa que yo hago es agregar un numero "verificador" en una variable adicional...

Por ejemplo:

ID=12

Para sacar el verificador hago algo como esto
...

(
ID X 8) + 3

(12 X 8) + 399

Y tomo el ultimo digito
es decir 9

$verif
=substr(($ID*8)+3,-1);

Entonces a la hora de construir el linkhago esto:

<
a href="index.php?accion=borrar&v=9&ID=12">

Asísi alguien le cambia el ID manualmenteno funciona el srciptya que antes de procesarlohago la comprobación de nuevo...

if (
substr(($ID*8)+3,-1)==$_GET["v"]){

Borro el registro

} else {

Muestro un error

}

A ver si les sirve 
otra posible solucion seria poner un frame a 100%

Un Saludo
  #3 (permalink)  
Antiguo 22/07/2003, 04:05
Avatar de Mickel  
Fecha de Ingreso: mayo-2002
Ubicación: Lima, Peru
Mensajes: 4.619
Antigüedad: 15 años, 6 meses
Puntos: 7
otro truco es hacer que el link genere un submit() de un formulario oculto, para que no se vean las variables en la barra de direcciones...
__________________
No tengo firma ahora... :(
  #4 (permalink)  
Antiguo 22/07/2003, 09:30
 
Fecha de Ingreso: mayo-2003
Mensajes: 174
Antigüedad: 14 años, 6 meses
Puntos: 0
Gracias por su ayuda... vere que sale ahora
  #5 (permalink)  
Antiguo 22/07/2003, 10:07
 
Fecha de Ingreso: marzo-2003
Mensajes: 277
Antigüedad: 14 años, 9 meses
Puntos: 0
para mi la mejor forma es ocupar sessiones y ponerle un sistema de nivel con mysql

por ejemplo lo mas probable es que tengas un sistema de autentificacion y ponerle un nivel de seguridad y ese nivel pasarlo por todas tus paginas usando sessiones y cuando preguntes los datos del cliente tambien preguntar por el nivel del usuario actual osea

un usuario normal se logea tiene nivel 1

y cuando hagas la consulta a la base de datos seria algo haci

$consulta = mysql_query("SELECT * FROM tu_tabla where nivel <= '$_SESSION[nivel]' or id='$_SESSION[ID_del_usuario_actual]'");

y todos los campos le puedes poner niveles para que dependiendo el usuario seria el nivel de seguridad que tendria

despues haces un array de los datos encontrados serai la mejor forma

ya que con esto ademas puedes hacer un sistema para controlar todo lo que hace el usuario

salu2
PD: espero haber entendido la pregunta jejeje
  #6 (permalink)  
Antiguo 22/07/2003, 10:21
Avatar de DINASEN  
Fecha de Ingreso: marzo-2003
Mensajes: 997
Antigüedad: 14 años, 9 meses
Puntos: 1
jejejeje kech ma echo gracias lo de espero haber entendido la pregunta...jejejeje

pero lo malo y lo que el pedia es que si tu pones en la barra de direccion index.php?accion=editar&v=9&ID=12"
eso borrara el registro ya que el nivel de lso user supongo que ser ael mismo ya que podra editar el perfil de otro

no?¿

Un Saludo
  #7 (permalink)  
Antiguo 22/07/2003, 10:35
 
Fecha de Ingreso: marzo-2003
Mensajes: 277
Antigüedad: 14 años, 9 meses
Puntos: 0
no es que tambien tendria que crear un campo de niveles osea un ejemplo de la extructura de la base de datos seria algo haci

id | cliente | nivel | nivel_cliente
1 | juan | 2 | 1


y cuando preguntes en la base de datos preguntas por la id del cliente actual o tambien si el nivel_cliente es mayor al nivel del campo

espero que se entienda jejeje

salu2

Última edición por kech; 22/07/2003 a las 10:38
  #8 (permalink)  
Antiguo 22/07/2003, 10:54
Avatar de DINASEN  
Fecha de Ingreso: marzo-2003
Mensajes: 997
Antigüedad: 14 años, 9 meses
Puntos: 1
pero pero pero jejejeje

eso seria por ejemplo pra aque el admin pueda borrar o editar cualquier registro el problema es que imagina aqui en el foro a ti te dan el permiso 10 que es el de user y a mi tambien pr qyue tambien soy user ok?¿

entonces si chequeas solo el nivel entonces yo tendre lso mismo privilegios sobre tu registro como con el mio y lo del lnivel de cliente no lo entiende tu tiene el nivel que sera el que defina el nivel para ese user en toda la web pero entonces para que nivel_cliente ?¿
cada uno tendra uno diferente...jejeje

joe como se nota que ayer me pase con el alcohol...jejejee



Un Saludo
  #9 (permalink)  
Antiguo 22/07/2003, 11:03
 
Fecha de Ingreso: mayo-2003
Mensajes: 174
Antigüedad: 14 años, 6 meses
Puntos: 0
La verdad, es que yo, que origine este mensaje, estoy tirado hace rato... no entendi nada de nivel y todo eso...

Gracias igual por su ayuda

  #10 (permalink)  
Antiguo 22/07/2003, 11:04
Avatar de DINASEN  
Fecha de Ingreso: marzo-2003
Mensajes: 997
Antigüedad: 14 años, 9 meses
Puntos: 1
Pero no te sirvio nada de lo que te comentamos alteriormente?¿

el ejemplo que yo te puse con el veri.inc.php sirve por que yo lo use hace poco

Un Saludo
  #11 (permalink)  
Antiguo 22/07/2003, 11:12
 
Fecha de Ingreso: mayo-2003
Mensajes: 174
Antigüedad: 14 años, 6 meses
Puntos: 0
Sii, eso me sirvio, es que lo otro no entendí nada, lo ultimo.

Gracias ;-P
  #12 (permalink)  
Antiguo 22/07/2003, 11:20
 
Fecha de Ingreso: marzo-2003
Mensajes: 277
Antigüedad: 14 años, 9 meses
Puntos: 0
jajaja tienes razon jajaja todo por meterme en la cabeza esa frace que dice

si el alchol no te deja estudiar, deja el estudio

jajajajajaja

salu2

PD: mi forma funcionaria si no pasaras datos por la url sino que hacerlo todo por sessiones
  #13 (permalink)  
Antiguo 22/07/2003, 11:23
Avatar de DINASEN  
Fecha de Ingreso: marzo-2003
Mensajes: 997
Antigüedad: 14 años, 9 meses
Puntos: 1
jejejeje mejor dejemos aqui este tema por que si no acabaremos

Un Saludo
  #14 (permalink)  
Antiguo 22/07/2003, 12:42
Avatar de Mickel  
Fecha de Ingreso: mayo-2002
Ubicación: Lima, Peru
Mensajes: 4.619
Antigüedad: 15 años, 6 meses
Puntos: 7
Retomando el tema para xmedia...

Si tu link actual es
http://www.xxxxx.cl/_adminxxx/mostrar_reg.php?id=2
entonces lo que harias seria esto

al final de todo el html create un form
<form action='mostrar_reg.php' method='post' name='frmlink'>
<input type='hidden' name='id' value=''>
</form>

crea una funcion en JS
<script>
function SendLink(vvar) {
frmlink.id.value=vvar;
frmlink.submit();
}
</script>

y tu link seria
<a href='javascript:SendLink(2);'>

entiendes la idea?
__________________
No tengo firma ahora... :(
  #15 (permalink)  
Antiguo 22/07/2003, 13:16
Avatar de DINASEN  
Fecha de Ingreso: marzo-2003
Mensajes: 997
Antigüedad: 14 años, 9 meses
Puntos: 1
Muy buena la idea mickel si señor

ahora lo pruebo

Un Saludo
  #16 (permalink)  
Antiguo 22/07/2003, 13:51
Avatar de Mickel  
Fecha de Ingreso: mayo-2002
Ubicación: Lima, Peru
Mensajes: 4.619
Antigüedad: 15 años, 6 meses
Puntos: 7
gracias. La ventaja es que es muy util cuando tienes que pasar varias variables via link...
__________________
No tengo firma ahora... :(
  #17 (permalink)  
Antiguo 22/07/2003, 15:41
 
Fecha de Ingreso: marzo-2003
Mensajes: 277
Antigüedad: 14 años, 9 meses
Puntos: 0
que hace ese javascript?

por que si haces un formulario para pasar variables es demaciado inseguro ya que cualquiera puede hacer un formulario con los datos que se envian
"quisas ese javascipt hace el sistema de seguridad no lose puedes poner para que sirve ese javacript"

gracias salu2
  #18 (permalink)  
Antiguo 22/07/2003, 18:18
 
Fecha de Ingreso: mayo-2003
Mensajes: 174
Antigüedad: 14 años, 6 meses
Puntos: 0
Por fin !!!!

Yeeahhh !!, eso si me resulto, la idea de Mickel de poner este form al final con ese script de JS, al final me esconde las variables, no aparecen en el cuadro de Direcciones entonces el usuario no puede cambiar las variables y entrar donde no correspnde...

Gracias Mickel
  #19 (permalink)  
Antiguo 22/07/2003, 18:41
Avatar de biblio  
Fecha de Ingreso: enero-2002
Ubicación: Urano
Mensajes: 577
Antigüedad: 15 años, 11 meses
Puntos: 0
Para alguien con ligera experiencia en html, eso no es seguro, porque bien puedo crearme un html con los datos que quiero y enlazarlo a tu página, y vuelta tendré los datos.

Lo que dice kech, es bastante cierto, es muy sencillo lo que sugiere mickel.

Piensen, piensen. Mientras tanto me voy a tomar un café.


Saludos
  #20 (permalink)  
Antiguo 22/07/2003, 19:13
 
Fecha de Ingreso: mayo-2003
Mensajes: 174
Antigüedad: 14 años, 6 meses
Puntos: 0
Ahora quede más intranquilo.... la verdad yo estoy recien en esto... de seguridad no se mucho, ¿me puedes explicar como pueden hacer eso que dices Biblio?, y ¿como se puede solucionar entonces????

  #21 (permalink)  
Antiguo 23/07/2003, 00:39
 
Fecha de Ingreso: marzo-2003
Mensajes: 277
Antigüedad: 14 años, 9 meses
Puntos: 0
haber si me puedo explicar bien esta vez jejej

los campos hidden de los formularios tu atraves del explorador no los vez pero atravez del codigo fuente de la pagina se puede saber todo los datos que se envian atraves del formulario

tu cuando lo proceses hay varibles super globales que permiten filtrar el dato ingresado preguntar que el dato que llego a la pagina es atraves de url ($_GET) o atraves de un formulario ($_POST)

pero cuando haces un formulario en tu pagina este manda los datos a donde hayas puesto en la opcion "action"

yo facilmente puedo crear un formulario en mi pagina y apuntarlo a tu pagina que procesa la informacion que yo le mande


se entiende??
en los faq hay un archivo atachado con varios datos sobre la seguridad en php

salu2
  #22 (permalink)  
Antiguo 01/08/2003, 07:08
Avatar de Mickel  
Fecha de Ingreso: mayo-2002
Ubicación: Lima, Peru
Mensajes: 4.619
Antigüedad: 15 años, 6 meses
Puntos: 7
la solucion es muy sencilla, xmedia. En PHP puedes chequear de donde vienen los datos usando $HTTP_REFERER. Entonces, en tu script, compruebas el valor de HTTP_REFERER y listo!
__________________
No tengo firma ahora... :(
  #23 (permalink)  
Antiguo 01/08/2003, 09:13
 
Fecha de Ingreso: marzo-2003
Mensajes: 277
Antigüedad: 14 años, 9 meses
Puntos: 0
no funciona cuando el usuario tiene un firewall o cortafuego

ya que algunos de estos eliminan esa opcion sobretodo los conocidos como el norton internet security

salu2
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 23:36.