PHP: Site yönlendirilir olduğunda oturum değişken kullanılabilir değil

9 Cevap php

Benim ISV ​​tarafından barındırılan benim mezunlar grubu için küçük bir web sitesi Admin ettik. Url oldukça çirkin ve çok forgetable bir www.myIsv.com/myWebSite/ gibi bir şeydir. Sunucunuzun ana admin etki alanı ismini www.mysmallwebsite.com kayıtlı ve bu içeriğe sahip bir index.html koydu:

<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>

Bu iyi çalışır, ancak PHP Session değişkenleri gibi bazı özellikler artık çalışmıyor! Herkes bu düzeltmek için bir öneri var?

Edit: This doesn't work both on IE and on Firefox (no plugins)

Teşekkürler

9 Cevap

Oturumlar server AND etki bağlı. O bunu yapmak için tasarlanmıştır nasıl adil değil, çünkü etki alanı genelinde çerçeve kümesi kullanılarak kırılma her türlü neden olur.

Kural bir "geçiş yeniden yönlendirme", "proxy" bayrak ([P]) oluşturmak için apache yeniden mod kullanmayı deneyin ihtiyacınız sihirli bayrağı

http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html Dokümantasyon

What do you mean? Are you saying that when you go from www.mysmallwebsite.com to www.myIsv.com/myWebSite/ then the PHP session is lost?

PHP bir kimliği (sunucu üzerinde oluşturulan alfa-sayısal karma) ile oturumu tanır. Kimliği PHPSESSID denilen çerez ya da bunun gibi bir şey (bir web Firebug'ın + FireCookie ve harika Web Developer Toolbar var Firefox üzerinde ... tarayıcınızın yardımıyla ayarlar çerezleri görebilirsiniz kullanarak istemek için istek geçirilir .. . hangi ile) bir ter olmadan çerezlerin listesini görebilirsiniz.

Yani ... PHP PHPSESSID çerezi ile oturum kimliği geçiyor. Ama düz bir GET isteği parametre olarak oturum kimliği iletebilirsiniz.

Eğer (başlatıldı aynı oturumları ile) aynı PHP sunucu olduğunu varsayarak çirkin etki alanı adı html linki, bu nedenle zaman, bu gibi koyabilirsiniz ...

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

Ben bir süre için PHP ile çalıştı değil, ama ben bu işe yarayacak.

Eğer http://www.myIsv.com/myWebSite/ doğrudan isabet eğer oturum değişkenleri işe yarar mı? Bu sunucu geneli oturumları çalışacak olup olmadığını dikte ki bana görünüyor. (Eğer PHP kullanarak konum gibi görünüyorsun, ama belki sen değil) bir şekilde www.mysmallwebsite.com bir oturum başlıyoruz Ancak, bazı backend yazmadan oturum verilerini transfer edebilmek için gitmiyoruz sunucudan sunucuya oturum hareket mantığı.

Senaryonun başında session_start () sopa ve tekrar değişkenleri erişebilirsiniz bakın.

Çünkü istemci oturumları üzerinde çalışan değil başına-etki. Tüm çerezleri mysmallwebsite.com için kaydedilmiş olan, bu yüzden myIsv.com onlara erişemez.

Hangi tarayıcıyı / reklam-on var mı? Bu tarayıcı veya başka bir yazılım (hatta web sunucusu olabilir) onun farklı bir sitede bulunan gibi http://www.myIsv.com/myWebSite/ onun bir XSS saldırısını düşünerek, ile-in çerçevesinden çalışan oturumları engelliyor olabilir .

Oturumu çerçevesi dışarı ile http://www.myIsv.com/myWebSite/ çalışır Eğer yapabilirsen her zaman bize yerine çerçevesini kullanarak çirkin url, için http://www.mysmallwebsite.com bir yönlendirme.

EDIT: I have just tried your frame code on a site of mine that uses sessions, firefox worked fine, with me logging in and staying loged in, but IE7 logged me straight out again.

Eğer (başlatıldı aynı oturumları ile) aynı PHP sunucu olduğunu varsayarak çirkin etki alanı adı html linki, bu nedenle zaman, bu gibi koyabilirsiniz ...

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

Görüş güvenlik açısından, ben gerçekten gerçekten gerçekten işe yaramazsa umut

Ayrıca kullanıcı tarafında bir çerez ayarlamak ve daha sonra dostu URL'ler hakkında rahatsız ediyorsanız eğer sorgu dizesinde bir PHPSESSID etrafında geçmek zorunda değilsiniz demek ki, doğrudan yönlendirme bundan sonra çerez varlığı için kontrol edebilir .

Insanlar arrive@www.mysmallwebsite.com zaman sadece http://www.myIsv.com/myWebSite/ yönlendirmek istiyorum

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

This is all I would have in www.mysmqllwebsite.com/index.php
This way you dont have to worry about browsedr compatibility, or weather the sessions work, just do the redirct, and you'll be good.