|
|
PHP (angielski akronim rekurencyjny, którego rozwinięcie to PHP Hypertext Preprocessor), pierwotnie nazwany Personal
Home Page - skryptowy język programowania, służący przede wszystkim do tworzenia dynamicznych stron WWW i wykonywany w
tym przypadku po stronie serwera, z możliwością zagnieżdżania w HTML (bądź XHTML). PHP jest podobny w założeniach do
dużo starszego mechanizmu SSI (Server Side Includes), jednak jest w stosunku do SSI nieporównanie bardziej rozbudowany.
Udostępniany jest na zasadach licencji open-source. Jego składnia bazuje na językach C, Java i Perl.
SQL (ang. Structured Query Language) to strukturalny język zapytań używany do tworzenia, modyfikowania baz danych oraz
do umieszczania i pobierania danych z baz danych.
Język SQL jest językiem deklaratywnym. Decyzję o sposobie przechowywania i pobrania danych pozostawia się systemowi
zarządzania bazą danych DBMS.
Jest to język programowania opracowany w latach siedemdziesiątych w firmie IBM. Stał się on standardem w komunikacji z
serwerami relacyjnych baz danych. Wiele współczesnych systemów relacyjnych baz danych używa do komunikacji z
użytkownikiem SQL, dlatego mówi się, że korzystanie z relacyjnych baz danych, to korzystanie z SQL-a.
Apache jest otwartym serwerem HTTP dostępnym dla wielu systemów operacyjnych (m.in. UNIX, GNU/Linux, BSD,
Microsoft Windows). Po angielsku słowo Apache wymawia się epaczi, co brzmi tak samo jak a patchy (server), co było
określeniem tego serwera we wczesnym stadium jego rozwoju w 1995 roku, kiedy był on głównie zbiorem poprawek (patch)
nałożonych na serwer HTTP o nazwie NCSA.
Apache jest najszerzej stosowanym serwerem HTTP w Internecie. W maju 2003 jego udział wśród serwerów wynosił 62%. W
połączeniu z interpreterem języka skryptowego PHP i bazą danych MySQL, Apache stanowi jedno z najczęściej spotykanych
środowisk w firmach oferujących miejsce na serwerach sieciowych.
|
Runkit_Sandbox_Parent
(no version information, might be only in
CVS) Runkit_Sandbox_Parent -- Runkit Anti-Sandbox Class
Opisvoid Runkit_Sandbox_Parent::__construct ( void
)
Instantiating the Runkit_Sandbox_Parent class from within a
sandbox environment created from the Runkit_Sandbox class provides some (controlled)
means for a sandbox child to access its parent.
Notatka: Obsługa rozszerzenia Sandbox (wymagane
dla runkit_lint(), runkit_lint_file() i klasy
Runkit_Sandbox) jest dostępne tylko w PHP 5.1 lub
specjalnie załatanych wersjach PHP 5.0, i wymaga, aby
włączone zostało bezpieczeństwo wątków. Więcej informacji
można znaleźć w pliku README dołączonym do pakietu
runkit.
In order for any of the Runkit_Sandbox_Parent features to function.
Support must be enabled on a per-sandbox basis by enabling the
parent_access flag from the parent's
context.
Przykład 1. Working with variables in a
sandbox
<?php
$sandbox = new Runkit_Sandbox(); $sandbox['parent_access'] = true; ?> |
|
Accessing the Parent's Variables
Just as with sandbox variable access, a sandbox parent's
variables may be read from and written to as properties of the
Runkit_Sandbox_Parent class. Read
access to parental variables may be enabled with the
parent_read setting (in addition to
the base parent_access setting).
Write access, in turn, is enabled through the parent_write setting.
Unlike sandbox child variable access, the variable scope is
not limited to globals only. By setting the parent_scope setting to an appropriate integer
value, other scopes in the active call stack may be inspected
instead. A value of 0 (Default) will direct variable access at
the global scope. 1 will point variable access at whatever
variable scope was active at the time the current block of
sandbox code was executed. Higher values progress back through
the functions that called the functions that led to the sandbox
executing code that tried to access its own parent's
variables.
Przykład 2. Accessing parental variables
<?php
$php = new Runkit_Sandbox(); $php['parent_access'] = true; $php['parent_read'] = true;
$test = "Global";
$php->eval('$PARENT = new Runkit_Sandbox_Parent;');
$php['parent_scope'] = 0; one();
$php['parent_scope'] = 1; one();
$php['parent_scope'] = 2; one();
$php['parent_scope'] = 3; one();
$php['parent_scope'] = 4; one();
$php['parent_scope'] = 5; one();
function one() {
$test = "one()";
two();
}
function two() {
$test = "two()";
three();
}
function three() {
$test = "three()";
$GLOBALS['php']->eval('var_dump($PARENT->test);');
} ?> |
|
Powyższy przykład wyświetli:
string(6) "Global"
string(7) "three()"
string(5) "two()"
string(5) "one()"
string(6) "Global"
string(6) "Global"
|
Calling the Parent's Functions
Just as with sandbox access, a sandbox may access its
parents functions providing that the proper settings have been
enabled. Enabling parent_call will
allow the sandbox to call all functions available to the parent
scope. Language constructs are each controlled by their own
setting: print() and echo() are
enabled with parent_echo. die() and
exit()
are enabled with parent_die.
eval()
is enabled with parent_eval while
include(), include_once(), require(),
and require_once() are enabled through
parent_include.
|