Viva, eis um problema que me deparei recentemente e tive de resolver da maneira que achei menos própria visto não ter encontrado outra solução por mim mesmo ou recorrendo a busca na internet.
Actualmente temos um script de php que serve de "proxy" entre o domínio de um projecto e o domínio onde alojamos os serviços utilizados por este. "Client side" são feitos pedidos de serviços a este script que por sua vez por intermédio de fsock executa o pedido no domínio de serviços, uma vez recebida a resposta esta e então apresentada ao "Client". Depois de muito "trial and error" afinamos esta "proxy" para lidar tanto com GET como com POST. O problema surgiu quando tivemos de replicar cookies, mais exactamente quando a resposta a um serviço gera um cookie e na "Proxy" tento replicar esse mesmo cookie para o "Client". A primeira vista seria simples, bastaria que ao analisar o "header" da resposta do servico quando encontra-se linhas do tipo "set-cookie" bata-se injectar essa mesma linha no header para o "Client" via comando "header()" do php. Eis que subitamente reparo que quando faço isso apenas o ultimo cookie gerado dessa forma prevalece na resposta ao "Client". Depois de muito ler sobre o assunto conclui que se trata de um "Bug" no php que tanto quanto consegui apurar se deve ao facto do header nao ser verdadeiramente enviado para o client a cada chamada do comando "header()" mas sim durante o primeiro output real, por exemplo num echo, print etc... assim sendo assumi que quando usamos o comando "header()" este regista "propriedades" designadas pela parte direita da string antes do ":" numa espécie de buffer fazendo com que ´so possa existir uma e uma só propriedade "set-cookie" no registo do header que será então enviado ao client. Este problema acabou por ser resolvido por intermédio do comando "setcookie" que ao contrario do "header" não aceita valores string mas sim varias propriedades que definem o cookie o que me obrigou a interpretar a string original e converter uma data formatada em timestamp ( que foi por si só uma dor de cabeça). Embora tenha resolvido o problema ainda não estou 100% convencido que não exista uma forma de utilizar o comando "header()" para o mesmo propósito com uma fracção dos problemas. Será que existe alguma forma de adicionar varias propriedades "set-cookie" ao head buffer que vai ser enviado ao client que não tenha descoberto? será que e possível fazer vários envios desse buffer permitindo assim definir varias vezes a mesma propriedade? PS: weeee tive 10 minutos para participar, só espero não ser um tema demasiado excêntrico para o habitual he he he --~--~---------~--~----~------------~-------~--~----~ Recebeu esta mensagem porque está inscrito em Grupo "Mailing List da Comunidade Portuguesa de Rich Internet Applications - www.riapt.org" do Grupos Google. Para enviar mensagens para este grupo, envie um email para [email protected] Para anular a inscrição neste grupo, envie um email para [email protected] Para mais opções, visite este grupo em http://groups.google.com/group/riapt?hl=pt-PT -~----------~----~----~----~------~----~------~--~---
