отправка смс с помощью cron job и php - PullRequest
0 голосов
/ 06 февраля 2012

У меня есть вопрос о моем сценарии для отправки смс-напоминания, моя цель - сделать приложение, которое получает информацию о дне рождения из базы данных и отправляет смс за день до этого ... У меня есть «отправка смс»часть работает, используя форму ... но теперь я хочу использовать ее в PHP-файле Cron Triggerd.
Сначала я попытался отправить письмо, и эта часть работает, но теперь я борюсь с частью смс.

Это первый раз, когда я работаю с заданием cron, и я совершенно новичок в PHP ..

первый код php повторяется с cron.тот же фрагмент кода, чтобы $ _POST nummer (число) и текст (текст) .., как я использовал в последнем коде 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:

<?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;'>&nbsp</label>
        <input type='submit' name='addreminder' value='Add Reminder' />

        </form>
    </div>

"; 

Ответы [ 3 ]

1 голос
/ 06 февраля 2012

Вот полоска кода, которая не работает ...

$nummer = $_POST['+0031*******'];
$tekst = $_POST['this is a sms message'];

Вы по какой-то причине поместили номер и текст в $_POST[]. Это работало бы, только если бы в $_POST[] была переменная, называемая «это SMS-сообщение», чего бы не произошло, потому что в ней есть пробелы. Чтобы это исправить, просто возьмите $_POST[] и замените его на

$nummer = '+0031*******';
$tekst = 'this is an sms message';

Если вы хотите получить его из $_POST[], замените текст внутри $_POST[] на имя ввода, из которого вы хотите его получить.

0 голосов
/ 06 февраля 2012

Проблема в:

$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';
0 голосов
/ 06 февраля 2012

Вам нужно использовать задание cron, например:

0   12   *   *   * php path/to/command/execute_sms.php

Это, например, запускает скрипт из php cli в 12:00 часов (серверное время) каждый день.

Однако, если вы используете систему UNIX, вам сначала нужно сделать сценарий исполняемым с помощью следующей команды, чтобы сделать его исполняемым из cli:

chmod +x path/to/command/execute_sms.php
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...