PHP Session Değişkenleri - kaybolur ve yeniden

3 Cevap

Ben bütün üstbilgi, altbilgi ve ortak bilgileri içeren bir şablon dosyası var. Bu geçerli sayfa (iki adımlı görünüm desen) için uygun içerik içermektedir.

PHP Session değişkenleri kullanarak bir giriş sistemi kurmak için çalışıyorum. Ben değişkeni ayarlayabilirsiniz ve bazen çalışır ama bazen kaybolur. Linkleri tıklayarak bazen geri gelip yapacak.

My site

Giriniz

username: test password: test

var_dumps ve session_id ve $_SESSION üstünde bulunmaktadır.

Ana tıklayın. Oturum değişkenleri kaybolur eğer oturum bilgileri geri gelmek görmek (10 kadar kat alabilir) ev tıklayınız. Diğer navigasyon tıklayın ve bazen oturum bilgileri yapışır ve bazen de vermez.

İşte benim şablon dosyasının üstündeki oturumu kodudur.

<?php
session_start();

require './classes/DBInterface.php';
$db = new DBInterface();

if($_REQUEST['submit']  ==	'Login') {
    $username=$_POST['username'];
    $password=$_POST['password'];

    echo '-- login -- '.$username;
    $rs = $db->verify($username,$password,"admin",0);
    $admin = $rs->current();
    if ($rs->valid()) {
    	$_SESSION['username'] =	$username;
    }
}

echo ' -- session id -- ';
var_dump(session_id());
echo ' -- session var -- ';
var_dump($_SESSION);

Ben PHP5 kullanıyorum.

3 Cevap

Eğer StartLogic kullanıyorsanız (? Sen gibi) barındırma için, sen onların SSS dediklerini yapmaya çalıştım: http://www.startlogic.com/knowledgebase/read_article.bml?kbid=600

Onlar bu işaret:

To run PHP sessions, include the following code at the top of any PHP script that uses sessions: session_save_path("your home directory path"/cgi-bin/tmp); session_start();

Maybe this'll help ? Especially if they are using some kind of load balancer, which balances /tmp, but not your home directory ?

Bir yük dengeli kurulum kullanıyorsanız, sadece 1 N sunucularının doğru oturum-veri var ki olabilir.

By default session-data is stored on the filesystem.
Per session a file is stored in /tmp/ and starts with "sess" followed by the session_id

Hiçbir şey bundan önce orada hiç denir değil kesinlikle pozitif mi? I session_start () başlıklarını değiştirir biliyorum ve bunun dışında, tabii bu neden çalışmıyor değil.

Devam edin ve sağ session_start () çağrısından önce, yazısının üstündeki hata raporlama açmak, ve bu izini nasıl yardımcı bakın:

error_reporting(E_ALL ^ E_NOTICE);
ini_set('display_errors',1);
session_start()