@ylellan: veo que tu codigo crea una variable de sesion incluso si el password es incorrecto, no le resta seguridad mientras no te bases en esa variable para validar una sesion pero te aconsejaria que lo dejaras fuera, igualmente creo que no es recomendable confirmarle al usuario que determinado usuario existe. Si quieres más seguridad aun, puedes evitar ataques de brute force limitando el numero de intentos de loggeo.
Simplifique un poco el codigo y me quedo así:
Código PHP:
session_start();
include "conexion.php";
if(isset($_POST['enviar'])){
if(!empty($_POST['nombre']) && !empty($_POST['pass'])){
conectar();
$nombre=strip_tags(mysql_real_escape_string($_POST['nombre']));
$pass=md5(strip_tags(mysql_real_escape_string($_POST['pass'])));
$b=mysql_query("select *from usuarios where usuario='$nombre' AND password='$pass'") or die ("error".mysql_error());
if(mysql_num_rows($b)){
$c=mysql_fetch_array($b);
desconectar();
$_SESSION['usuario']=$nombre;
$_SESSION['admitio']="si";
header("location:frame.php");
}else{
header("location:index.php?pai=NO EXISTE USUARIO");
}
}else{
//si no hay valores en los inputs
if(empty($_POST['nombre'])) $user="*FALTA NOMBRE";
if(empty($_POST['pass'])) $pas="*FALTA PASSWORD";
header("location:index.php?mensaje=LLENAR TODOS LOS DATOS&user=".$user."&pas=".$pas."&usuario=".$_POST['nombre']."&password=".$_POST['pass']);
}