AndreRO 0 Denunciar post Postado Junho 9, 2010 Boa tarde, Estou fazendo um sistema em PHP com MS SQL Server 2008 Na parte de login de usuário, estou dando um select para verificar se usuário existe e pegar os dados pra sessão... todos os campos funcionam bem, exceto o campo com uniqueidentifyer, que me retorna isso: Òm|J›"E¶òª€ˆþTy No banco de dados está correto: USU_ID = 4a7c6dd2-0b9b-4522-b6f2-aa8088fe5479 Me pareceu ser um problema de codificação, ou algo do tipo... Então tentei algumas formas de conversão, como CONVERT, CAST, encode, decode, etc... Sem sucesso... Nem tenho certeza se o problema é no PHP ou no SQL Server Alguem tem alguma idéia do que possa ser? Obrigado! Código: $query = mssql_query("SELECT TOP 1 USU_ID,NM_USUARIO,NM_SENHA,NM_TIPO,NM_EMAIL,DTHR_LOG FROM GEN_USUARIO WHERE NM_EMAIL = '".$email."' AND NM_SENHA = '".$senha."' AND FL_ATIVO = 1"); if (mssql_num_rows($query) != 1){ echo("<script>alert('Erro! Usuário não existe ou senha inválida'); history.back() </script>"); } else { $resultado = mssql_fetch_assoc($query); if (!isset($_SESSION)){ session_start(); } $_SESSION["ID"] = $resultado["USU_ID"]; $_SESSION["NOME"] = $resultado["NM_USUARIO"]; $_SESSION["EMAIL"] = $resultado["NM_EMAIL"]; $_SESSION["TIPO"] = $resultado["NM_TIPO"]; $_SESSION["DTHR_LOG"] = $resultado["DTHR_LOG"]; Compartilhar este post Link para o post Compartilhar em outros sites
Daniel Costa da Silva 0 Denunciar post Postado Junho 9, 2010 tenta passar outro padão de retorno assim...em todos resultados da query.. $_SESSION["ID"] = utf8_encode($resultado["USU_ID"]); qualquer coisa grita ae... Compartilhar este post Link para o post Compartilhar em outros sites
AndreRO 0 Denunciar post Postado Junho 9, 2010 RESOLVIDO!! A função que eu precisava era mssql_guid_string(), isso resolveu meu problema: $_SESSION["ID"] = mssql_guid_string($resultado["USU_ID"]) Aparentemente, o MS SQL passa o UID como binário, e o que essa função faz é converter de binário para string Compartilhar este post Link para o post Compartilhar em outros sites