Ver Mensaje Individual
  #2  
Antiguo 05-12-2007
Mick Mick is offline
Miembro
 
Registrado: may 2003
Posts: 405
Reputación: 22
Mick Va por buen camino
Hola,

IBASE_WRITE no debe ir entre comillas, de todas formas siendo un script tan pequeño y como no se esta usando rollback no es necesario iniciar explicitamente ninguna transaccion.

Como usas pconnect (conexion persistente), llamar a ibase_close no es necesario ya que en realidad no hace nada en ese caso.

Y otra cosa importantisima debes validar las entradas y usar parametros en las queries (usando una ? para marcar los parametros), ese script es un peligro, cualquiera podria borrar los numeros de cuenta de todos los alumnos dejando en blanco el campo c del formulario y aunque comprobases que no quede en blanco bastaria escribir algo de este estilo ' OR 1=1 OR ''=' .

Otra cosa, como haces una redireccion a otra pagina, nunca te apareceran errores que pudiese dar ese script en pantalla.

El codigo quedaria asi:

Código PHP:
$nom $_GET['nom'];
$ns    $_GET['nc'];
$c     $_GET['c'];
$gr    $_GET['gr'];

// Aqui asegurarse de que los parametros tengan valores validos.

$c=ibase_pconnect("localhost:/usr/bases/PRESTAMOS.FDB",'sysdba','masterkey');
$sql="UPDATE alumno SET no_cuenta=?, nombre=?, grupo=? WHERE no_cuenta CONTAINING ?";
$rsibase_query($c,$sql,$ns$nom$gr$c);

if(
$rs!==FALSE) {
 
header("Location:alumnos.php");  
} else {
 
// Ha habido algun error, hacer lo que sea necesario en ese caso.

Saludos

Última edición por Mick fecha: 05-12-2007 a las 11:42:25.
Responder Con Cita