it-swarm.com.de

codeigniter-Include-Datei in der Ansicht

Hallo zusammen, ich habe eine in codeigniter entwickelte Site und möchte JavaScript-PHP/PHP-Dateien in einer Datei namens common.php speichern, die ich auf vielen Seiten benutze ... Ich habe in diesem Modus versucht:

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

Dies gibt mir diesen Fehler zurück:

A PHP Error was encountered

Severity: Warning

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

Ich gehe zu meiner php.ini und schalte "allow_url_include" ein, starte Apache neu und wenn ich versuche, die Seite zu laden, gib mir jetzt diese Fehlermeldung zurück:

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

Was kann ich tun, um eine einfache Datei in meine Seiten aufzunehmen?

15

Ziehen Sie es mit $this->load->view('common'); in die gewünschten Ansichten. Sie können andere Ansichten entweder über den Controller oder die Ansicht einfügen.

Beispiel 1

ihre_controller.php

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

ansichten/homepage.php

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

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

Beispiel 2

ihre_controller.php

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

Sie sollten APPPATH oder BASEPATH verwenden oder einfach den vollständigen Pfad zur Datei eingeben.

Aus Sicherheitsgründen sollte require_once eine lokale Datei und keine URL übergeben werden. Ich würde nicht wirklich vorschlagen, require_once() in CodeIgniter zu verwenden. Es könnte besser sein, zu verwenden:

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

2
ajtrichards

So erstellen Sie globale Funktionen in CodeIgnitor

Um globale Funktionen zu erstellen, definieren Sie sie in CodeIgnitor Helper Dateien und automatischem Laden sie. Hier ist wie:

Erstellen Sie Ihren Helfer

Erstellen Sie zum Erstellen von [helpers] [2] eine .php-Datei im Ordner application/helpers/ Und speichern Sie Ihre Funktionen dort.

Hinweis: Es wird empfohlen, das folgende Format zu verwenden, um Kollisionen mit Funktionsnamen zu vermeiden:

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

    }
}

Sie global machen

Wenn Sie diese Funktionen ständig verwenden (Global), laden Sie sie automatisch.

  1. Öffne die Datei: /config/autoload.php
  2. Suchen Sie den Abschnitt $autoload['helper'] = array();
  3. Fügen Sie den Namen Ihrer Hilfedatei hinzu ( ohne die.php-Erweiterung).

Wenn Sie beispielsweise eine Hilfedatei mit dem Namen myhelper.php erstellt haben, sollte sie ungefähr so ​​aussehen:

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

Verwenden Ihrer globalen Funktionen

Jetzt sind Ihre Funktionen auf der gesamten Site verfügbar. Nennen Sie sie einfach Großhandel:

my_sample_function('argument');

2
Kevin Mesiab

Sie sollten APPPATH oder BASEPATH verwenden oder einfach den vollständigen Pfad zur Datei eingeben. require_once(APPPATH.'libraries/common.php');

1
prash.patil
  1. base_url() verweist auf den Webpfad wie http://localhost/myproject/. Sie können keine Remote-Datei hinzufügen, eigentlich sollten Sie dies nicht tun. Es ist ein Sicherheitsrisiko. Siehe Datei kann nicht auf Remote-Server aufgenommen werden

  2. Die Erstellung einer benutzerdefinierten Bibliothek ist eine gute Wahl. Wenn Sie sie häufig auf Ihrer Website verwenden, können Sie sie in application/config/autoload.php im Abschnitt $autoload['libraries'] einfügen. Es wird jedes Mal automatisch geladen, wenn Sie die Anwendung/Website basierend auf Codeigniter neu laden. Beispiel: $autoload['libraries'] = array('common');, wenn Ihre Bibliothek common.php heißt und sich in application/libraries/ befindet

  3. DO NOT fügt Funktionen in einen Viewer ein, deshalb gibt es Bibliotheken und Helfer. Ein Viewer sollte nur enthalten, was ein Benutzer sehen sollte. Beispiel: Eine Ansicht ist eine Form der Visualisierung des Modells.

1
machineaddict

Sie können Anyware mit einschließen

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

Um dieses Problem effizienter zu lösen, habe ich Folgendes getan:

Sie erstellen einen neuen Helfer (in application/helpers) mit name (es. Common_helpers.php, der Unterstrich ist wichtig). In dieser Datei legen Sie alle Funktionen zusammen, beispielsweise zum Erstellen von HTML-Teilen.

<?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");
    }

In Ihrem Controller rufen Sie nur eine Ansicht in Bezug auf MVC auf und rufen die Funktionen von Ihrem benutzerdefinierten Helfer auf.

class Hello extends CI_Controller {

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

}
0
Tudor