2010-08-01 21 views
6

Kullanıcıları depolamak için oluşturduğum bir yapılandırma dosyasıyla çalışıyorum. Bu kesinlikle yapılandırmaların ne için kullanılması gerektiği değildi, ama son derece küçük bir uygulama ve bunun güzel bir çözüm olacağını düşünüyorum.Codeigniter'da yapılandırmak için bir dizi yazınız mı?

My dizi şöyle görünür: Bu iyi çalışıyor

$config['users'] = array(array('username' => 'username', 'password' => 'password')); 

. Bilgileri hızlı ve kolay bir şekilde alabilirim. Ben yapılandırma dosyasına yeni bir dizi (yeni kullanıcı) yazmaya çalışırsanız AMA, bu hatayı alıyorum: Yasadışı yılında türünü ofset isset yoksa diziler desteklemek için görünmüyor $this->config->item('users', array('username' =>....)) kullanıyorum

boş.

Dizilimimi yapılandırma değişkenime nasıl yazabilirim? Başka bir yolu var mı?

DÜZENLEME: Tamam, hata, phirschy tarafından verilen cevap sayesinde giderildi. Kafamda, config-> set_item() için kılavuzu kontrol etmediğim config-> item() öğesini kullanabileceğimden çok emindim ... Ama yine de işe yaramıyor. İşte spesifik kodudur:

 $users = $this->config->item('users'); 
     array_push($users, array('username' => $this->input->post('username'), 'password' => $this->input->post('password'))); 
     $this->config->set_item('users', json_encode($users)); 
     echo json_encode($users); 

Bu kod Ajax yoluyla denilen ve bunu değerlerin doğru olup olmadığını görmek için bir uyarı kutusu var olduğunu. Onlar. Ve görebildiğiniz gibi, onu dizi yerine json olarak depolamayı denedim .... ama bu da işe yaramıyor. Yardım lütfen?

$this->config->set_item('item_name', 'item_value'); 

Senin durumunda:

$this->config->set_item('users', array(...)); 
+3

. Güvenlik, boyuttan çok daha büyük bir endişe. Bununla birlikte, bunun için bir config dosyası kullanmak istiyorsanız, sadece parolaları düz metin olarak saklamadığınızdan ve config dosyanızda uygun izinler ayarladığınızdan emin olun. – BoltClock

+0

Merak etme, endişelenme. :) Ayrıca kısmen bunun nasıl farklı bir şekilde yapılacağı hakkında hiçbir fikrim yok. Bunu MySQL ile yapabilirim, ama daha önce hiç dosya depolama ile çalışmamıştım ve bir db'yi dahil etmek istemiyorum. –

cevap

5

teşekkür ederim soru, ama benzer bir soru vardı. Yani: Başka bir şey yanlış olduğunu size tüyo ilk şey olmalıydı

And as you can see, I've tried storing it as json instead of array as well.... but that doesn't work either.

- JSON sadece bir dizedir. Bunu saklayamazsan, başka bir şey yanlıştı. Gerçekten de kodunuz kafa karıştırıcı ve biraz şüpheli, JSON (dizge) saklıyorsunuz, ancak bir dizi gibi (her yerde json_decode olmasa da) erişiyorsunuz.

Neyse, basit bir test öneririm: Ben kesin bir cevap soruyla gördükten sonra kendim bu çalışıyor sona erdi

$this->config->set_item('the_array', array("I'm", "an", "array")); 
echo 'The config array: '.print_r($this->config->item('the_array'), true); 

- CodeIgniter 1.7 de çalışıyor. Yani cevap, evet, dizileri yapılandırma öğeleri olarak saklayabilir. JSON kodlaması gerekmez. Başvurunuzun kapsamı, hala kullanıcı adı ve şifreleri saklamak için bir yapılandırma dosyası kullanarak karşı tavsiye ediyorum ne olursa olsun

Alkış

+0

Fonksiyon hakkında haklıydınız, yanlış hatırlattım.Ama yine de çalışmıyor (soruya daha fazla ayrıntı ekledim). –

0

Eski

Bir yapılandırma öğesi değil, 'öğesini' 'yazacak set_item' yöntemini kullanmak zorunda

İlgili konular