Editar perfil usuario php

Iniciado por ASCII, 12 Julio 2018, 10:12 AM

0 Miembros y 1 Visitante están viendo este tema.

ASCII

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:

Código (php) [Seleccionar]
<?php session_start();
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

Código (html5) [Seleccionar]
<?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']?>" >
<button class="btn btn-primary mt-3">Editar</button>
</form>
<?php endif ?>
<?php endforeach ?>


Mod:
- Obligatorio el uso de etiquetas GeSHi.
- Los temas sobre PHP van al subforo de PHP.

#!drvy

Código (php) [Seleccionar]
$sql_leer = 'SELECT * FROM usuarios WHERE id';

Ahí te falta definir el que quieres que contenga el ID.

Código (php) [Seleccionar]
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