Hola AMigos de veras apreciaria mucho su ayuda.
tengo un progrma en php que procesa correos cuando recibe un correo o mensaje lo guarda en una base de datos donde una tabla tarea lo recibe con la fecha de cuando llego y la fecha cuando debe ser enviado, el script siguiente debe de tomar los mensajes de esa tabla y guardarlos en otra que se llama mensaje_por_enviar de donde otro script lo toma y lo envia y lo borra de mensaje por enviar.
El problema no se porque no consulta y despues actualiza mensaje por enviar, aparentemente todo esta bien.
el script lo tengo que correr con un cron pero no esta haciendo su tarea asi que
para probarlo lo corro desde shell, y me he dado cuenta que no hace la tarea que debe hacer.
Por favor ayudenme a encontrar el problema.
saludos........................
#!/opt/lampp/bin/php
<?php
include('./includes/config.inc.php');
include('encabezado.php');
include('pie.php');
function verificar_pendiente($correo_empresa,$texto_encabez ado,$texto_pie,$now,$maximo){
echo "Inicio tareas propias.";
if (!maximo_tareas_siguientes($maximo)){
$consulta = "SELECT * FROM tarea, usuario WHERE (ADDTIME('$now', '0 00:30:00') >
tarea.fecha_notif) AND (usuario.iduser = tarea.iduser) AND (notificar='eventual') AND
(tarea.estado='pendiente')";
}
else{
$consulta = "SELECT * FROM tarea, usuario WHERE (ADDTIME('$now', '0 01:00:00') >
tarea.fecha_notif) AND (usuario.iduser = tarea.iduser) AND (notificar='eventual') AND
(tarea.estado='pendiente')";
}
$query = mysql_query($consulta);
while($row = @mysql_fetch_assoc($query)){
$msj = $texto_encabezado.$row["tarea"]."\n".$texto_pie_sms;
$sql = "INSERT INTO mensaje_por_enviar(correo,msj,marc,hora) VALUES ('{$row['telefono']}','$msj','$correo_empresa','$now')";
mysql_query($sql);
if (! mysql_error() )
echo "Tarea enviada a {$row['telefono']}<br>";
else
echo "Error al intentar agregar el mensaje en la cola.<br>".mysql_error()."<br>";
$sql = "UPDATE tarea SET estado='realizado' WHERE idtarea=".$row['idtarea'];
mysql_query($sql);
if (! mysql_error() )
echo "Tarea {$row['idtarea']} configurada como realizada.\n";
else
echo "Error al intentar configurar como agregada la tarea {$row['idtarea']}.<br>".mysql_error()."<br>";
}
}
function maximo_tareas_siguientes($maximo){
$consulta_actual = "SELECT * FROM tarea, usuario WHERE (ADDTIME('$now', '0 00:30:00') >
tarea.fecha_notif) AND (usuario.iduser = tarea.iduser) AND (notificar='eventual') AND
(tarea.estado='pendiente')";
$res=mysql_query($consulta_actual);
$cantidad_actual=@mysql_num_rows($res);
$consulta_siguiente = "SELECT * FROM tarea, usuario WHERE (ADDTIME('$now', '0 01:00:00') >
tarea.fecha_notif) AND (usuario.iduser = tarea.iduser) AND (notificar='eventual') AND
(tarea.estado='pendiente')";
$res=mysql_query($consulta_siguiente);
$cantidad_hora=@mysql_num_rows($res);
$cantidad_siguiente=$cantidad_hora-$cantidad_actual;
echo "La cantidad actual es:$cantidad_actual ";
echo "La cantidad siguiente es:$cantidad_siguiente ";
if ($cantidad_siguiente<=$maximo)
return 0;
else
return 1;
}
$veces = date("s");
$time_to_processor = 59;
while (1)
{ $minuto_actual = date("s");
if ($minuto_actual<$veces)
$veces=$minuto_actual;
if (($minuto_actual - $veces)== $time_to_processor) {
$dif= $hora_local - date('0')/100;
$new_time = strtotime($dif." hours");
$now = date("Y-m-d H:i:s", $new_time);
//$now = date("Y-m-d H:i:s");
verificar_pendiente($correo_empresa,$texto_encabez ado,$texto_pie,$now,$maximo);
$veces=$minuto_actual;
//print "$now";
}
}
?>