Ver Mensaje Individual
  #7 (permalink)  
Antiguo 21/04/2006, 01:00
Avatar de uamistad
uamistad
 
Fecha de Ingreso: diciembre-2004
Ubicación: Cd. de México
Mensajes: 1.395
Antigüedad: 19 años, 4 meses
Puntos: 1
Yo no me fío, prefiero validar de esta forma y no suponer que el usuario haga bien las consultas.

Si no cumplen con la expresión regular, los saco y les muestro algún mensaje predefinido.

Pasando a otra cosa, te recomiendaría que te fabricaras una función para conectarte, así no lo tienes que hacer a cada rato. Una ventaja de hacerlo así es un código más legible y la posibilidad de esa función detecte si estás o no online y de esa manera 'sabe' si conectarte con la base de datos del servidor o la que tienes en forma local.

Los mensaje_final() es una forma que ocupo p' mensajes y luego darle desde dentro de esa función unexit() para que no continúe el código. Igual se me hace una buena forma de mandarle errores personalizados y no caer en lo que claudiovega muestra que hay que evitar.

Digo, no pretendo descubrir el hilo negro, pero creo que funciona bien y con lo poderosas que son las expresiones regulares, pues se pueden adaptar muy bien a muchas formas de validación. Así nisiquiera tengo que usar las magic_quotes.

Parece que en esto de las BD cada quién tiene su estilo. Dificilmente se puede decir cuál es mejor que cuál, simplemente son diferentes. Este es el mío, gracias por compartir el vuestro.

Código PHP:
<?

// Conexion (prefiero llamar a una función que lo haga por mí)
$enlace connectDB(); 

////////// VERIFICANDO LOS DATOS DEL USUARIO //////////////
if( !ereg("^[a-z0-9]{3,}$",$_POST['username']) ) //si quiera hacer algo raro, lo saco
  
mensaje_final('errusr'); 
if ( !
ereg("^[a-z0-9]{3,}$",$_POST['password']) )
  
mensaje_final('errpss'); //lo saco y le muestro un error


//(llegando a este punto, ya se puede usar los datos de $_POST con seguridad
// VERIFICANDO QUE COINCIDAN LOS DATOS

if( cuantosDB("SELECT COUNT(*) FROM usuarios WHERE user='".$_POST['username']."' AND pass='".$_POST['password']."'",$enlace) ){
  
$_SESSION['is_user_logged'] = true;  //usuario bien loggeado
  //
  // y más líneas aquí, whatever
  //
  
}//end if
else{
  
$_SESSION['is_user_logged'] = false;  //usuario mal loggeado
  //
  // y más líneas aquí, whatever
  //

 
}
?>
__________________
"Di no al Internet Explorer" -Proverbio Chino-