Buenas chicos, tengo un problema,
Estoy haciendo una web, en el apartado de editar perfil quiero que lo usuarios pueda editar su perfil, hasta aquí bien. Ahora mismo actualizar los datos del perfil funciona, el problema es que me está printando todos los datos de todos los usuarios de la base de datos y eso es lo que no quiero, tengo este código para que me enseñe los datos de la BBDD:
include_once '../pruebas/conexion.php';
if (!isset ($_SESSION['usuario'])){ header('Location: ../login.php'); }
$sql_leer = 'SELECT * FROM usuarios WHERE id';
$gsnet = $pdo->prepare($sql_leer);
$gsnet->execute();
$resultado = $gsnet->fetchAll();
if($_GET){
$id = $_GET['id'];
$sql_unico = 'SELECT * FROM usuarios WHERE id=?';
$gsnet_unico = $pdo->prepare($sql_unico);
$gsnet_unico->execute(array($id));
$resultado_unico = $gsnet_unico->fetch();
}
?>
y esto es el html
<?php foreach ($resultado as $dato): ?>
<?php if(!$_GET):?>
<h2>Editar elementos
</h2> <form method="GET" action="editar_usuario.php"> <input type="text" class="form-control" placeholder="Equipo" name="equipo" value="<?php echo $dato ['equipo']?>">
<input type="text" class="form-control" placeholder="Email" name="email" value="<?php echo $dato['email']?>">
<input type="text" class="form-control" placeholder="Contraseña" name="pass" value="<?php echo $dato ['pass']?>">
<input type="file" class="form-control" placeholder="Imagen" name="thumb" value="<?php echo $dato ['thumb']?>">
<input type="hidden" name="id" value="<?php echo $dato['id']?>" >
<?php endif ?>
<?php endforeach ?>
Mod: - Obligatorio el uso de etiquetas GeSHi.
- Los temas sobre PHP van al subforo de PHP.
$sql_leer = 'SELECT * FROM usuarios WHERE id';
Ahí te falta definir el que quieres que contenga el ID.
if($_GET){
$id = $_GET['id'];
...
$gsnet_unico->execute(array($id));
Ahí tienes un problema de seguridad. Vale que estés usando sentencias preparadas, pero le dejas al usuario buscar literalmente cualquier ID ya sea 1 por 1 o con un wildcard (*).
Saludos