define y if defined

Iniciado por Servia, 6 Julio 2009, 12:49 PM

0 Miembros y 1 Visitante están viendo este tema.

Servia

Hola, quiero que mis archivos estén protegidos de miradas por lo que he intentado hacer como SMF.

En el index de la página he puesto:
define('besthakar', 1);

y en uno de los archivos
if (!defined('besthakar'))
   die('Error');

Lo único que pasa es que al hacer un require a ese archivo en el index no carga. Si intento mirar el archivo en el navegador sale lo que quería, Error.

¿Qué hago mal?

Pensaba que el sistema par ahcerlo funcionar era ese.

[u]nsigned

#1
Tenes que llamar al archivo luego de la definicion de la constante en el index:
Código (php) [Seleccionar]
<?php
define
('besthakar'1);
include(
"arch.php");
?>


Pero supongo que esto ya lo sabes, asi que el problema debe ser por que el interprete de php tiene 'register_globals' está desactivado. Esto quiere decir que las variables no son declaradas como global por defecto, por lo que no son accesibles desde el archivo incluido.

Para averiguar esto, crea el siguiente script, y ejecutalo desde el navegador:
Código (php) [Seleccionar]
<?php
echo ini_get('register_globals');
?>


Si obtenes un cero (FALSE), quiere decir que esta dashabilitado. Esto se configura en el php.ini en caso de que el server sea local, o que tengas permiso para editar el php.ini debes cambiar la siguiente linea para que quede asi
Código (ini) [Seleccionar]
register_globals = On

O bien declarar la variable vos mismo como GLOBAL:
Código (php) [Seleccionar]
global define('besthakar', 1);

Saludos

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!

Servia

Si hago lo de register_globals ni 0 ni nada me sale, se queda en blanco.

He probado a poner lo de global y el index sigue sin cargar :(