2011-07-18 16 views

cevap

26

if(! $this->session->userdata('user_id')) ile ilk if deyimini değiştirin.

empty işlevi, bir değişkenin boş olup olmadığını kontrol eder ancak userdata bir işlevdir. Ayrıca, CodeIgniter documentation numaralı öğeye göre, öğeniz yoksaişlevi FALSE değerini döndürür; bu, oturumunuzda user_id yoksa, else kodunun çalıştırılacağı anlamına gelir.

+0

Teşekkür ederim. Hata çok belirsiz, ne anlama geldiğinden emin değildim. – yaz

+0

Güzel gerekçe - "userdata bir işlevdir". Bu bir başlangıç ​​ihtiyacının açıklamasıdır. Teşekkürler! – itsols

2

İşlev boş() bu şekilde kullanılamaz. Referans argümanı bekler, ancak doğrudan fonksiyon dönüşü değildir. Bir işlev dönüşü, başvuruyla iletilebilen bir değişken olarak kabul edilmez.

$test = $this->session->userdata('user_id'); 

if(!empty($test)) 
    $user_id = $test; 
else 
    $error = "ID doesn't exist"; 
5

o zaman CodeIgniter bunu sizin için zaten yapar verilerinizi kontrol etmek gerekmez CodeIgniter'da oturumları kütüphanesini kullanıyorsanız. $this -> session -> userdata('user_id') boşsa veya ayarlanmamışsa, yanlış olarak döndürülür. O

$user_id = $this->session->userdata('user_id'); 
if(!$user_id){ }else{ $error = 'ID doesn't exist'; } 
0

if(($this -> session -> userdata('user_id') > 0)

gibi Dolayısıyla, sadece bir kod şey olduğunu daha iyi yerine if ($ this -!> oturumu -> userdata ('user_id'))

bazen olacak çünkü hata yap

İlgili konular