Benim uygulamanın sayfaların her biri çağırdı kod ilk satırı, bir:
<?php require_once('../../_includes/initialize.php'); ?>
Bu dosya SESSION
dahil benim sınıfları, çağırır. Şeyden önce SESSION
class aramalar session_start()
tarayıcıya çıktı.
Tek sayfada tüm adıyla, onay kutularını bir ton olan bir form kullanıyorum photo_select
. Ben 15 gruplar halinde fotoğrafları bölmek ve sonra sayfalandırmada üstünde girişlerini göndermek vardır.
Amacım bir kullanıcı yeni bir sayfaya geçer zaman $_POST
vars yakalamak ve onları takip etmektir. Karmaşık tek seçilen herhangi bir onay kutularını ve (ben her fotoğraf kimliği kurdum) değerlerinin bir dizi tutar photo_select
denilen onay kutusunu dizidir.
Pagination bir gönderme düğmeleri her zaman tıklandığında, ben teslim onay kutusunu dizi çekmek ve seçilen tüm fotoğrafları izlemek, böylece array_merge
önce seçilen onay kutularını kaydedilmiş dizi ile birleştirmek için kullanmak gerekir tüm sayfaları.
Ben doğrusu veritabanı sorgulama kaydetmek için bir geçici veritabanına göndermek istemem. Bir $_SESSION
değişkene seçimleri çalışan dizi tutmak için hafif bir performans artışı olur.
Bu test etmek için, aşağıdaki kodu var:
if( isset( $_POST['page'] ) ) {
// Picking up the form data and assigning it to variables
... variables
$photos = $_POST['photo-select'];
$_SESSION['photo_holder'] = $photos;
}
echo isset($_SESSION['photo_holder']) ? 'true' : 'false';
SOLUTION:
change line:
$_SESSION['photo_holder'] = $photos;
to:
if(isset($_POST['photo-select']) && !empty($_POST['photo-select'])) { $_SESSION['photo_holder'] = $photos; }
Ben 3 fotoğrafları seçin ve başka bir sayfaya tıklayın, örneğin, doğru olarak geri geliyor (ve $ _SESSION değişkeni mağazalar 3 fotoğraf kimlikleri bir dizi). Hangi mükemmel.
Artık yeni sayfada fotoğrafları tıklatın ve başka bir sayfaya taşımak yoksa Ama sonra, bu gibi sahte geri geliyor - yani $ _SESSION değişkeni silinmiştir.
Sooooooooo ***
Why oh why would the $_SESSION variable not persist?