|
Väike jupike tehtud codeigniteriga, ütleme et aadressile http://example.com/ci/index.php/mycontroller/ Kuidas oleks kõige lihtsam example.com/index.php failis teha include('ci/index.php/mycontroller')? example.com ei jookse CI peal. |
|
Kuna mul ei õnnestunud controlleri funktsioone otse välja kutsuda, osutus kõige lihtsamaks jQueriga see asi ilusti lehele laadida:
|
|
Esiteks võid proovida include('http://example.com/ci/index.php/mycontroller/') -- NB! Kommentaaris olnud näites puudus Sul http:// prefiks. Kui see ei tööta, siis kontrolli kas allow_url_fopen on lubatud php.ini-s (või .htaccessis). Seda saad kontrollida phpinfo() funktsiooniga. Kui mingil põhjusel on allow_url_fopen keelatud ja selle lubamine pole võimalik nt virtuaalserveri tõttu, siis võib proovida ka Apache sub-requesti virtual() funktsiooniga. Ma kujutan ette, et seda kutsutakse välja umbes niimoodi: virtual('/ci/index.php/mycontroller/'). Sorry, ise ei ole proovinud, aga ilmselt katsetaksin, kui oleksin hädas. NB! Töötab ainult siis, kui PHP on installitud Apache moodulina. Ja lõpuks kõige parem variant on arvatavasti otse mycontrolleri index() meetodit PHP-s välja kutsuda. Ma loodan, et Codeigniter suudab ise jooksu pealt kõik oma sõltuvused includeda. http:// on puudu seepärast, et uuel kasutajal ei lubata üle ühe lingi lisada... :) Muidu otse include'i teha URL'ile ei saanud (serveri seadetes nagu lubatud, aga järsku suhoshin vms blokib), pealegi see oleks üpriski kole/ebaturvaline lahendus. Proovisin ka teha include ci/system/application/controllers/mycontroller.php ja siis kohe pärast seda kutsuda välja index(), aga leht jäi selle koha pealt lihtsalt laadimata. Ühtegi errorit pole (ka logides mitte). Kõige lihtsam oleks see asi vist javascriptiga või iframe'iga laadida?
(Dec 01 '09 at 22:15)
Indrek 1
|


Mida sa juba proovinud oled?
No see otsene include ei tööta ja include('http://example.com/ci/index.php/mycontroller/') ka ei toimi.