前言:
话说某天我收到了火狼婆婆的邮件,竟然是尼玛java的反动思想,JAVA编写的邮件发送实例,还带一个嘲笑的图片…怒了,虽然我是PHP渣,但是你这也太猖狂了。so,决定我也写一个邮件发送的小程序。
可能编程思想有严重错误,方法也不是很精通,希望各位朋友指出吐槽!
执行思想:
虽然我不知道PHP中定时执行任务是怎么实现的,但是我想了想应该是时间戳计算出秒数,然后sleep休眠一段时间执行,这应该比循环效率略高,但是问了问别人sleep函数在客户端浏览器关闭后失效,据说大多数PHP函数都是这样,虽然我不知道为啥,不过我们可以通过——ignore_user_abort();来屏蔽忽略浏览器关闭,然后用——set_time_limit(0);设定PHP脚本无最大失效时间。
主体:
<?php $sends=$_POST["sends"]; $subject=$_POST["subject"]; $time=$_POST["time"]; $stime=$_POST["stime"]; if(@$_POST["subject"]==""&&$_POST["sends"]==""&&$_POST["friends"]==""){ echo"<html> <form action='mail.php' name='sends' method='POST'action='mail.php'> 您的主题:<input type='text' name='subject'></br> 收件人邮箱:<input type='text' name='friends'></br> 您的邮件内容:<input type='text' name='message' style='width:500px;height:400px'> </br>您要设定的发送日期<input type='text'name='time'> (规则为2015-01-01)</br> 发送时间:<input type='text'name='stime'style='width:100px;height:30'> (规则为 23:08:01) </br><input type='submit' value='提交定时发送'> </form> </html> ";}else{ $one=strtotime(date('Y-m-d H:i:s'));//下unix下的时间戳 $endtime=strtotime($time.$stime); $cle = $endtime - $one;//获得秒位时间差 ignore_user_abort();//忽略浏览器关闭 set_time_limit(0);//脚本无时间执行限制 sleep($cle);//程序延时执行 mail('$friends', '$subgect', '$sends');//执行发送 } ?>
忽略前台登陆,SESSION验证之类的小登陆验证的东东,大体实现就是这个,话说我真的很菜逼,希望各各湿胸指导。