Domande varie

Ci sono diverse domande che ricorrono frequentemente ma che non possono essere inserite in una delle categorie principali: eccole riunite in questa sezione.

Come posso gestire i file compressi bz2 sotto Windows?

Se non si ha un software in grado di estrarre gli archivi bz2, si scarichi » questo programma a riga di comando per RedHat (leggi più sotto per maggiori informazioni).

Se non si vuole usare la riga di comando, si può scaricare uno di questi software gratuiti: » Stuffit Expander, » UltimateZip, » 7-Zip o » Quick Zip. Se si possiede già dei software tipo » WinRAR o » Power Archiver, si possono gestire senza problemi gli archivi bz2. Se si usa Total Commander (un tempo Windows Commander), sul sito » Windows Commander è disponibile un plugin gratuito per gestire i file bz2.

Programma a riga di comando per RedHat:

Gli utenti Sp2 Win2k possono scaricare l'ultima versione, la 1.0.2, tutti gli altri utenti Windows devono scaricare la versione 1.00. Dopo aver scaricato il file, rinominarlo in bzip2.exe. Per maggiore comodità, si consiglia di copiare questo file in una cartella del tuo hard disk principale, per esempio C:\Windows (dove C rappresenta la lettera del tuo hard disk).

Nota: 'lang' indica la tua lingua e x il formato desiderato, per esempio pdf. Per decomprimere il file php_manual.x.bz2 seguire queste semplici istruzioni:

  • Aprire il prompt dei comandi di Windows
  • Entrare nella cartella che contiene il file php_manual_lang.x.bz2 (cd nome_cartella)
  • digitare bzip2 -d php_manual_lang.x.bz2 per estrarre il file nella stessa cartella

Nel caso si sia scaricato il manuale php_lang.tar.bz2 nel formato contenente molti file HTML, la procedura sarà la stessa. La sola differenza è che hai scaricato un file *.tar. Il formato *.tar è famoso perché viene riconosciuto dalla maggior parte dei software di archiviazione per Windows, per esempio » WinZip.

add a note add a note

User Contributed Notes 3 notes

up
4
doerr at apkk dot de
11 years ago
If you only needed register_globals for get/post variables, the effictive solution for 5.3 is:
  import_request_variables("GPC", "");

But if the skripts relied on session_register() you'll have to do more:
- Replace all variables that appeared after session_register with _SESSION equivalents - so $myvar becomes $_SESSION['myvar']
- Take care if your variables appeared inside strings - 'Hello $user !' works, but 'Hello $_SESSION['user'] !' not - so you have to concatenate the string: 'Hello '.$_SESSION['user'] .' !'
- Session variables in function declarations (for whatever purpose) will not work - keeping the old (local) names will work in most cases.
- Finally, replace the session_register(..) line with session_start()
up
0
php at REMOVEMEkennel17 dot co dot uk
17 years ago
Regarding simulating register_globals = off, note that it is impossible to adequately prevent $_SESSION variables from being globalised, as the array (and thus the globals) are created on a call to session_start().  You would therefore have to 'undo' this when you start a session as using it at the start of your script will have no effect.

To avoid potential problems, use a prefix that is unique for all session variables (e.g. 'SESS_'), and only access them via the $_SESSION array.  The prefix ensures that you don't have a naming clash (and therefore a security risk) with any non-session globals.
up
-2
markus
16 years ago
Considering the comment below. I think there's a way to avoid that "problem":

<?php
//
// $starttime is an example of a variable that we might need to define,
// even before, running the "register_globals OFF" emulator below.
//
list($msec, $sec) = explode(' ', microtime());
$starttime = ((float)$msec + (float)$sec);

//
// If register_globals is ON, ensure no unexpected globals are defined.
// ie. We'll try to emulate a register_globals OFF environment.
//
if( (bool)@ini_get('register_globals') )
{
   
$superglobals = array($_ENV, $_GET, $_POST, $_COOKIE, $_FILES, $_SERVER);
    if( isset(
$_SESSION) )
    {
       
array_unshift($superglobals, $_SESSION);
    }
   
$knownglobals = array(
       
//
        // Known PHP Reserved globals and superglobals:
        //
       
'_ENV',        'HTTP_ENV_VARS',
       
'_GET',        'HTTP_GET_VARS',
       
'_POST',    'HTTP_POST_VARS',
       
'_COOKIE',    'HTTP_COOKIE_VARS',
       
'_FILES',    'HTTP_FILES_VARS',
       
'_SERVER',    'HTTP_SERVER_VARS',
       
'_SESSION',    'HTTP_SESSION_VARS',
       
'_REQUEST',

       
//
        // Global variables used by this code snippet:
        //
       
'superglobals',
       
'knownglobals',
       
'superglobal',
       
'global',
       
'void',

       
//
        // Known global variables defined before this code snippet is reached.
        //
       
'starttime',
    );
    foreach(
$superglobals as $superglobal )
    {
        foreach(
$superglobal as $global => $void )
        {
            if( !
in_array($global, $knownglobals) )
            {
                unset(
$GLOBALS[$global]);
            }
        }
    }
}
?>

Note the stuff related to the $_SESSION array depends on whether the PHP session has been started or not. You might want to call session_start() before this point (or set session.auto_start ON).

HTH+ :)
To Top