Ver Mensaje Individual
  #3 (permalink)  
Antiguo 24/02/2007, 04:43
santhy
 
Fecha de Ingreso: febrero-2006
Mensajes: 134
Antigüedad: 18 años, 2 meses
Puntos: 10
Re: Solo permitir acceso a cronjob

Hay otra forma:
Es válida mientras que tu configuración de php.ini no tenga habilitado llenar las variables $argv y $argc en caso de ser el servidor web quien haga la petición.

Entonces, llamás al script desde cron con un parámetro, p. ej. "php miscript.php lagarto=cronjob"
Entonces, al comienzo del script escribes:
Código PHP:
<?php // Comienzo:
if( (empty($argv) || $argv[1] != 'lagarto=cronjob' ) {
exit;
}
// Por aqui sigue tu script
?>
O incluso puedes hacer un script que te cargue los que quieras en tu cron:
Código PHP:
<?php // Comienzo:
if( (empty($argv) || $argv[1] != 'lagarto=cronjob' ) {
exit;
}
if(!empty(
$argv[2]))
$script $argv[2];
else
$script 'script_por_defecto.php';

if(!
file_exists('/var/directorio_de_tus_scripts/' $script)) {
file_put_contents('/var/logs/php_cron/log.log'
date('[H:i:s | d-m-Y]') ." No se pudo abrir el archivo $script\n\n"
FILE_APPEND);
exit;
} else {
define('ENTRADA_CORRECTA'true);
include(
'/var/directorio_de_tus_scripts/' $script);
}
Y puedes poner a tus scripts
Código PHP:
if(!defined('ENTRADA_CORRECTA') || defined('ENTRADA_INCORRECTA'))
exit; 
al inicio del script

Luego llamas a tu script: "php miscript.php lagarto=cronjob scheduler.php"
y ya está!

Saludos