Nueva pregunta

Pregunta:

Fecha: 05-10-2019 16:46:57 (En Español)

Obtener la id luego de un foreach[Resuelta]

Buenas noches, tengo este código de un foreach el cual me lista los artículos con un paginador sin problema alguno, pero cuando me lo envío para editarlo, tengo problemas con el ID.

Si me lo envío a través de la sesión, aunque seleccione el primer artículo siempre recibo el último artículo de la página en la que se encuentre el paginador.

El envío lo hago a través de un input oculto y si lo recibo con el método GET no funciona.

<?php foreach($articulos as $articulo): ?>
 
<?php
$id= mysqli_real_escape_string($connection,$articulo['id']);
$titulo= mysqli_real_escape_string($connection,$articulo['titulo']);
$descripcion= mysqli_real_escape_string($connection,$articulo['descripcion']);
$contenido= mysqli_real_escape_string($hpl_connection,$articulo['contenido']);
$autor= mysqli_real_escape_string($connection,$articulo['autor']);
$_SESSION['id']= mysqli_real_escape_string($connection, $id);
?>
        <tr>
        <input type="text" name="id" value="<?php $id;?>">
        <td><?php echo $titulo; ?></td>
        <td><?php echo $descripcion; ?></td>
        <td><?php echo $contenido; ?></td>
        <td><?php echo $autor; ?></td>
        <td><a href="editar.php">Editar</td>
<?php endforeach?>
 
En la página de destino recibo la id de esta manera:
<?php $id=$_SESSION['id'];?>


La única manera en que me funciona correctamente es incluyendo la id en la URL pero por motivos de seguridad, no quiero recibirlo de esta manera:

<?php foreach($articulos as $articulo): ?>
 
<?php
$id= mysqli_real_escape_string($connection,$articulo['id']);
$titulo= mysqli_real_escape_string($connection,$articulo['titulo']);
$descripcion= mysqli_real_escape_string($connection,$articulo['descripcion']);
$contenido= mysqli_real_escape_string($hpl_onnection,$articulo['contenido']);
$autor= mysqli_real_escape_string($connection,$articulo['autor']);
$_SESSION['id']= mysqli_real_escape_string($connection, $id);
?>
        <tr>
        <input type="text" name="id" value="<?php $id;?>">
        <td><?php echo $titulo; ?></td>
        <td><?php echo $descripcion; ?></td>
        <td><?php echo $contenido; ?></td>
        <td><?php echo $autor; ?></td>
        <td><a href="editar.php?id=<?php $new_id; ?>">Editar</td>
<?php endforeach?>
 
En la página de destino recibo la id de esta manera:
<?php $id=$_GET['id'];?>


¿Alguien sabe de que manera puedo recibir la id correctamente en la página de destino?

Saludos.
Etiquetas: Empezar a programar - HTML - HTML5 - MySQL - MySQL Desarrollo - PHP - PHP Avanzado - PHP MySQLi - PHP7 - Pregunta - SQL - Web Votos: 0 - Respuestas: 2 - Vistas: 12 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  • Fecha: 07-10-2019 13:19:27 Hola Xavi,

    En el foreach que estas realizando NO estas creando varias variables de session: $_SESSION['id']; si no que estas cambiando de valor a la misma variable, es por ello que siempre tiene el valor del ultimo registro.

    No se la complejidad del sistema que estas creando, pero creo que la mejor forma en que puedes cambiar de script es pasando el id por la URL: editar.php?id=999999, de otro modo a mi parecer vas a convertir algo tan simple en tortuoso, y para que estés tranquilo en cuanto a la seguridad en el script editar.php puedes validar que solo recibas números enteros.

    Espero haberte ayudado! Saludos
      Votos: 1 - Link respuesta
     
  • Fecha: 10-10-2019 07:46:28 Hola JLuis, si está complejo lo que estoy haciendo y si, también me estaba torturando con eso, jajajaja.

    A la final resolví pasarme el ID con un input oculto en un formulario, igual muchas gracias por la ayuda si no, aun estuviera tratando de pasarlo por la sesión.
      Votos: 0 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
 
frjcbbae garagebible.com