Neden PHP ile giriş-bilgi depolama bir dizi kullanılır?

2 Cevap php

This answer is based on this answer. Cha uses arrays in storing login -info in contrast to my code.

It likely improves the efficiency in searching the login -data and keeps your data organized. However, I am not sure whether this is the best data structure in storing all pieces of the login info.

Benim çözüm her zaman bilgi ihtiyacı olduğunda veritabanından passhash getirir ve daha sonra yerine oturumu için PHP dizi için depolama, kullanımdan sonra destroyes. Ayrıca bağımsız değişkenler olarak tüm değişkenleri tutar. Bu bir betik dili ile veri manipülasyon aksine ağır PostgreSQL kullanır.

Which are the pros and cons of using arrays in PHP for storing login data?

[Değiştir]

Ben veritabanından veri alma anda aşağıdaki kodu kullanabilirsiniz.

 $result = pg_prepare($dbconn, "query22", "SELECT passhash_md5 FROM users
         WHERE email=$1;");                                                                                                                      
 $passhash_md5 = pg_execute($dbconn, "query22", array($_REQUEST['email']));

Bu yüzden daha iyi yapmak için PDO için değiştirilmesi gerekir. Studying that.

2 Cevap

Bu sadece bir tercih meselesi, gerçekten önemli değil idi. Olası bir kullanım olsa da, Namespacing bir tür. Eğer bir sayfada iki form var düşünün: giriş ve kayıt. Açıkçası, en azından, bu formların her ikisi de bir kullanıcı adı ve parola alanı olurdu. Ikisi arasında ayrım yapmak, adlandırılmış tarlalar kayıt [kullanıcı adı] ve giriş [kullanıcı adı] (şifre ile aynen), hangi hangi söyleyebilirdi bu şekilde olabilir.

Ayrıca, diğer söz SQL sorgusu kullanmayın lütfen. Eğer TÜM kullanıcı tablo birisi her oturum açtığında dönen farkında mısın? Sitenizde 100.000 kullanıcı alırsanız ne olur düşünün .. sizin giriş dakika alacağını ve veritabanı diz çöktürdü olacaktır. Ben bu mücadelede önce bazı temel sql öğrenmek gerektiğini düşünüyorum.

Ayrıca, PDO yerine prosedürel veritabanı fonksiyonları kullanarak içine bakmak. PDO kolay, temiz ve bazı durumlarda daha hızlı olabilir.

Oturum tabanlı bir giriş sistemi kullanılarak veri tutma Artıları çok zor veritabanı vurmak olmadığı gerçektir. Eğer veritabanı ve bir tabloya bağlanmak gibi veritabanları, tek bir varlık vardır. Bunu yaparken milyonlarca sayfa varsa, işler zor alabilirsiniz.

Öte yandan, bir oturum dizide şeyler saklamak, sen her biri kendi ayrı varlık olan küçük bir sürü dosya var, ve her biri sadece belirli ziyaretçi tarafından bir kez sayfa görünümünde başı erişilir.

Oturum dosyaları da daha küçük ve her şey kapmak için daha kolaydır. Bir veritabanında, (Kullanıcıların bir sürü varsa) kayıtları bir çok arama ve belirli bir kaydı bulmak zorunda. Buna karşılık, oturumları sadece bu özel oturumu için belirli bir dosyaya veri kapmak.


Ryeguy ekledi ne oluyor. Ben son derece tavsiye against, her kayıt seçin ve ardından doğru kullanıcıyı bulmak için içlerinden bir while döngü yapıyor olurdu. Ben Where tablosuna bakmak öneririm, böylece veritabanı size sadece kullanıcının kullanıcı adı ile eşleşen kaydı vermek olabilir.