2016-04-12 17 views
0

benim localhost üzerinde çalışıyorum ve orada çalışan iki uygulamalara sahiptir.Kısıtlama PHP oturum değişkenleri

  1. localhost/apps/app1/
  2. localhost/apps/app2/

uygulamaların her orada kendi giriş modülü kullanıyor olması PHP:

en URL'lerin diyelim Kullanıcının uygulamaya girmesini kısıtlamak/izin vermek için temel oturumlar. Oturum değişkeninin adı aynıdır, yani uid. Ben onu kullanıyorum yoludur:

<?php 
session_start(); 
if(!isset($_SESSION["uid"])) 
    header('location:login/index.php'); 
?> 

Ama Uyg1 oturumu değişken istemiyorum, hangi Uyg2 çalışan ve erişilebilir. Diğer oturum değişkenine müdahale etmemesi için, uygulama1'de oluşturulan oturum değişkeninin erişilebilirliğini nasıl kısıtlayabilirim?

Bu How to restrict a session to a directory only in PHP?'u okudum, ancak bu durum yalnızca bir dizinde olduğu için durumumda çalışmaz. oturumları için

+1

Yalnızca oturum tabanlı bir uygulama özelliği oluşturulamadı, ör. '$ _SESSION ['current_app']' ve uygulama bazında buna karşı kontrol edin. –

+0

Bu gerçekten $ _SESSION değişkenini dizininize kısıtlamakla kalmaz, ancak her zaman $ _SESSION değişkenini böyle kullanabilir ve gerisini kendiniz halledebilirsiniz: $ _SESSION ['apps1'] ['uid']; $ _SESSION ['apps2'] ['uid']; – SamyQc

+0

@DavidWyly Aynı adı kullanamaz ve oturum değişkeninin kapsamını kısıtlayamıyorum? – void

cevap

1

kullanın farklı isimler seçenekleri dizisini (daha fazla bilgi: http://php.net/manual/en/session.configuration.php) kullanarak session_start() çağrılırken, ör .:

// App 1 
session_start(['name' => 'Session1']); 

// App 2 
session_start(['name' => 'Session2']); 

Bu farklı oturum tanımlama adlarında sonuçlanır ve nihayet tamamen ayrılmış oturumlarda.

+0

Aynı adı kullanamaz ve oturum değişkeninin kapsamını kısıtlayamıyorum? – void

+0

Yapamazsınız. Tamamen farklı oturumlara sahip olmak (farklı karma ve farklı çerez isimleriyle), en iyi (ve en güvenli) çözümdür. – Andreas

İlgili konular