v2.5.2
Giriş yap

Aynı kök dizinde hem site hem cms mantıklı mı yada nasıl yapılır.

kartal
290 defa görüntülendi

Normal kullanıcılar için ste dosyaları ve admin için cms var bunlar
aynı kök dizininde olur mu olmaz sa nasıl yapılır.

.proje
...index.page
...urunler
...login
...db
......logindb.php
...iletisim
...CMS
......sayfa1
......başkasayfa

Benim yapım bu şekilde sonradan baktım ki
sessionlar karışıyor tabii bu da ayrı problem.

    //session bilgileri karışmasın diye
    //CMS include header sayfasının başına
    if(!isset($_SESSION)){
    //session_save_path($_SERVER['DOCUMENT_ROOT'].'/cms/sessions');
    
    session_set_cookie_params([
        'lifetime' => 0,
        'path' => '/cms/',
        'domain' => '/'.$site,
        'secure' => false,
        'httponly' => true,
        'samesite' => 'Strict'
    ]);
}
session_name('cms_session');
session_start();
    session_name('cms_session');
    session_start();
    /*
        Ama burada path => '/cms'
        olarak belirleyip
    */
    session_save_path($_SERVER['DOCUMENT_ROOT'].'/cms/sessions');
    //yaptığımda session kayıt oluyor ama cms içinden ulaşamıyorum diğer kök dizinde normal site içinde kullanabiliyorum.
Cevap yaz
Cevaplar (1)
f4kor4ll
642 gün önce

Kısaca, normal sayfaların oturum verilerini kaydetmek için ayrı bir klasör oluşturmanız gerekiyor. Öncelikle normal sayfaların oturum dosyalarını saklamak için ayrı bir klasör oluşturmanız, bu klasörün adı normalpage-sessions olabilir. Bu klasör oluşturulduğunda, PHP oturum kaydı işlevini kullanarak oturum verilerinin yeni klasöre kaydedilmesini sağlayın.
Örnek kod şöyle yazılabilir:

// Normal sayfalara özel bir klasör oluşturarak, oturum dosyalarının bu klasör içinde tutulmasını sağlayın
$normalPageSessionPath = $_SERVER['DOCUMENT_ROOT'] . '/normalpage-sessions';
if(!file_exists($normalPageSessionPath)) {
    mkdir($normalPageSessionPath);
}
session_save_path($normalPageSessionPath);

// CMS için oturum verileri ayrı bir klasöre kaydedilmiş, bu saklanacak
session_name('cms_session');
session_save_path($_SERVER['DOCUMENT_ROOT'].'/cms/sessions');
session_start();

Yukarıdaki kodda, session_save_path işlevi kullanılarak normal sayfaların oturum verileri normalpage-sessions klasörüne kaydedilirken, CMS için ayrı bir klasör (cms/sessions) kullanılır. Böylece, normal sayfalarda açılan oturumlar CMS tarafından açılan oturumlarla karışmaz ve sorun çözülür.