he guardado mucho todo excepto guiones directamente visible fuera de la raíz web. Luego configure PHP para incluir su directorio de scripts en la ruta. Una instalación típica sería:
appdir
include
html
En la configuración de PHP (ya sea la configuración de PHP global o en un archivo .htaccess
en el directorio html
) añadir lo siguiente:
include_path = ".:/path/to/appdir/include:/usr/share/php"
o (para Windows)
include_path = ".;c:\path\to\appdir\include;c:\php\includes"
Tenga en cuenta que esta línea probablemente ya esté en su archivo php.ini
, pero puede estar comentada permitiendo que funcionen los valores predeterminados. También podría incluir otras rutas. Asegúrate de mantener esos, también.
Si va a añadir a un archivo .htaccess, el formato es:
php_value include_path .:/path/to/appdir/include:/usr/share/php
Por último, se puede agregar la ruta programáticamente con algo como esto:
$parentPath = dirname(dirname(__FILE__));
$ourPath = $parentPath . DIRECTORY_SEPARATOR . 'include';
$includePath = ini_get('include_path');
$includePaths = explode(PATH_SEPARATOR, $includePath);
// Put our path between 'current directory' and rest of search path
if ($includePaths[0] == '.') {
array_shift($includePaths);
}
array_unshift($includePaths, '.', $ourPath);
$includePath = implode(PATH_SEPARATOR, $includePaths);
ini_set('include_path', $includePath);
(Sobre la base de código de trabajo, pero modificado, por lo tanto no probado)
Esto debe ejecutarse en su archivo de interfaz (por ejemplo, index.php
). Lo puse en un archivo de inclusión separado que, después de modificar lo anterior, se puede incluir con algo como #include '../includes/prepPath.inc'
.
He utilizado todas las versiones que he presentado aquí con éxito. El método particular utilizado depende de las preferencias y de cómo se implementará el proyecto.En otras palabras, si no puede modificar php.ini
, obviamente no puede usar ese método
¿Podrías por favor ser más claro? Realmente no entiendo cómo quieres que un archivo no se ejecute si apuntas tu navegador hacia él ... –
Tal vez si las funciones de preformas, tal vez por el bien de la seguridad, el por qué es irrelevante. – UnkwnTech
@Unkwntech: mi confusión proviene del hecho de que si un archivo está debajo de la raíz web debe ser para verlo, cualquier cosa segura debe estar fuera de él ... –