Pergunta

Eu a administração de um pequeno site para o meu grupo de alumni, que é hospedado pelo meu ISV.O url é algo como www.myIsv.com/myWebSite/ o que é muito feio e muito forgetable.O principal administrador do servidor tem um nome de domínio registado www.mysmallwebsite.com e colocar um index.html com este conteúdo:

<html>
<head>
<title>www.mysmallwebsite.com</title>
</head>

<frameset>
   <frame src="http://www.myIsv.com/myWebSite/" name="redir">
      <noframes>
        <p>Original location:
          <a href="www.myIsv.com/myWebSite/">http://www.myIsv.com/myWebSite/</a>
        </p>
      </noframes>
 </frameset>  
</html>

Ele funciona bem, mas alguns recursos como PHP variáveis de Sessão não funciona mais!Alguém tem uma sugestão para corrigir isso?

Editar:Isso não funciona tanto no IE e no Firefox (sem plugins)

Obrigado

Foi útil?

Solução

As sessões são vinculados ao servidor E o domínio.Usando quadros em domínio irá causar todo o tipo de quebra porque é não apenas como ele foi projetado para fazer.

Tente usar o mod rewrite do apache para criar uma "passagem redirecionamento", o "proxy"bandeira ([P]), em que a regra é a magia sinalizador de que você precisa

Documentação em http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html

Outras dicas

O que você quer dizer?Você está dizendo que quando você vai partir www.mysmallwebsite.com para www.myIsv.com/myWebSite/ em seguida, a sessão PHP está perdido?

PHP reconhece a sessão com um ID (alfa-numérico de hash gerado no servidor).O ID é passado de pedido para pedido utilizando um cookie chamado PHPSESSID ou algo assim (você pode ler os cookies de um site com a ajuda do seu navegador da ...no Firefox você tem Firebug + FireCookie e o maravilhoso Web Developer Toolbar ...com o qual você pode ver a lista de cookies sem suor).

Então ...O PHP está passando o ID de sessão através do PHPSESSID cookie.Mas você pode passar o ID de sessão como um simples OBTER os parâmetros de solicitação.

Então, quando você colocar o link em html para o feio nome de domínio, assumindo que ele é o mesmo PHP server (com o mesmo sessões inicializado), você pode colocá-lo como este ...

www.myIsv.com/myWebSite/?PHPSESSID=<?=session_id()?>

Eu não trabalho com PHP por um tempo, mas eu acho que isso vai funcionar.

Faça variáveis de sessão de trabalho se você bater http://www.myIsv.com/myWebSite/ diretamente?Parece-me que a configuração do servidor iria ditar se ou não as sessões de trabalho.No entanto, se você está começando uma sessão em www.mysmallwebsite.com de alguma forma (não parece que você está usando o PHP, mas talvez você), você não vai ser capaz de sessão de transferência de dados sem escrever algumas back-end lógica que move a sessão de servidor para servidor.

Vara de um session_start() no início do seu script e ver se você pode acessar as variáveis de novo.

Ele não está funcionando porque as sessões de cliente são por domínio.Todos os cookies estão sendo salvos, para mysmallwebsite.com, então myIsv.com não é possível acessá-los.

@pix0r www.myIsv.com/myWebSite/ -> variável de sessão de trabalho www.mysmallwebsite.com -> variável de sessão não funciona

@Alexandru Infelizmente, isso não é no mesmo servidor web

O navegador/ ad-on você tem?pode ser o seu navegador ou de algum outro software (pode ser até mesmo o servidor web) está bloqueando as sessões de http://www.myIsv.com/myWebSite/ trabalhar a partir de com-no quadro, já que encontra-se em um site diferente, o pensamento é um ataque XSS.

Se a sessão de trabalhos no http://www.myIsv.com/myWebSite/ com o quadro que você poderia sempre nos um redirecionamento a partir de http://www.mysmallwebsite.com para o url feio, em vez de utilizar o quadro.

EDITAR:Eu apenas tentei o seu quadro de código em um site meu que usa sessões, firefox funcionou bem, comigo login e ficar loged, mas IE7 registradas-me para fora em linha reta novamente.

Então, quando você colocar o link em html para o feio nome de domínio, assumindo que ele é o mesmo PHP server (com o mesmo sessões inicializado), você pode colocá-lo como este ...

www.myIsv.com/myWebSite/?PHPSESSID=<?=session_id()?>

A partir de um ponto de vista de segurança, eu realmente espero que não funciona

Você também pode definir um cookie no lado do usuário, e, em seguida, verificar a presença de cookie diretamente após o redirecionamento que se você está preocupado com URLs amigáveis significa que você não precisa passar um PHPSESSID na seqüência de caracteres de consulta.

Quando as pessoas chegam @ www.mysmallwebsite.com eu simplesmente redirecionar para http://www.myIsv.com/myWebSite/

<?php header('Location: http://www.myIsv.com/myWebSite/'); ?>

Isso é tudo o que eu teria em www.mysmqllwebsite.com/index.php
Desta forma, você não terá de se preocupar com browsedr de compatibilidade, ou o tempo das sessões de trabalho, basta fazer o redirct, e você vai ser bom.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top