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
0
Puntos
Puntos
1469
Visitas
Visitas
4
Resp
Resp
Por zapikero hace 10 años
Developer
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
Puntos
Por zapikero hace 10 años
Developer
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);salu21
Puntos
Puntos
Por alber hace 10 años
Admin
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 10 años
Admin
Respuesta #4
Perfecto Alber!! me vino de perlas! despues de llevar dandole vueltas al codigo jaja, muchas gracias por tu atuda :)
1
Puntos
Puntos
Por zapikero hace 10 años
Developer