Q: IF na Funcão de resposta POST não funciona tenho um POST dentro de uma função javascript e esse post retorna uma função resposta o problema e que o IF na função resposta não está funcionando
<script>
$(document).ready(function(){
    $("#mlogin" ).click(function() {
        $("#modallogin").modal({                    // wire up the actual modal functionality and show the dialog
                "backdrop"  : "static",
                "keyboard"  : false,
                "show"      : true                     // ensure the modal is shown immediately
        });
    });
    $("#btncancel" ).click(function() {
        $("#modallogin").modal("hide");
        $("#msg_login").html("");
    });
    $("#btnok" ).click(function() {
        var usuario = $('#usuario').val();
        var senha = $('#senha').val();
        var acao= "login";
        var startaction=1;
        $.post('controllers/clogin.php', {usuario:usuario , senha:senha, acao:acao, startaction:startaction}, function(resposta) {//enviamos o parametro nome, com o valor da variavel nome criada acima
                    //location.reload();
        $('#usuario').val(""), $('#senha').val(""), acao="", startaction=0;
            $("#msg_login").html(resposta);
            // O if abaixo não está funcionando
            if (resposta=="Você foi logado com sucesso"){
                $("#modallogin").modal("hide");
                $("#msg_login").html("");
            }
        });
    });
});
</script>


A: Acredito que existam 3 possibilidades:
1 - a função function(resposta){} do seu código representa o parâmetro success da função $.post;
Isso significa que ele somente executa caso a função tenha sucesso, ou seja, o terceiro parâmetro da função, objecto jqXHR, tem os seguintes valores: jqXHR.readyState = 4 e jqXHR.status = 200;
Valores do readyState: 
0: request not initialized  
1: server connection established 
2: request received  
3: processing request  
4: request finished and response is ready
Valores do status (alguns) 
200: OK 
404: Page not found 
Para ilustrar:
function(resposta, StringSucesso, retorno){
     console.log(retorno.status);
     console.log(retorno.readyState);
}

Caso ele não tenha terminado a requisição ou a resposta não estiver pronta, ele nao retorna 4 no readyState, caso ele não encontre a pagina requisitada ou outro problema externo ocorra ele não retorna 200 no status.
Dessa forma a função success não é executada.
2 - A função quebra ou encerra antes do if: caso exista um retorno o código seguinte ao retorno não será executado. Caso ocorra um erro do javascript antes do if, o código seguinte também não executa.
3 - resposta=="Você foi logado com sucesso", a analise da resposta não tem nenhum tratamento, ou seja, você está lendo o retorno como texto pleno.
Não é uma boa prática, e digo que é uma péssima prática principalmente para nós que falamos português, já que nossa linguagem tem acentuação.
Como você usa PHP para o webservice e AJAX para requisição eu sugiro o uso de JSON:
Preparando o código a ser retornado pelo PHP:
 $array = Array();
 $array['sucesso'] = 1 // valor varia 1 ou 0, 1 para sucesso e 0 para erro
 $array['mensagem'] = "Você foi logado com sucesso" // A mensagem retornada pelo webservice
 echo json_encode($array);

A função json_encode, transforma o array em texto json, além de codificar acentuação e outros caracteres.
Preparando a leitura do retorno no Javascript:
try{
      var objResponse = JSON.parse(response);

      if(objResponse.sucesso == 1){
    // Executa o código de sucesso
        console.log(objResponse.mensagem);
      }else{
    // Executa o código de erro (negação)
        console.log(objResponse.mensagem);
      }


}catch(e){
    // Faz o tratamento da exceção (e);
}

Espero te-lo ajudado.
