Archive

Posts Tagged ‘CodeIgniter’

CodeIgniter: recaptcha.php dokument nema odgovarajući konfiguracioni niz

oktobar 28th, 2013 No comments

Za one koji su naišli na ovaj problem, proverite podešavanje za PHP marker (<? and <?=).
Ukoliko nisu aktivirani, ova greška će se pojaviti jer se oni pominju u reCAPTCHA skriptama.

Izmenite „<?“ u „<?php“ i „<?=“ u „<?php echo“ i sve će biti uredu.
Druga opcija je da u konfiguracionim PHP fajlu dozvolite korišćenje kraćih markera.

Categories: PHP Tags: ,

Preuzimanje naziva kontrolera i metoda u CodeIgniter-u

maj 10th, 2013 No comments

CI poseduje funkcije koje gledaju strukturu linka, iz nje vade naziv kontrolera i njegove funkcije koji su pozvani. U pitanju su funkcije:

$this->router->fetch_class(); // class = controller
$this->router->fetch_method();

Ono što je bitno, ukoliko koristite CI rutiranje, ove dve funkcije će to prepoznati i poslati vam ispravnu verziju putanje. Npr:

Za link:
http://www.prodavnica.com/proizvod/samsung-s3-case/123
Rutiranje vrši preusmeravanje na:
http://www.prodavnica.com/proizvodi/pregled/123/
Ci će bez problema vratiti kao klasu vrednost „proizvodi“ a kao metodu vrednost „pregled“

Za više detalaj o rutiranju posetite originalnu CI stranicu za URI rutiranje.

Categories: PHP Tags: , ,

Rukovanje greškama u Code Igniter-u

januar 7th, 2012 1 comment

Verovatno vam se prilikom programiranja u CodeIgniter-u (CI) dešavalo da ste postavljali „markere“ u vidu echo funkcije i gledali šta će se u određenim situacijam pojaviti. Najveći problem je što ih posle morate i ukloniti.

CI je taj problem rešio na interesantan način kroz rukovaoc greškama. Kompletnu dokumentaciju možete pogledati an lokaciji Error Handling.

Funkcija koja je nama ovom prilikom interesantna je log_message(‘level’, ‘message’). Njena namena je da, u zavisnosti od definisanog nivoa vrši upis u log fajl. Da bi upis mogao da se obavi, potrebno je da /system/logs/ (/application/logs/ za CI v2) folder ima postavljene privilegije za pisanje.

Postoje 3 ponuđena nivoa (prvi parametar):

  • error = 1 – koristi se kada želimo da upišemo poruku o nekoj grešci
  • debug = 2 – koristi se kada želimo da upišemo poruku koja nam pomažu prilikom otkrivanja grešaka (debug mod)
  • info = 3 – koristi se kada želimo da upišemo neku informaciju u log

Drugi parametar je poruka koju želimo da upišemo.

Koje poruke će se upisivati zavisi od podešavanja koje se nalazi u config.php dokumentu pod stavkom $config[‘log_threshold’]. Inicijalna vrednost je 1 (samo greške). Moguće vrednosti su od 0 do 4, pri čemu 0 ne vrši nikakav upis, 4 vrši upis svih poruka, a brojevi između definišu određeni tip (broj uz naziv tima gore naveden).

U dokumentaciji je naglašeno da nije dobro da stoji vrednost veća od 1 jer se log fajl može brzo napuniti, ali to je stvar organizovanja, u svakom slučaju treba obrati pažnju na ovaj detalj jer svaki od log fajlova utiče na prostor koji vaš projekat zauzima na serveru i ako ste prostorno ograničeni (zakupljenim hosting paketom) može nastati problem.

Način definisanja je po mom mišljenju malo nesretno rešen. Isprva sam mislio da su koristili binarno označavanje željenog tipa, ali kada sam video da je info označen sa 3 shvatio sam da nije tako osmišljeno. Jednostavno su tipovima dodeljivali brojeve po redu. Problem se javlja ukoliko bi želeli da, npr. postavite upis error i info tipa. To nije moguće (u binarnom slučaju bi bilo). Tipovi jedan drugi uključuju, pa tako ukoliko definišete da želite upis informacija (3), to automatski znači da upisujete i tipove error i debug. Sti u vezi, ne vidim svrhu postavljanja vrednosti 4 (svi tipovi) pođto je to već sadržano sa 3.

U svakom slučaju, koristan alat prilikom rada na projektima i ne zaboravite da kada završite rad na projektu vrednost postavite na 0, eventualno na inicijalnu vrednost 1 kako bi samo greške bile upisivane.

Categories: PHP Tags: , ,