Birden çok üzerinde PHP statik değişkenler. Php sayfaları

3 Cevap php

I am building a POP3 mailbox in PHP. I have the following files:

  • server_access.php (POP3 sunucusundan postaları getir)
  • data_access.php (getirir ki yerel / DB posta yazıyor)
  • mime_parser.php (MIME içerik ayrıştırır)
  • core.php (dosya ve depolar üzerinde kullanımları $ kutusu olarak adlandırılan bir doç dizi olarak mail çözümlü)

Şimdi, gelen kutusunu göstermek ve her postayı görüntülemek showmail.php için pages mailbox.php var. Kullanıcının kimlik bilgilerini bir. Ini dosyasında saklanır ve gerekli olarak kullanılır. Şey hem mailbox.php ve showmail.php bir require_once ('core.php') yapmak olduğunu

I bir mail (showmail.php arasında pop-up pencere) okumak için seçerseniz ben kutunuzu (yani $ gelen değerlere sahip) görüntülemek mümkün duyuyorum, ancak, $ gelen boş bir dizidir.

$ Gelen core.php statik bir dizi olarak tanımlamak edilir

3 Cevap

Statik veri o sınıfın tüm örnekleri tarafından paylaşılan bir sınıfta bir statik veri üyesi, yani bir sınıfın kapsamında sadece statik.

Ne diyorsun gibi görünüyor birden çok HTTP istekleri arasında kalıcı veridir. Statik veri sizin için yapmayacağım. Yani $ _SESSION veri için budur.

Bir başka deyişle: Bir komut geçerli istek hizmet tamamlandıktan sonra, tamamen ölür. Tüm veriler tamamen temizlenir vardı edilir. Yeni istek taze başlar.

PHP bunu temizlemek için karar da bunu manuel olarak imha kadar oturum verilerini devam. Genellikle oturum verilerini kullanmak için yapmanız gereken tek şey komut konur:

Script 1: mailbox.php

session_start();
$_SESSION['mailbox'] = array( /* messages */ );

Script 2: showmail.php

session_start();
$mailbox = $_SESSION['mailbox'];

Unutulmaması gereken bir şey: script uzun soluklu denemek ve kısa sürede bir session_commit () koyarsanız başka bir komut dosyası aynı kullanıcı için () session_start çalışırsa anlam PHP oturum erişimi engeller, bu engeller çünkü ilk kadar komut oturumu yürütme veya bültenleri tamamlanır.

php Sessions istekleri arasında oturum verilerini saklamak için bir yere ihtiyacı vardır. Senin durumunda bu ev dizininde bir temp \ php \ session \ klasörüdür. Bu klasörü oluşturmak veya geçerli bir dizine işaret etmek için php.ini içinde session.save_path değiştirmek ya.

Lütfen core dosya mailbox.php için doğru veri sağlar, fakat bir şeyle ilgilidir showmail.php değilse sen (ya da değil) showmail.php yapıyor.