2010-11-29 7 views
0

Hallo ich bin neu in PHP und wenn ich gestoßen definiere ('INCLUDE_CHECK', wahr); Ich konnte nicht verstehen, wofür es ist?Was macht INCLUDE_CHECK in PHP?

Pls. erklären.

Danke! Sagar

Antwort

4

Dies ist eine Konstante, die später von dieser Anwendung verwendet wird. Define() wird verwendet, um diese Konstanten zu erstellen. Normalerweise wird dies für Konfigurationsdaten verwendet. Um diese Konstante später zu verwenden, verwenden Sie einfach die Zeichenfolge INCLUDE_CHECK im Code, als wäre es eine Variable ohne $.

so

if(INCLUDE_CHECK) 
{ 
// Do code that only should happen if you want it to. 
} 
+0

Hallo danke für schnelle Antwort. Also ist es wie boolesche Variable? – Sagar

+0

Sie können sein. Sie können jede nicht komplexe Datenstruktur enthalten.String, float, int, bool. Sie können keine Objekte oder Arrays halten. Wenn Sie wirklich sehr neu in PHP sind, würde ich einfach den Eintrag von php.net auf Define() lesen und wenn das zu schwer zu verstehen ist, kommen Sie später darauf zurück. Dies ist ein moderater-moderner Aspekt von PHP. – DampeS8N

+0

Vielen Dank für Ihre Antworten hat mir sehr geholfen! – Sagar

0

INCLUDE_CHECK ist kein Merkmal von PHP selbst, nur von einigen Code, dass jemand in PHP geschrieben. Der erste Treffer on google zeigt uns eine Konfigurationsdatei an, die ein Benutzer zu schützen versucht, indem er überprüft, ob die Variable definiert ist.

Der Ansatz in der Sniped genommen, die ich auf Google zu finden ist wie diese

  • eine Datei, die direkt verwiesen werden können (zum Beispiel http://example.com/foo.php) wird INCLUDE_CHECK definieren und dann eine Datei, die INCLUDE_CHECK prüft, zum Beispiel Konfig.php; Da foo.php es bereits definiert hat, wird dies korrekt funktionieren
  • Wenn ein Benutzer direkt auf config.php zugreift (z. B. http://example.com/config.php), dann wurde INCLUDE_CHECK nicht definiert, so dass ein Fehler auftritt, der den Benutzer daran hindert, das Skript auszuführen.

Die folgenden Beispiele sollen

<?php 
defined('INCLUDE_CHECK', true); 
require_once 'config.php'; 
?> 

config.php

<?php 
if (!defined('INCLUDE_CHECK')) { die ('invalid access'); } 
echo 'Hello World!'; 
?> 

Wenn ein Benutzer auf config.php direkt, dann INCLUDE_CHECK ist dies deutlicher

foo.php machen nicht definiert, so dass das Skript mit der Nachricht ungültiger Zugriff endet. Wenn ein Benutzer auf foo.php zugreift, wird es INCLUDE_CHECK dann include config.php definieren, die dann Hallo Welt widerhallen wird.

Dies ist eine ziemlich miese Möglichkeit zum Schutz einer Konfigurationsdatei, BTW; siehe my post here für einen einfacheren und zuverlässigeren Ansatz.

+0

Danke für die Antwort! Das war wirklich hilfreich, aber immer noch nicht verstanden, wie Schutz für die Konfigurationsdatei in der Google-Verknüpfung Ihres Ans ... – Sagar

+0

Ich habe meine Antwort geändert, um zu erklären, wie das Beispiel auf Google funktioniert funktioniert. Wie gesagt, es ist kein guter Ansatz, um diese Dateien zu schützen. –

0

Nur eine Ergänzung zu DampeS8N Beantworten Sie, welche die richtige ist.

Ich las Link der php.net http://in2.php.net/manual/en/function.define.php und unten Beispiel macht deutlich, dass jeder Wert verwendet innerhalb Funktionsvariablen als konstant und INCLUDE_CHECK war nur eine Variable, die ich dachte, als eine Art von PHP-Funktion für die Definition definieren werden kann;)

<?php 
define("CONSTANT", "Hello world."); 
echo CONSTANT; // outputs "Hello world." 
echo Constant; // outputs "Constant" and issues a notice. 

define("GREETING", "Hello you.", true); 
echo GREETING; // outputs "Hello you." 
echo Greeting; // outputs "Hello you." 

?> 

@ DampeS8N pls. Kommentar wenn falsch!

Vielen Dank an alle für Ihre Antworten!