我对我发送短信提醒的脚本有疑问,我的目标是制作一个应用程序,从数据库中获取生日信息并在前一天发送短信...我已经“发送了短信”部分工作,使用表单..但现在我想在Cron触发的PHP文件中使用它 我第一次尝试发送邮件,这部分工作,但现在我正在努力与短信部分。
这是我第一次使用cron工作而且我是PHP的新手..
第一个PHP代码是用cron重复的东西..我可以使用相同的代码snipet到$ _POST数字(数字)和tekst(文本)..就像我在上一个PHP代码中使用的那样..
提前!!
<?php
require('includes/global.php');
require('includes/voip.buster.instellingen.php');
/* ### This is working ###
$to = "**********@gmail.com";
$subject = "cron!";
$body = "Hoi,\n\n Cron Job test";
mail($to, $subject, $body);
*/
#### this part is not working ######
$nummer = $_POST['+0031*******'];
$tekst = $_POST['this is a sms message'];
SendSMS($nummer, $tekst);
?>
与sms webservice的连接:
<?php
function SendSMS($to, $txt)
{
$user = "*******";
$pass = "*******";
$from = "*******";
$txt = substr($txt, 0, 160);
$url = "https://www.voipbuster.com/myaccount/sendsms.php?";
$url .= "username=".$user."&password=".$pass;
$url .= "&from=".$from."&to=".$to."&text=".str_replace(" ", "%20", $txt);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
curl_close($ch);
$results = explode("\n", $result);
return $results[4];
}
?>
这是使用表格的工作部分..
if(isset($_POST['addreminder']))
{
$nummer = $_POST['TEL'];
$tekst = $_POST['bericht'];
$resultaat = SendSMS($nummer, $tekst);
}
$smsreminder = "
<div id='smsreminder' style='width:707px; display:none; height:auto; border:1px solid #999; padding:10px; padding-bottom:30px'>
<br/>
".$addreminders."
<br/>
<form action='".$_SERVER['PHP_SELF']."?companyname=".$name."&tab=smsreminder' method='post'>
<input type='hidden' name='comphash' value='".$reminder['edit_hash']."'>
<label for='tocontact'>ontvanger</label>
<select name='tocontact'>".$options."</select><br/><br/>
<label for='tel. nummer'>tel. nummer</label>
<input type='text' name='TEL' id='TEL' /><br/><br/>
<label for='message'>smsbericht</label>
<textarea name='bericht' id='bericht'></textarea><br/><br/>
<label for='addreminder' style= 'margin-left:50px;'> </label>
<input type='submit' name='addreminder' value='Add Reminder' />
</form>
</div>
";
答案 0 :(得分:1)
以下是不起作用的代码条带......
$nummer = $_POST['+0031*******'];
$tekst = $_POST['this is a sms message'];
由于某种原因,您已将号码和文字放在$_POST[]
内。这只有在$_POST[]
中有一个名为&#39;这是一条SMS消息的变量时才有效,因为它有空格而不会发生。要解决此问题,只需取出$_POST[]
并将其替换为
$nummer = '+0031*******';
$tekst = 'this is an sms message';
如果您想从$_POST[]
获取,请将$_POST[]
内的文字替换为您想要获取的输入的名称。
答案 1 :(得分:0)
你需要使用像这样的cron作业:
0 12 * * * php path/to/command/execute_sms.php
这例如每天中午12点(服务器时间)从php cli触发脚本。
但是,如果使用UNIX系统,首先需要使用fallowing命令使脚本可执行,以使其可以从cli执行:
chmod +x path/to/command/execute_sms.php
答案 2 :(得分:0)
问题在于:
$nummer = $_POST['+0031*******'];
$tekst = $_POST['this is a sms message'];
如果使用cron作业执行此脚本,则$ _POST将无法使用,只是因为您可能会执行GET请求。
其次,你要的是“+31 ***”的帖子值。您应该使用正确的键,可能是$ _POST ['number']或$ _POST ['message']而不是值。
用这个替换这两行,它应该可以工作:
$nummer = '+31****';
$tekst = 'this is a text message';