Codeigniter включают общий файл в поле зрения

Привет всем, у меня есть сайт, разработанный в codeigniter, и я хочу хранить в файле common.php некоторую функцию javascript/PHP, которую я использую на многих страницах. Я пробовал в этом режиме:

require(base_url().'application/libraries/common.php'); //I have tried also include

Это возвращает мне эту ошибку:

A PHP Error was encountered

Severity: Warning

Message: require() [function.require]: http:// wrapper is disabled in the server configuration by allow_url_include=0

Я иду на свой php.ini, и я включаю Allow_url_include, перезапускаю apache, и когда я пытаюсь загрузить страницу, верните мне эту ошибку:

A PHP Error was encountered

Severity: Warning

Message: require() [function.require]: http:// wrapper is disabled in the server configuration by allow_url_include=0

Filename: backend/hotel_view.php

Line Number: 6

A PHP Error was encountered

Severity: Warning

Message: require(http://demo.webanddesign.it/public/klikkahotel.com/application/libraries/common.php) [function.require]: failed to open stream: no suitable wrapper could be found

Filename: backend/hotel_view.php

Line Number: 6


Fatal error: require() [function.require]: Failed opening required 'http://demo.webanddesign.it/public/klikkahotel.com/application/libraries/common.php' (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/public/klikkahotel.com/application/views/backend/hotel_view.php on line 6

Что я могу сделать, чтобы включить простой файл на мои страницы?

Ответ 1

Потяните его в зависимости от того, какие вы хотите использовать $this->load->view('common'); Вы можете включить другие представления из контроллера или представления.

Пример 1

your_controller.php

public function index() {
   $this->load->view('homepage');
}

вид/homepage.php

<?php
$this->load->view('common');
?>

<body>
  <!-- html -->
</body>

Пример 2

your_controller.php

public function index() {
  $this->load->view('common');
  $this->load->view('homepage');
}

Ответ 2

Вы должны использовать APPPATH или BASEPATH или просто введите полный путь к файлу.

Для безопасности require_once должен быть передан локальный файл, а не URL. Я бы не предложил использовать require_once() в CodeIgniter. Лучше использовать:

$this -> load -> view('common_file');

Ответ 3

Как сделать глобальные функции в CodeIgnitor

Чтобы создать глобальные функции, определите их в CodeIgnitor Helper и автонагрузка их. Вот как:

Создайте своего помощника

Чтобы создать [помощники] [2], создайте файл .php в папке application/helpers/ и сохраните там свои функции.

Примечание. Рекомендуется использовать следующий формат, чтобы избежать конфликтов имен функций:

if ( ! function_exists('my_function_name'))
{
    function my_function_name($arg)
    {
        /* Your code here */

    }
}

Создание Them Global

Если вы используете эти функции все время (Global), автоматически загружайте их.

  • Откройте файл: /config/autoload.php
  • Найдите раздел $autoload['helper'] = array();
  • Добавьте имя вашего вспомогательного файла (за исключением расширения the.php).

Например, если вы создали вспомогательный файл с именем myhelper.php, он должен выглядеть примерно так:

$autoload['helper'] = array('myhelper');

Использование глобальных функций

Теперь ваши функции будут доступны на всем сайте. Просто назовите их оптом:

my_sample_function('argument');

Ответ 4

  • base_url() ссылается на веб-путь, например http://localhost/myproject/. Вы не можете включить удаленный файл, на самом деле вы не должны. Это риск для безопасности. См. Невозможно включить файл на удаленном сервере

  • Создание пользовательской библиотеки - хороший выбор, и если вы ее много используете на своем веб-сайте, вы можете включить его в application/config/autoload.php в разделе $autoload['libraries']. Он будет автоматически загружаться при каждом повторном загрузке приложения/веб-сайта на основе codeigniter. Пример: $autoload['libraries'] = array('common');, если ваша библиотека называется common.php и находится в application/libraries/

  • НЕ помещать функции в программу просмотра, поэтому библиотеки и помощники существуют. Зритель должен содержать только то, что должен видеть пользователь. Пример: представление представляет собой некоторую форму визуализации модели.

Ответ 5

Вы должны использовать APPPATH или BASEPATH или просто ввести полный путь к файлу. require_once(APPPATH.'libraries/common.php');

Ответ 6

Для более эффективного решения этой проблемы я сделал это:

Вы создаете нового помощника (в приложении/помощниках) с именем (es. common_helpers.php, подчеркивание важно). В этом файле вы помещаете все функции, например, сборки элементов html.

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

    function getHead(){
    require_once(APPPATH."views/common/head.php");
    }   

    function getScripts(){
    require_once(APPPATH."views/common/scripts.php");
    }

    function getFooter(){
    require_once(APPPATH."views/common/footer.php");
    }

В вашем контроллере вы вызываете только одно представление в отношении MVC и вызываете функции из своего пользовательского помощника.

class Hello extends CI_Controller {

   public function index(){
       $this->load->helper('common');
       $this->load->view('index');   
   }

}

Ответ 7

Вы можете включить любое программное обеспечение, используя

<?php $this->load->view('file'); ?>

Ответ 8

Вы можете написать php-функцию в вспомогательном файле шаги - создать вспомогательное имя файла common_helper внутри application/helper папки     - и создайте такую ​​функцию, как

    function getBoosters($id){
        $ci=& get_instance();
        $ci->load->database(); 

        $sql = "select * from boosters where id ='".$id."' "; 
        $query = $ci->db->query($sql);
        return $query->result();
   }

Эта общая функция, которую вы можете использовать, когда вы хотите загрузить этот помощник.

Предположим, что вы хотите использовать этот метод в FrontController, просто загрузите помощника по этой строке

$this->load->helper('common');

Теперь вы можете вызвать метод. Добавьте код js в footer.php, все функции доступны на каждой странице, которую вы можете легко использовать.