Es gibt diverse Fragen, die in keine andere Kategorie passen. Diese Fragen finden Sie hier.
Wenn Sie keinen Entpacker haben, der bz2 entpacken kann, » laden Sie sich das Kommandozeilenprogramm von Redhat herunter (siehe Informationen weiter unten).
Wenn Sie nicht das Kommandozeeilenprogramm verwenden wollen, dann können Sie kostenlose Tools wie den » Stuffit Expander, » UltimateZip, » 7-Zip, oder » Quick Zip verwenden. Wenn Sie » WinRAR oder » Power Archiver haben, können Sie die bz2-Dateien damit entpacken. Sollten Sie Total Commander (ehemals Windows Commander) verwenden, so gibt es dafür ein kostenloses bz2 Plugin auf der » Total Commander-Seite.
Das bzip2-Kommandozeilenprogramm von Redhat:
Benutzer von Win2k SP2 verwenden die aktuelle Version 1.0.2, alle anderen Windows-Benutzer sollten Version 1.00 nehmen. Nach dem Download sollten Sie die Datei in bzip2.exe umbenennen. Kopieren Sie diese zur leichteren Handhabung in ein Verzeichnis im Windows-Pfad, z.B. C:\Windows, wobei C: das Laufwerk Ihrer Windows Installation ist.
Anmerkung: lang steht für die Sprache und x für das Format, z.B. pdf. Zum entpacken von php_manual_lang.x.bz2 folgen Sie diesen einfachen Schritten:
Wenn Sie die Datei php_manual_lang.tar.bz2 heruntergeladen haben, die viele HTML-Dateien enthält, gehen Sie genauso vor. Der einzige Unterschied ist, dass Sie eine Datei namens php_manual_lang.tar erhalten. Die meisten Entpacker unter Windows verstehen das tar Format wie z.B. » WinZip.
Es bedeutet, dass eine Variable als Referenz übergeben wird und die Funktion höchstwahrscheinlich den Inhalt der übergebenen Variablen gemäß ihrem dokumentierten Zweck verändern wird. Sie können solchen Parameter nur Variablen übergeben und Sie müssen dem Parameter im Funktionsaufruf kein & vorausstellen (dieses Vorgehen ist sogar veraltet).
register_globals
i um?
Informationen zu den sicherheitsrelevanten Aspekten von
register_globals
finden Sie im Sicherheitskapitel
unter
Nutzung von register_globals.
Es wird empfohlen die
Superglobalen
Variablen zu benutzen und sich nicht darauf zu verlassen, dass
register_globals
aktiviert ist.
Wenn Sie auf einem Shared Host alte Applikationen einsetzen müssen, die
erwarten, dass register_globals
aktiv ist, obwohl es
abgeschaltet ist, oder wenn es aktiv ist, Sie aber die damit verbundenen
Sicherheitsrisiken vermeiden wollen, dann müssen Sie eventuell die
jeweils andere Einstellung mit PHP emulieren. Es empfiehlt sich jeweils
zunächst nachzufragen, ob die Einstellungen irgendwie geändert werden
können, ist dies aber nicht möglich so können Sie die folgenden
Kompatibilitätsbausteine verwenden.
Beispiel #1 Register Globals emulieren
Der folgende Code emuliert register_globals=On. Wenn Sie die variables_order Konfiguration ändern, sollten Sie in der Regel auch die $superglobals entsprechend anpassen.
<?php
// Emulate register_globals on
if (!ini_get('register_globals')) {
$superglobals = array($_SERVER, $_ENV,
$_FILES, $_COOKIE, $_POST, $_GET);
if (isset($_SESSION)) {
array_unshift($superglobals, $_SESSION);
}
foreach ($superglobals as $superglobal) {
extract($superglobal, EXTR_SKIP);
}
}
?>
Der folgende Code emuliert register_globals=Off. Beachten Sie, dass dieser Code entweder direkt am Anfang Ihres Scripts ausgeführt werden sollte oder nach dem Aufruf von session_start(), wenn Sie damit Ihre Sessions starten.
<?php
// Emulate register_globals off
function unregister_GLOBALS()
{
if (!ini_get('register_globals')) {
return;
}
// Might want to change this perhaps to a nicer error
if (isset($_REQUEST['GLOBALS']) || isset($_FILES['GLOBALS'])) {
die('GLOBALS overwrite attempt detected');
}
// Variables that shouldn't be unset
$noUnset = array('GLOBALS', '_GET',
'_POST', '_COOKIE',
'_REQUEST', '_SERVER',
'_ENV', '_FILES');
$input = array_merge($_GET, $_POST,
$_COOKIE, $_SERVER,
$_ENV, $_FILES,
isset($_SESSION) && is_array($_SESSION) ? $_SESSION : array());
foreach ($input as $k => $v) {
if (!in_array($k, $noUnset) && isset($GLOBALS[$k])) {
unset($GLOBALS[$k]);
}
}
}
unregister_GLOBALS();
?>