Ver Mensaje Individual
  #3 (permalink)  
Antiguo 20/08/2005, 04:21
$thisone
 
Fecha de Ingreso: agosto-2005
Mensajes: 143
Antigüedad: 18 años, 8 meses
Puntos: 0
Cita:
Iniciado por Touch
Hola estoy comenzando a trabajar con php y necesito que me digais si esta sentencia que he realizado esta bien hecha(el resultado que obtengo es el k kiero)

Os explico. Recibo los datos de un formulario y tengo que mirar ese registro y mirar si tiene el campo de validacio a 0 o 1.

El codigo es el siguiente:

include("conexion.php");
$nick=$_POST['usuario'];
$clave=$_POST['clave'];

$consulta= mysql_query("SELECT * FROM usuarios WHERE user='$nick' and clave='$clave'");

while($row = mysql_fetch_array($consulta))
{
if($row[5]=="0")
{
echo "hola";
}
else
{
echo "holaaaa";
}
}

Se haria de otra forma o esta es correcta.
Si y no.
El funcionamiento es correcto(te funciona bien :)) pero la seguridad es nula.
Cita:
$nick=$_POST['usuario'];
$clave=$_POST['clave'];

$consulta= mysql_query("SELECT * FROM usuarios WHERE user='$nick' and clave='$clave'");
Tienes que pasarle alguna funcion como addslashes() y htmlentities() para espacar todos los caracteres como comillas y cosas de el estilo y para convertid a entidades HTML los caracteres posibles.

De lo contrario sería vulnerable a uuna inyección de codigo SQL.

Un ejemplo rapidito:
Código:
pagina.php?usuario='+OR+1=1+UNION+ALL+SELECT+clave,clave,clave,clave,clave+WHERE+usuario='admin'+/*