Bienvenido a datoweb.com!! En este foro podrás encontrar ayuda sobre diseño y desarrollo web en general. Si quieres formar parte de esta comunidad para pedir ayuda o colaborar ayudando a otros usuarios del foro solo tienes que registrarte desde el siguiente enlace: Registrarse en el Foro

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
0
Puntos
768
Visitas
4
Resp
Por zapikero hace 34 meses
Avanzado Sitio web
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));
}
?>
1
Puntos
Por zapikero hace 34 meses
Avanzado Sitio web
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
Por alber hace 34 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
Por alber hace 34 meses
Administrador
Respuesta #4
Perfecto Alber!! me vino de perlas! despues de llevar dandole vueltas al codigo jaja, muchas gracias por tu atuda :)
1
Puntos
Por zapikero hace 34 meses
Avanzado Sitio web
Compartir en facebook
Compartir en twitter
Compartir
Para comentar Inicia sesión o Registrate