2013-05-04 103 views
0

我有一个托管在外部web托管服务上的网站,其中包括允许用户订阅事件并添加到注册列表中。在没有cron的情况下在外部web服务器上的特定时间执行脚本

我希望能够通过电子邮件在事件发生前提醒这些用户有一天,有关位置更新信息等,以提醒他们..

目前,我的托管服务不支持的cron工作,我认为会提供实现这一目标的手段。

我有一个想法,当任何用户访问最接近我发送电子邮件的时候,首页执行该功能,但它似乎是一个糟糕的选择,让我觉得必须有一个更好的方式。

我知道一些公司会在特定的时间收费,但我希望能够在我的网站上直接配置它,以获得更大的灵活性。

我不知道是否有任何PHP的API,它可以让我做这件事,或者如果我的想法是实现我的目标,还是我缺少明显的东西的最佳方式..

任何帮助赞赏。

回答

0

看看mcrypt_encryptmcrypt_decrypt的功能。您可以使用参数get作为输入,在外部页面上设置PHP脚本。该输入将用作身份验证,以防止未经授权运行脚本。使用上述功能来加密和解密授权密钥。这可能是你喜欢的东西,但我建议你创造一些随机的,例如:

$authMessage = 'yourMessage' . date('Y-m-d', time()); 

,并对其进行编码,然后通过get发送。加密的信息将每天都在变化,因此它将明显难以打入。

在远程服务器上,您从get读取加密消息。使用您用于编码的相同密钥对其进行解码,并检查一切是否正常(也就是说,如果字符串被正确解码并且日期是今天的日期)。如果一切正常,您可以启动脚本。

你可以做到这一点也采用simplier方法,如涉及md5()

在主服务器调用与get参数你这样的页面:

$get = md5('your secret phrase, the longer the better'.date('Y-m-d', time())); 

您的远程服务器上,当get要求参数来了,执行相同的操作,并检查您生成的md5是否等于来自get的md5。如果是,请运行该脚本。

当然,您将不得不以远程方式远程调用您的远程服务器......但我认为,您可以在主服务器上运行cron,因此这不成问题。

0

如果您使用的是MySQL数据库,那么MySQL Event management可能会为您提供解决方案;当然,这一切都取决于您的托管服务提供商是否允许您将MySQL配置为执行shell脚本来执行邮件。

相关问题