Editar registro donde el usuario sea el autor
Hola a todos! bueno como veran soy nuevo por aqui!
Aqui mi duda, estoy creando una plataforma para animales en adopcion, donde cada protectora registrada, pueda tener sus mascotas agredadas a mano.
bien, mi problema esta, en que e podido sacar mediante una variable de sesion, sacar las mascotas de un usuario, suponiendo mis mascotas son 1 y 3, a la hora de editar, "editar.php?id=x" si en la url pongo 2 puedo tambien editarlo...
alguien sabe como poder solucionarlo?
Editado
Aqui mi duda, estoy creando una plataforma para animales en adopcion, donde cada protectora registrada, pueda tener sus mascotas agredadas a mano.
bien, mi problema esta, en que e podido sacar mediante una variable de sesion, sacar las mascotas de un usuario, suponiendo mis mascotas son 1 y 3, a la hora de editar, "editar.php?id=x" si en la url pongo 2 puedo tambien editarlo...
alguien sabe como poder solucionarlo?
Editado
Respuesta #1
adjunto el codigo del archivo editar.php
<?php require_once('Connections/conexion.php'); ?> <?php $colname_modificar = "-1"; if (isset($_GET['id'])) { $colname_modificar = $_GET['id']; } mysql_select_db($database_conexion, $conexion); $query_modificar = sprintf("SELECT * FROM mascotas WHERE id = %s", GetSQLValueString($colname_modificar, "int")); $modificar = mysql_query($query_modificar, $conexion) or die(mysql_error()); $row_modificar = mysql_fetch_assoc($modificar); $totalRows_modificar = mysql_num_rows($modificar); ?> <?php $editFormAction = $_SERVER['PHP_SELF']; if (isset($_SERVER['QUERY_STRING'])) { $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']); } ?> <?php if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form2")) { $updateSQL = sprintf("UPDATEmascotas SET titulo=%s, contenido=%s WHERE id=%s", GetSQLValueString($_POST['titulo'], "text"), GetSQLValueString($_POST['contenido'], "text"), GetSQLValueString($_POST['id'], "int")); mysql_select_db($database_conexion, $conexion); $Result1 = mysql_query($updateSQL, $conexion) or die(mysql_error()); $updateGoTo = "panel.php"; if (isset($_SERVER['QUERY_STRING'])) { $updateGoTo .= (strpos($updateGoTo, '?')) ? "&" : "?"; $updateGoTo .= $_SERVER['QUERY_STRING']; } header(sprintf("Location: %s", $updateGoTo)); } ?>
Respuesta #2
Hola y bienvenido! supongo que también tendrás una o varias variables de sesión para los usuarios verdad? con esas variables puedes comprobar si el usuario es igual que el autor del registro a editar, por ejemplo si tienes la variable:
$_SESSION['iduser'];solo tienes que cambiar tu consulta por esta:
mysql_select_db($database_conexion, $conexion); $query_modificar = sprintf("SELECT * FROM mascotas WHERE id = %s", GetSQLValueString($colname_modificar, "int")); $modificar = mysql_query($query_modificar, $conexion) or die(mysql_error()); $row_modificar = mysql_fetch_assoc($modificar); if($row_modificar['autor']!=$_SESSION['iduser']) { //Si el usuario es diferente al autor del post header('Location: error.php'); //Redireccionas a la pagina error.php } $totalRows_modificar = mysql_num_rows($modificar);salu2
1
Puntos
Puntos
Por alber hace 103 meses
Administrador
Respuesta #3
revisa tambien la linea del update y deja una separación ya que tienes updatemascotas todo junto, cambialo por esto:
$updateSQL = sprintf("UPDATE mascotas SET titulo=%s, contenido=%s WHERE id=%s",
1
Puntos
Puntos
Por alber hace 103 meses
Administrador