Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: ASCII en 12 Julio 2018, 10:12 am



Título: Editar perfil usuario php
Publicado por: ASCII en 12 Julio 2018, 10:12 am
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
  1. <?php session_start();
  2. include_once '../pruebas/conexion.php';
  3.  
  4. if (!isset ($_SESSION['usuario'])){
  5.    header('Location: ../login.php');
  6. }
  7. $sql_leer = 'SELECT * FROM usuarios WHERE id';
  8.  
  9. $gsnet = $pdo->prepare($sql_leer);
  10. $gsnet->execute();
  11.  
  12. $resultado = $gsnet->fetchAll();
  13.  
  14.  
  15.  
  16. if($_GET){
  17.    $id = $_GET['id'];
  18.    $sql_unico = 'SELECT * FROM usuarios WHERE id=?';
  19.  
  20. $gsnet_unico = $pdo->prepare($sql_unico);
  21. $gsnet_unico->execute(array($id));
  22.  
  23. $resultado_unico = $gsnet_unico->fetch();
  24. }
  25. ?>

y esto es el html

Código
  1. <?php foreach ($resultado as $dato): ?>
  2. <?php if(!$_GET):?>
  3.    <h2>Editar elementos</h2>
  4. <form method="GET" action="editar_usuario.php">
  5. <input type="text" class="form-control" placeholder="Equipo" name="equipo" value="<?php echo $dato ['equipo']?>">
  6. <input type="text" class="form-control" placeholder="Email" name="email" value="<?php echo $dato['email']?>">
  7. <input type="text" class="form-control" placeholder="Contraseña" name="pass" value="<?php echo $dato ['pass']?>">
  8. <input type="file" class="form-control" placeholder="Imagen" name="thumb" value="<?php echo $dato ['thumb']?>">
  9. <input type="hidden" name="id" value="<?php echo $dato['id']?>" >
  10. <button class="btn btn-primary mt-3">Editar</button>
  11. </form>
  12. <?php endif ?>
  13. <?php endforeach ?>

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


Título: Re: Editar perfil usuario php
Publicado por: #!drvy en 12 Julio 2018, 15:35 pm
Código
  1. $sql_leer = 'SELECT * FROM usuarios WHERE id';

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

Código
  1. if($_GET){
  2.    $id = $_GET['id'];
  3.    ...
  4. $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