Для того, чтобы понимать это, надо понимать, что возвращает mysql в $result.
В (!$result) будет true только в том случае, если в запросе у тебя ошибка.
Вот это должно сработать
function checkpass ( $login, $password ) {
$result = mysql_query("SELECT id, login, password FROM info WHERE login=\'$login\' AND password=\'$password\'");
if ( mysql_num_rows( $result ) ) return mysql_fetch_array ( $result );
else {
header ("Location:badpass.php");
exit;
}
}
Ты этим паролем только одну страницу закрываешь?