Questions diverses
Il y'a quelques questions inclassables. Vous les trouverez ici.
- Comment puis-je manipuler le manuel compress� en bzip2 sous Windows ?
- Que signifie le caract�re "&" devant les arguments dans les d�clarations des fonctions comme la fonction asort() ?
- Comment puis-je g�rer la directive register_globals ?
-
Comment puis-je manipuler le manuel compress� en bzip2 sous Windows ?
-
Si vous n'avez pas d'outil d'archivage prenant en charge les fichiers au format bz2, » t�l�chargez l'outil en ligne de commande � partir de Redhat (merci de lire les informations plus bas).
Si vous pr�f�rez ne pas utiliser d'outil en ligne de commande, vous pouvez essayer des outils gratuits comme » Stuffit Expander, » UltimateZip, » 7-Zip, ou » Quick Zip. Si vous avez des outils comme » WinRAR ou » Power Archiver, vous pouvez facilement d�compresser les fichiers bz2 avec. Si vous utilisez Total Commander (autrefois Windows Commander), un plugin bz2 est disponible gratuitement sur le site de » Total Commander.
L'outil en ligne commande bzip2 de Redhat :
Les utilisateurs du service pack 2 de Win2K doivent prendre la version 1.0.2, tous les autres utilisateurs de Windows doivent prendre la version 1.00. Apr�s avoir t�l�charg�, renommez l'ex�cutable en bzip2.exe. Pour votre convenance, mettez-le dans un dossier dans votre path, c'est � dire C:\Windows o� C repr�sente votre disque o� Windows est install�.
Note : Dans ce qui suit, lang repr�sente votre langue et x le format d�sir�, par exemple : pdf. Pour d�compresser php_manual_lang.x.bz2 suivez les instructions suivantes :
- ouvrez un invite de commande
- d�placez-vous dans le dossier o� se trouvent les fichiers php_manual_lang.x.bz2
- lancez la commande bzip2 -d php_manual_lang.x.bz2, pour extraire php_manual_lang.x dans ce m�me dossier
Dans le cas o� vous avez t�l�charg� le fichier php_manual_lang.tar.bz2 avec beaucoup de fichiers HTML � l'int�rieur, la proc�dure est la m�me. La seule diff�rence est que vous obtiendrez un fichier php_manual_lang.tar. Le format tar est connu pour �tre pris en compte par la plupart des archiveurs de Windows, comme » WinZip.
-
Que signifie le caract�re "&" devant les arguments dans les d�clarations des fonctions comme la fonction asort() ?
-
Cela signifie que cet argument est pass� par r�f�rence et que la fonction le modifiera, comme expliqu� dans la documentation. Vous pouvez passer uniquement des variables de cette fa�on et vous n'avez pas besoin de les passer avec le caract�re "&" dans l'appel de la fonction (car d�pr�ci�e).
-
Comment puis-je g�rer la directive register_globals ?
-
Pour plus d'informations concernant l'implication sur la s�curit� de la directive register_globals, lisez le chapitre sur la s�curit� concernant l'utilisation de register_globals.
Il est pr�f�rable d'utiliser les superglobals, plut�t que de remettre � on la directive register_globals.
Si vous �tes sur un serveur mutualis� avec la directive register_globals de positionn�e � off et que vous devez utiliser des applications qui requi�rent que cette option soit � on ou si vous �tes h�berg�s sur un serveur qui a cette directive d'activ�e mais que vous voudriez �liminer ce risque s�curitaire, vous devriez �muler l'argument oppos� avec PHP. C'est toujours une bonne id�e que de demander tout d'abord s'il est possible de modifier cette option dans la configuration de PHP mais si cela n'est pas possible, vous pouvez utiliser ces astuces de compatibilit�.
Exemple #1 �mulation des Register Globals
Ceci �mulera la directive register_globals � On. Si vous modifiez la directive variables_order, modifiez la variable $superglobals pour qu'elle corresponde � votre nouvelle directive..
<?php
// �mulation de 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);
}
}
?>Ceci �mulera register_globals � Off. Gardez � l'esprit que ce code doit �tre appel� au tout d�but de votre script ou apr�s la fonction session_start() si vous l'utilisez pour commencer votre session.
<?php
// �mulation de register_globals � off
function unregister_GLOBALS()
{
if (!ini_get('register_globals')) {
return;
}
// Vous pouvez vouloir modifier cela pour avoir une erreur plus jolie
if (isset($_REQUEST['GLOBALS']) || isset($_FILES['GLOBALS'])) {
die('Tentative d\'effacement des GLOBALS d�tect�e');
}
// Les variables � ne jamais effacer
$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();
?>