Sessions olmadan PHP Mağazası Kullanıcı Verileri

3 Cevap php

Böyle adınız, e-posta, vb onlar giriş yaptıktan sonra, bir web sitesinin tüm sayfalarından erişilebilir olması, ancak oturumları veya çerezleri kullanmadan olarak saklamak kullanıcıların veri için yine de var mı?

Örneğin:

class User
{
  var $userid;
  var $username;
  var $email;

  .. methods..
}

onlar login.php olarak giriş yaptıktan sonra

$currentUser = new User($_POST['username'])

Şimdi, nasıl gibi başka bir sayfadan $ CurrentUser, erişim yok index.php Ben hiç oturumları veya kurabiye kullanmak gerekir?

Ben aşağıdaki yapabileceğini böylece index.php:

if ($currentUser->userid > -1)
{
  echo "you are logged in as: " . $currentUser->username;
}
else
{
  echo "click here to login";
}

i here, daha önce benzer bir soru sordu, ama cevaplar benim ihtiyaçlarını karşılamak vermedi.

3 Cevap

OOP açısından over-the-top gung-ho konum ve doğrudan oturumları / kurabiye ile etkileşime reddediyorum, ben şiddetle sadece yerine onları yeniliyor seans saklanması öneririm. Bu kadar basit bir şey bile:

//oopsess.php
<?php
    class Session{
        ...
    }

    session_start();

    function getSession(){
        //return the session if one exists
        if (isset($_SESSION['sessionObject']))
            return $_SESSION['sessionObject'];

        //otherwise save and return a new one
        $_SESSION['sessionObject']=new Session();
        return $_SESSION['sessionObject'];
    }
?>

Kolayca adapte veri clientside saklamak istiyorsanız, - bir tanımlama - yerine sadece session id istemci tarafında saklamak (bu ne olduğu).

Düzenleme: Kod hepsi çok cepten eğer Ayrıca, OOP getirmedi kenara alay, bu aslında temiz kodunuzu tutmak için gerçekten iyi bir yoldur - Yukarıda ima olarak cepten-aç istek karşılamak için bir yol değil sadece ;)

Bu itiraf, biraz zoraki bulunuyor:

Edit: Site bu gün, onlar tekrar online yarın olacak popüler gibi görünüyor. Temelde, çalışmanın yalnız tarayıcılar onların vis-à-vis parmak izi gibi verileri sağlamak mümkün olduğunu söylüyor.

Sev Said "One idea to consider which I've seen done before is storing a session id as a cookie and keeping the session in your db. The cool thing about doing that is it allows admin full and easy control over sessions. Plus you can implement neat things like gmail's "log out other sessions" feature. Food for thought :)"

Bunu yapmak ve o inşaat büyük Sadece bir not.