Foros del Web » Programando para Internet » PHP »

parse error: ayudarme por favor

Estas en el tema de parse error: ayudarme por favor en el foro de PHP en Foros del Web. Increible ahora me da error al borrar, bueno pues eso que en mi lista de noticias se visualiza en una tabla con una columna con ...
  #1 (permalink)  
Antiguo 05/12/2006, 07:39
Avatar de alllebor  
Fecha de Ingreso: septiembre-2006
Mensajes: 295
Antigüedad: 17 años, 7 meses
Puntos: 1
parse error: ayudarme por favor

Increible ahora me da error al borrar, bueno pues eso que en mi lista de noticias se visualiza en una tabla con una columna con un boton para poder borrar la noticia que quiero, que este llama al script borra.php

aqui os pongo el codigo de la tabla de la consulta a a la base de datos

Código PHP:
<?php 
   
include("conex.php"); 
   
$link=Conectarse(); 
   
$result=mysql_query("select * from peliculas ORDER BY id DESC",$link); 
?> 
   <TABLE width="612" BORDER=1 CELLPADDING=1 CELLSPACING=1> 
      <TR align="center">
      <TD width="178" height="10"><B>Titulo</B></TD> 
      <TD width="91" height="10">&nbsp;<B>Categoria</B>&nbsp;</TD> 
      <TD width="235" height="10">&nbsp;<B>Comentario</B>&nbsp;</TD>
      <TD width="235" height="10">&nbsp;<B>Imagen</B>&nbsp;</TD> 
      <TD width="85" height="10">&nbsp;<B>Borrar</B>&nbsp;</TD> 
      </TR> 
<?php       

   
while($row mysql_fetch_array($result)) {
   if (!(
$row["imagen"]=='img/')){
   
//si en el formulario se ha adjuntado una imagen se mostrará
      
printf("<tr align='center'> <td>&nbsp;%s</td><td>&nbsp;%s&nbsp;</td><td>&nbsp;%s&nbsp;</td><td><img src='%s' border='0' width='100' height='100' /></td><td><a href=\"borra.php?id=%d\"><img src='borrar.gif' border='0'/></a></td></tr>"$row["titulo"],$row["categoria"],$row["comentario"], $row["imagen"],$row["id"]);
       }
      
      else {
//si no se adjunta imagen sale una por defecto
      
printf("<tr align='center'> <td>&nbsp;%s</td><td>&nbsp;%s&nbsp;</td><td>&nbsp;%s&nbsp;</td><td><img src='img/sescudo1.jpg' border='0' width='100' height='100'/></td><td><a href=\"borra.php?id=%d\"><img src='borrar.gif' border='0'/></a></td></tr>"$row["titulo"],$row["categoria"],$row["comentario"],$row["id"]);
      }
      
      }
   
   
mysql_free_result($result); 
   
mysql_close($link); 
?>
y el script borra.php es este

Código PHP:
<?php 
  mysql_connect
("localhost","user","pass");
  
mysql_select_db("BDA"); 
  
  
$id=$_GET['id']; 
  
mysql_query("delete from peliculas where id = $id"); 
  
header ("Location: ./insertar.php");
  exit;    
?>
cuando intento borrar me sale este error

Parse error: parse error, unexpected T_STRING in /home/vhost/aer-ribera.com/auten/borra.php on line 6

A que es debido? No encuentro explicacion!!
  #2 (permalink)  
Antiguo 05/12/2006, 09:57
 
Fecha de Ingreso: mayo-2005
Mensajes: 201
Antigüedad: 18 años, 10 meses
Puntos: 2
A simple vista tu script se ve bien, ya viste cual es la linea 6 a la que hace mension el mensaje ?..

Por cierto a la siguiente linea de tu script:
Código PHP:
$id=$_GET['id'];
mysql_query("delete from peliculas where id = $id"); 
Cambialo por esta otra:
Código PHP:
$id= (int)$_GET['id'];
mysql_query("delete from peliculas where id = $id"); 
Se supone que tu esperas un valor numérico mediante el arreglo $_GET pero estas confiando en que asi sea, el problema de eso, es que de esa manera en la que lo tienes, eres una tentacion para que te hagan una inyenccion de SQL. Es decir que si yo te envió en la variable id algo como borrar.php?id=1+or+1%3D1 tu consulta en la funcion mysql_query quedaria de la siguiente manera.
Código:
delete from peliculas where id = 1 or 1=1
te puedes despedir de todas los registros de tu tabla películas.. si agregas el cast el problema queda resuelto ya que la variable id tendrá el valor de 1 para este caso en particular.
Otro punto es que pongas validaciones para reducir la posibilidad de que cualquiera entre a esa pagina.
__________________
Saludos!
Mty-NL..
  #3 (permalink)  
Antiguo 05/12/2006, 10:25
Avatar de alllebor  
Fecha de Ingreso: septiembre-2006
Mensajes: 295
Antigüedad: 17 años, 7 meses
Puntos: 1
Gracias Hersan, pero entonces por que falla y me da el error, la linea 6 es esta

Código PHP:
mysql_query("delete from peliculas where id = $id"); 
pero yo tampoco veo ningun error, en la pagina esa solo puedo entrar yo, ya que se entra mediante usuario y password, pero de todas formas haré lo que me has dicho del casting para más seguridad.
  #4 (permalink)  
Antiguo 05/12/2006, 10:35
 
Fecha de Ingreso: noviembre-2006
Mensajes: 75
Antigüedad: 17 años, 5 meses
Puntos: 2
no era, no.

Última edición por Fumaka0o; 05/12/2006 a las 10:42 Razón: en ocasiones digo muchas tonterias, lo siento
  #5 (permalink)  
Antiguo 05/12/2006, 10:39
Avatar de Bytevamp  
Fecha de Ingreso: junio-2005
Ubicación: /var/www/
Mensajes: 789
Antigüedad: 18 años, 10 meses
Puntos: 7
Prueba con
Código PHP:
mysql_query("delete from peliculas where id = '".$id."'"); 
puede ser ese el error.

Saludos.
__________________
"zankius veri mach" a todos los que me habeis ayudado.
carteles para inmobiliarias || alquiler de coches
  #6 (permalink)  
Antiguo 05/12/2006, 10:44
Avatar de holahola  
Fecha de Ingreso: mayo-2005
Ubicación: Móstoles - (Madrid)
Mensajes: 214
Antigüedad: 18 años, 11 meses
Puntos: 1
Cita:
Iniciado por alllebor Ver Mensaje
Gracias Hersan, pero entonces por que falla y me da el error, la linea 6 es esta

Código PHP:
mysql_query("delete from peliculas where id = $id"); 
pero yo tampoco veo ningun error, en la pagina esa solo puedo entrar yo, ya que se entra mediante usuario y password, pero de todas formas haré lo que me has dicho del casting para más seguridad.
Acabo de hacer una prueba similar y he comprobado que el error está motivado porque $id está vacío, lo que provoca un error en la construcción de la query.

Última edición por holahola; 05/12/2006 a las 10:49 Razón: rectificación de la cita
  #7 (permalink)  
Antiguo 05/12/2006, 13:30
Avatar de alllebor  
Fecha de Ingreso: septiembre-2006
Mensajes: 295
Antigüedad: 17 años, 7 meses
Puntos: 1
Un error en la construccion del query? y eso?
Cuando paso el cursor del raton por encima del bootn borrar me sale bien la dirrecion, www.loquesea.com/borra.php?id=48,por ejemplo. Entonces a que se debe lo del query??
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:21.