Gracias por tu respuesta GatorV,
Comentarte que efectivamente hay privilegios.Tengo una tabla de usuarios y otra de proyectos en la que indico entre otras cosas a que ID de usuario pertenece.
Entonces yo lo que hago para editar un proyecto es lo siguiente (lo resumo bastante):
Código PHP:
function compruebaProyecto($id_proyecto){
$query = mysql_query("
SELECT COUNT(*)
FROM proyectos
WHERE ID=".$id_proyecto."
AND ID_USUARIO=".$_SESSION['id']
);
return mysql_result($query,0) > 0 ? true : false;
}
// --- Main script ----
if(!$_POST){
$id_proyecto = $_GET['id_proyecto'];
$ok_permisos = compruebaProyecto($id_proyecto);
if($ok_permisos){
//Muestro formulario para editar con los datos del proyecto cargados
//En el formulario pongo en un campo hidden el ID del proyecto
}
}else{
//Aquí tengo que volver a comprobar que el ID enviado corresponde con la persona
//Esto lo hago porque desde firebug se puede modificar a voluntad los campos de los formularios
$id_proyecto = $_POST['id_proyecto'];
$ok_permisos = compruebaProyecto($id_proyecto);
if($ok_permisos){
//Proceso los datos y hago query
}
}
Hasta ahora lo tenía hecho siempre así. Pero pensándolo bien, tengo que hacer dos veces la misma comprobación, antes del POST y después. Es por eso que había pensado lo de la sesión.
Pero la pega que le he encontrado, es que si seteo una sesión antes del POST, aunque despues del POST le haga un unset, si el usuario no envía el formulario, esa variable queda colgada y es un rollo.
Un saludo