register-global on

7 contenuti / 0 new
Ultimo contenuto
register-global on

salve a tutti,

ho installato la versione 5 di drupal ed in locale andava alla grande oggi ho portato tutto sul server è ho riscontrato un problema "register-global on"..

Pensavo fosse perchè stessi su hosting windows e quindi credevo di risolverlo passando ad hosting linux,ma documentandomi ho letto che anche l'hosting linux lo settava su on,e che l'unica soluzione è di prendere un server dedicato...

Vorrei sapere se qualcuno di voi si è trovato davanti questo problema e come lo ha risolto.

Grazie

Potresti "ovviare" andando ad usare la 5.5 e mettendo nella cartella del tema un .htaccess che inibisca l'accesso diretto ai file PHP.

Ciao
Marco
--
My blog
Working at @agavee

Innanzitutto grazie per la risposta.

Ma il file htaccess è quello che trovo nella cartellla di drupal 5.5 o ne devo scrivere uno ad hoc per far si che il register_global passi su off?

Se fosse lil secondo caso mi potresti dare una mano nella compilazione del codice?

Grazie ancora

Ciao Mavino,
Allora ho fatto come mi hai detto con il file .htaccess ho creato un txt in cui ho inserito questa stringa:php_flag register_globals off è l'ho salvato.
Il file poi lo caricato sul server in ogni pagina in cui era presente un tema.
Successivamente andavo a lanciare il programma ma mi faceva lo stesso problema.

Su un sito di un altro CMS ho letto che il file htaccess può creare anzi crea problemi con server windows e suggerivano di creare un file php.

<?php
   
<?php
   
/**
   3. * @version $Id: globals.php-off 47 2005-09-15 02:55:27Z rhuk $
   4. * @package Joomla
   5. * @copyright Copyright (C) 2005 Open Source Matters. All rights reserved.
   6. * @license <a href="http://www.gnu.org/copyleft/gpl.html" rel="nofollow">http://www.gnu.org/copyleft/gpl.html</a> GNU/GPL, see LICENSE.php
   7. * Joomla! is free software and parts of it may contain or be derived from the
   8. * GNU General Public License or other free or open source software licenses.
   9. * See COPYRIGHT.php for copyright notices and details.
  10. */
 
11.
  12.
/**
  13. * Emulates register globals = off
  14. */
 
15. function unregister_globals () {
 
16.     $REQUEST = $_REQUEST;
 
17.     $GET = $_GET;
 
18.     $POST = $_POST;
 
19.     $COOKIE = $_COOKIE;
 
20.     if (isset ( $_SESSION )) {
 
21.         $SESSION = $_SESSION;
 
22.     }
 
23.     $FILES = $_FILES;
 
24.     $ENV = $_ENV;
 
25.     $SERVER = $_SERVER;
 
26.     foreach ($GLOBALS as $key => $value) {
 
27.         if ( $key != 'GLOBALS' ) {
 
28.             unset ( $GLOBALS [ $key ] );
 
29.         }
 
30.     }
 
31.     $_REQUEST = $REQUEST;
 
32.     $_GET = $GET;
 
33.     $_POST = $POST;
 
34.     $_COOKIE = $COOKIE;
 
35.     if (isset ( $SESSION )) {
 
36.         $_SESSION = $SESSION;
 
37.     }
 
38.     $_FILES = $FILES;
 
39.     $_ENV = $ENV;
 
40.     $_SERVER = $SERVER;
 
41. }
 
42. unregister_globals();
 
43.
?>

?>

Fino a qui tutto ok..ho creato il file r.global e l ho richiamato su ogni page.tpl.php con la funzione include ad ogni inizio pagina.

Ora drupal mi parte ma ho un errore che ti posto:

* warning: main(r.global.php): failed to open stream: No such file or directory in d:\hosting\xxxxx.com\wwwroot\public\drupal\themes\garland\page.tpl.php on line 2.
* warning: main(): Failed opening 'r.global.php' for inclusion (include_path='.;c:\php4\pear') in d:\hosting\xxxxxx.com\wwwroot\public\drupal\themes\garland\page.tpl.php on line 2.

Come posso risolvere il problema?

Stai facendo un casino che metà basta :)

  1. Se continui ad usare la 5.6 devi disabilitare il register_global e lo si fa con il file php.ini (mi pare) comunque cerca in rete che troverai info su cosa scriverci dentro.
  2. Se passi alla 5.5 non devi disabilitare il register_global ma devi andare a fare in modo che i file PHP del tema vengano inibiti all'accesso esterno in modo che non si possa fare l'inection di codice. Per fare questo devi usareil file .htaccess (da mettere nelle cartelle del tema) che blocca l'esecuzione delle pagine PHP in esso presenti (mi pare che si a Diasslow * o qualche cosa del genere da scriverci), anche qui ti rimando alla rete per maggiori info.

Ciao
Marco
--
My blog
Working at @agavee

Io ho risolto cosi, ARUBA LINUX con DRUPLA 5.6 ITA
Allora , questo è il file .htaccess :

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

poi ho creato un file php.ini ed ho inserito questo :
register_globals = 0
postg_max_sizeg = 50M
track_vars = 1
short_open_tagg = 1
magic_quotes_gpc = 0
magic_quotes_runtime = 0
magic_quotes_sybase = 0
arg_separator.output = "&"
session.cache_expire = 200000
session.gc_maxlifetime = 200000
session.cookie_lifetime = 2000000
session.auto_start = 0
session.save_handler = user
session.cache_limiter = none
allow_call_time_pass_reference = On
memory_limit = 26M

A me funziona tutto , dovrebbe essere corretto.

Ciao
Stessissimo problema: ho però eseguito la procedura proposta da nocs90 ed ora funziona tutto e non mi da l'errore php!

Gentilissimo

Grazie

jbond82