none
Session C# and PHP RRS feed

  • Pergunta

  • Criei uma variável de Sessão numa página C#, preciso usar esta variável de Sessão numa página Php. Tem como?
    quinta-feira, 19 de setembro de 2013 16:59

Respostas

  • Ok. Por banco de dados é complicado e por querystring tb. Pq o quero passar para o PHP é uma condição de um filtro, então por querystring estora o limite, e por banco de dados, acho inviável pq não tenho como pegar esta condição já que várias pessoas vão acessar e fazer condições diferentes. Agora tentei usar o cookies e não funcionou. Vc tem algum exemplo de como utilizo cookies no C#?

    Obrigada, Patricia

    Esse link abaixo mostra certinho como criar e resgatar um cookie

    http://www.mundoasp.net/como-criar-e-resgatar-cookies-em-asp-net/

    Pensando aqui agora uma outra forma de fazer essa INTEROP é utilizar MEMCACHED, você criar um servidor compartilhado de sessão e compartilhar dados na memória do servidor remoto para o ASP.NET e PHP, ai ficaria TOP DO TOP


    Leonardo Lourenço Silva


    • Sugerido como Resposta JoaoMarques- quinta-feira, 19 de setembro de 2013 17:32
    • Marcado como Resposta Giovani CrModerator segunda-feira, 23 de setembro de 2013 16:50
    quinta-feira, 19 de setembro de 2013 17:25
  • Vc sabe 4K é mais ou menos o equivalente a quantos caracteres? É bastante?

    Sou ruim de conta mas ACHO que é assim a conta 

    4K * 1.024 = 4.096 BYTES

    Cada caracter varia de 1 a 4 bytes dependendo do Encoding, ACHO que UTF é 1 BYTE então cabem 4.096 caracteres


    Leonardo Lourenço Silva


    quinta-feira, 19 de setembro de 2013 18:42
  • Desculpe Leonardo, mas continuei na dúvida. Como eu faço para o C# reconhecer este comando Response?

    Pelo jeito você  não está em uma página se fosse uma página já apareceria SOZINHO, tenta ae

    HttpContext.Current.Response


    Leonardo Lourenço Silva


    quinta-feira, 19 de setembro de 2013 18:01

