Comunidad de diseño web y desarrollo en internet online

Problema con modificacion de registros desde PHP

Citar            
MensajeEscrito el 14 Jun 2010 09:41 pm
Hola estoy montando un panel para manejar unos productos, el cual ya habia utilizado anteriormente en otra web. pero ahora cuando intento borrar un registro me aparece el siguiente error

Código :

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1


mi codigo es el siguiente

Código PHP :

<?
include("../includes/config.php");
include("../includes/funciones.php");
include("../../secure.php");

if(isset($_POST['submit'])){
   //borramos el registro.
        //nos conectamos a la bd.
        $cnx = conectar ();
        //consulta sql.
        $sql = "DELETE FROM tabla WHERE id=".$_POST['id'];
        $res = mysql_query($sql) or die (mysql_error());
        //actualizamos el xml.
        actualizarXml();
        //cerramos la conexión.
        mysql_close($cnx);
        //mensaje de exito.
        $titulo = "Registro Eliminado";
        $mensaje = "El registro ha sido Eliminado";
        $link = "<a href='index.php'>regresar</a>";
        include("../../mensajes.php");
        exit;
}
?>


este a su vez funciona con un formulario de confirmacion que recibe la variable en GET y la envia po POST

Código :

<form action="<? echo $_SERVER['PHP_SELF']?>" method="post" name="form1">
<tr>
      <td><input name="id" type="hidden" id="id" value="<? echo $_GET['id'];?>">      </td>
</tr>
<tr>
      <td><input type="hidden" name="id" value="<? echo $id;?>">
        ¿Eliminar registro : Ref: <? echo $_GET['nom_sql'];?> ?<br></td>
   </tr>
   <tr>
      <td align="right"><input name="submit" type="submit" id="submit" value="Enviar"></td>
   </tr>
</form>


he rebisado el codigo incluso reutilizado el anterior pero me da el mismo error. alguna ayuda?

Por Idearis

19 de clabLevel



 

firefox
Citar            
MensajeEscrito el 16 Jun 2010 04:07 am
Creo haber tenido el mismo problema al intentar usar el array $_POST en una sentencia SQL. En mi caso lo solucioné asignando primero una variable al valor recibido y usando esta variable en la consulta:

Código PHP :

$id =$_POST['id'];
$sql = "DELETE FROM tabla WHERE id=".$id;

Espero te sirva. Saludos

Por bucle_infinito

Claber

166 de clabLevel

1 tutorial

 

.NET Developer

mozilla
Citar            
MensajeEscrito el 16 Jun 2010 05:19 am
Me da que es un problema con la variable $_POST['id'] como dice bucle_infinito, intenta realizar un trazado de la variable imprimiendola en distintas partes del código para checkear que el valor correcto se mantenga hasta llegar a tu código de la consulta MySQL.

Ah! y ojo, que ahí tienes un agujero de seguridad, intenta aplicar una función de seguridad como addslashes() a $_POST['id'] para solventar la vulnerabilidad. (Mas info: http://cl.php.net/manual/es/function.addslashes.php)

Saludos!

Por Hardc0der

0 de clabLevel



 

opera

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.