Foros del Web » Programando para Internet » PHP »

Bloquear cambio de id por url

Estas en el tema de Bloquear cambio de id por url en el foro de PHP en Foros del Web. Buenas, estoy desarrollando un pequeño proyecto en el cual tengo un perfil de usuario, el cual puede actualizarse, al darle actualizar se cargan los datos ...
  #1 (permalink)  
Antiguo 24/12/2012, 02:13
 
Fecha de Ingreso: julio-2012
Ubicación: Santiago
Mensajes: 45
Antigüedad: 11 años, 8 meses
Puntos: 0
Pregunta Bloquear cambio de id por url

Buenas, estoy desarrollando un pequeño proyecto en el cual tengo un perfil de usuario, el cual puede actualizarse, al darle actualizar se cargan los datos del usuario mediante www...../actualizar.php?id=3, el problema es que si el usuario cambia por la url el 3 por un 4, entra al registro del otro usuario.

No se que tendría que colocar para que solamente se pudiera ingresar a esa id y si el usuario la cambia lo redirija nuevamente a su id. Coloco un estracto del codigo:

Código:
<?php
			/** conexion ***************************/
			include('acceso_db_actualizar.php'); 
                        // recogemos el ID
                        // del registro a actualizar
                        if(isset($_GET['id'])){
                        $id = $_GET['id'];
			
                        // hacemos una consulta
                        // para mostrar los datos
                        $sql = mysql_query("SET NAMES 'utf8'");
                        $sql = mysql_query("SELECT * FROM clientes WHERE id = $id", $link)
                        or die(mysql_error());
                        $row = mysql_fetch_array($sql);
                        // advertimos
                        $mensaje = "Actualizar datos de <b>$row[email]</b>";
                        }
                        // comprobamos si
                        // ha sido enviado el formulario
                        if(isset($_POST['actualizar']) && $_POST['actualizar'] == 'Actualizar'){
                        // comprobamos que no lleguen campos vacios, aqui van solo los campos que deben ir llenos
                        if(!empty($_POST['email']) && !empty($_POST['nombres']) && !empty($_POST['apellido_pat']) && !empty($_POST['apellido_mat']) && !empty($_POST['fecha_nacimiento']) && !empty($_POST['sexo']) && !empty($_POST['telefono']) && !empty($_POST['objetivos'])){
                        // creamos las variables
                        // que vamos a usar en la consulta UPDATE
?>
De antemano muchas gracias por su tiempo

Saludos
  #2 (permalink)  
Antiguo 24/12/2012, 02:45
 
Fecha de Ingreso: diciembre-2009
Mensajes: 125
Antigüedad: 14 años, 3 meses
Puntos: 7
Respuesta: Bloquear cambio de id por url

Utiliza sessiones y la variable de session para todas tus consultas sería la session actual del usuario.
La url te quedaría limpia tipo "panel.php"..

Saludos
  #3 (permalink)  
Antiguo 24/12/2012, 02:56
 
Fecha de Ingreso: julio-2012
Ubicación: Santiago
Mensajes: 45
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Bloquear cambio de id por url

podrias darme un ejemplo porfavor si no fuera mucha la molestia??

Última edición por shyvano; 24/12/2012 a las 08:30
  #4 (permalink)  
Antiguo 24/12/2012, 08:31
 
Fecha de Ingreso: julio-2012
Ubicación: Santiago
Mensajes: 45
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Bloquear cambio de id por url

No se como armar la funcion para que funcione asi, podrian recomendarme algo?
  #5 (permalink)  
Antiguo 24/12/2012, 08:57
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 7 meses
Puntos: 2114
Respuesta: Bloquear cambio de id por url

Cita:
Iniciado por shyvano Ver Mensaje
No se como armar la funcion para que funcione asi, podrian recomendarme algo?
El que lee mucho y anda mucho, ve mucho y sabe mucho —creo que lo dijo una monja, qué ironía.

http://www.forosdelweb.com/f18/como-...sesion-170973/

Edito: Lo dijo Cervantes. No sé porqué recordaba a una monja.
  #6 (permalink)  
Antiguo 24/12/2012, 10:51
 
Fecha de Ingreso: julio-2012
Ubicación: Santiago
Mensajes: 45
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Bloquear cambio de id por url

Cita:
Iniciado por Bonez Ver Mensaje
El que lee mucho y anda mucho, ve mucho y sabe mucho —creo que lo dijo una monja, qué ironía.

http://www.forosdelweb.com/f18/como-...sesion-170973/

Edito: Lo dijo Cervantes. No sé porqué recordaba a una monja.
Muchas gracias, lo leeré y cuento como me fue, lejos la mejor forma de progresar es leyendo, estudiando y probando.

Saludos
  #7 (permalink)  
Antiguo 24/12/2012, 10:56
 
Fecha de Ingreso: julio-2012
Ubicación: Santiago
Mensajes: 45
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Bloquear cambio de id por url

Jeje mire, pero no tengo problemas al usar las sesiones, mi duda es como hacer que no se pase el id por la url y que esta quede limpia.

En este momento tengo www...../actualizar.php?id=3 y me gustaría que quedara www...../actualizar.php

Y que si el usuario intentara cambiar o poner el id que no es de su usuario lo devolviera al que le corresponde asi no cambia datos de otros usuarios
  #8 (permalink)  
Antiguo 24/12/2012, 11:04
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Bloquear cambio de id por url

Lo que pasa es que no debes de pasarlo por la URL, debes de usar una sesión ya te dijieron anteriormente, así no vas a ver nada en la URL y solo vas a usar la variable de sesión ej:

MAL:
actualiza.php?id=3
Código PHP:
Ver original
  1. $idUsuario = $_GET['id];

BIEN:
actualiza.php
Código PHP:
Ver original
  1. $idUsuario = $_SESSION['idUsuario'];
  #9 (permalink)  
Antiguo 24/12/2012, 12:08
 
Fecha de Ingreso: julio-2012
Ubicación: Santiago
Mensajes: 45
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Bloquear cambio de id por url

Cita:
Iniciado por GatorV Ver Mensaje
Lo que pasa es que no debes de pasarlo por la URL, debes de usar una sesión ya te dijieron anteriormente, así no vas a ver nada en la URL y solo vas a usar la variable de sesión ej:

MAL:
actualiza.php?id=3
Código PHP:
Ver original
  1. $idUsuario = $_GET['id];

BIEN:
actualiza.php
Código PHP:
Ver original
  1. $idUsuario = $_SESSION['idUsuario'];
Muchas gracias, ahora si lo entendi xD.

Problema solucionado.

Se agradece.

Etiquetas: bloquear, formulario, mysql, sql, url, 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 08:11.