Todas as Respostas

  • Não existe integração direta de sessão entre PHP e ASP.NET ambas por padrão armazenam na memória os dados porém a forma que esses frameworks são executados e os dados armazenados é diferente o PHP funciona com a php5isapi.dll e o ASP.NET aspnet_isapi.dll, são mundo diferentes cada 1 com seu filtro ISAPI dentro do IIS.

    Você pode contornar esse problema tentando integrar de alguma forma abaixo..

    1. Pelo Banco de Dados
    2. Por Cookies visto que qualquer linguagem e Framework web manipulam Cookies
    3. Por QueryString

    Leonardo Lourenço Silva


    quinta-feira, 19 de setembro de 2013 17:13
  • Ok. Por banco de dados é complicado e por querystring tb. Pq o quero passar para o PHP é uma condição de um filtro, então por querystring estora o limite, e por banco de dados, acho inviável pq não tenho como pegar esta condição já que várias pessoas vão acessar e fazer condições diferentes. Agora tentei usar o cookies e não funcionou. Vc tem algum exemplo de como utilizo cookies no C#?

    Obrigada, Patricia

    quinta-feira, 19 de setembro de 2013 17:19
  • Ok. Por banco de dados é complicado e por querystring tb. Pq o quero passar para o PHP é uma condição de um filtro, então por querystring estora o limite, e por banco de dados, acho inviável pq não tenho como pegar esta condição já que várias pessoas vão acessar e fazer condições diferentes. Agora tentei usar o cookies e não funcionou. Vc tem algum exemplo de como utilizo cookies no C#?

    Obrigada, Patricia

    Esse link abaixo mostra certinho como criar e resgatar um cookie

    http://www.mundoasp.net/como-criar-e-resgatar-cookies-em-asp-net/

    Pensando aqui agora uma outra forma de fazer essa INTEROP é utilizar MEMCACHED, você criar um servidor compartilhado de sessão e compartilhar dados na memória do servidor remoto para o ASP.NET e PHP, ai ficaria TOP DO TOP


    Leonardo Lourenço Silva


    • Sugerido como Resposta JoaoMarques- quinta-feira, 19 de setembro de 2013 17:32
    • Marcado como Resposta Giovani CrModerator segunda-feira, 23 de setembro de 2013 16:50
    quinta-feira, 19 de setembro de 2013 17:25
  • Ok, vou tentar fazer o cookie. Nunca ouvi falar de MEMCACHED, vc sabe aonde eu posso aprender mais sobre esse servidor compartilhado de sessão.

    Obrigada, Patricia

    quinta-feira, 19 de setembro de 2013 17:31
  • No site oficial dele

    http://memcached.org/


    Leonardo Lourenço Silva


    quinta-feira, 19 de setembro de 2013 17:32
  • OI Leonardo.

    Tentei montar com a opção do Cookie, mas tb não funciona.

    Olha como esta o código no C#(estou usando este código num WebService)

     [WebMethod]
             public String CRIACOOKIE(string codigo)
             {
                
                 String result = String.Empty;

                 HttpCookie cookie = new HttpCookie("CookieSilverlight");
                 cookie.Value = codigo;
                 TimeSpan somarTempo = new TimeSpan(0, 1, 0, 0);
                 cookie.Expires = DateTime.Now + somarTempo;

                 result = cookie.Value.ToString();

                 return result;
             }

    Olha o código no PHP:

    if(isset($_COOKIE["CookieSilverlight"]))
    {
    echo "O cookie $CookieSilverlight existe! ";
    }
    else
    {
    echo "O cookie $CookieSilverlight não existe!";
    }

    quinta-feira, 19 de setembro de 2013 17:49
  • De PHP não manjo nada, mas o cookie ali não foi criado na resposta para o navegador, você só deu um new nele mas não devolveu pro navegador...

    Tem que dar um, não precisa dar um return string....

    Response.Cookies.Add(cookie);


    Leonardo Lourenço Silva


    quinta-feira, 19 de setembro de 2013 17:54
  • Acho q o problema é q não estou conseguindo gravar o cookie na máquina.

    Mas este comando o C# não reconhece: Response.Cookies.Add(cookie );

    Será q falta alguma referência?

    quinta-feira, 19 de setembro de 2013 17:55
  • Isso, mas o C# não reconhece esse Response.
    quinta-feira, 19 de setembro de 2013 17:55
  • Acho q o problema é q não estou conseguindo gravar o cookie na máquina.

    Mas este comando o C# não reconhece: Response.Cookies.Add(cookie );

    Será q falta alguma referência?

    O Objeto Request é um Objeto Intrinseco do ASP.NET ele desce da Classe Base PAGE e roda sob o Contexto da Aplicação (HTTPCONTEXT)

    Leonardo Lourenço Silva


    quinta-feira, 19 de setembro de 2013 17:56
  • Desculpe Leonardo, mas continuei na dúvida. Como eu faço para o C# reconhecer este comando Response?
    quinta-feira, 19 de setembro de 2013 17:59
  • Desculpe Leonardo, mas continuei na dúvida. Como eu faço para o C# reconhecer este comando Response?

    Pelo jeito você  não está em uma página se fosse uma página já apareceria SOZINHO, tenta ae

    HttpContext.Current.Response


    Leonardo Lourenço Silva


    quinta-feira, 19 de setembro de 2013 18:01
  • Valeu Leonardo consegui! Só uma última pergunta, eu posso colocar qualquer quantidade de caracteres dentro de um cookie? Tem algum limite?
    quinta-feira, 19 de setembro de 2013 18:10
  • Valeu Leonardo consegui! Só uma última pergunta, eu posso colocar qualquer quantidade de caracteres dentro de um cookie? Tem algum limite?

    Segundo a RFC 2965 (Ela quem define o funcionamento dos Cookies) não deveria ter um tamanho máximo, porém cada navegador implementa o tamanho máximo permitido da forma que achar necessário e que não cause um mal funcionamento...

    Acho que são 4K o padrão dos Browsers...

    Marca como Resposta


    Leonardo Lourenço Silva


    quinta-feira, 19 de setembro de 2013 18:14
  • Vc sabe 4K é mais ou menos o equivalente a quantos caracteres? É bastante?
    quinta-feira, 19 de setembro de 2013 18:35
  • Vc sabe 4K é mais ou menos o equivalente a quantos caracteres? É bastante?

    Sou ruim de conta mas ACHO que é assim a conta 

    4K * 1.024 = 4.096 BYTES

    Cada caracter varia de 1 a 4 bytes dependendo do Encoding, ACHO que UTF é 1 BYTE então cabem 4.096 caracteres


    Leonardo Lourenço Silva


    quinta-feira, 19 de setembro de 2013 18:42