Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   PHP (https://forum.zone-game.info/forumdisplay.php?f=125)
-   -   Отправка смс goip (https://forum.zone-game.info/showthread.php?t=39474)

xolseg 01.11.2015 16:52

Отправка смс goip
 
Не нашёл скрытого радела. :-(

Вообщем, добавляем данные по, входу в бд+даныые от вебморды goip.
<?php
/**
 * Created by IntelliJ IDEA.
 * User: user
 * Date: 04.10.15
 * Time: 0:25
 */
if($_GET['token']<>"XxxXuilo") die("Не передан token"); //token передаётся из формы отправки, типа "пароля"
if(empty($_GET['time'])) die("Не передан параметр время");
if(empty($_GET['text'])) die("Не передан параметр текст СМС");
 
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
include 'dbconfig.php'; //Все настройки тут
//dbhost - сервер
//dbuser - пользователь
//dbpass - пароль пользовтеля
//goip_addr - адрес ip4 сайта goip(локальный)
//goip_user - пользователь
//goip_password - пароль 
 
 
$conn = mysqli_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql');
mysqli_select_db($conn, $dbname);
 
$time = $_GET['time'];
$text1 = trim($_GET['text']);
if (iconv_strlen($text1,'UTF-8') < 15 or iconv_strlen($text1,'UTF-8') > 990) {
    exit ("Сообщение должно состоять не менее 15 и не более 60 символов");
}
$textarr = explode("\n",wordwrap($text1, 60,"\n",1));
 
$calldate = date("Y-m-d");
//$сalldate = '2015-10-03';
$strSQL = "SELECT DISTINCT src FROM asterisk.cdr WHERE (dst = 'support' AND calldate >= '$calldate $time:00')";
$res = mysqli_query($conn, $strSQL);
 
function sendSms($value,$text,$counter){
 
    $context = stream_context_create(array(
        'http' => array(
            'header' => "Authorization: Basic " . base64_encode("$goip_user:$goip_password")
        )
    ));
    $data = file_get_contents($goip_addr . "/default/en_US/tools.html?type=sms", false, $context);
    preg_match_all("|name=\"smskey\" value=\"(.*?)\">|is", $data, $smskey);
 
    $postdata = http_build_query(
        array(
            'line' => $counter,
            'smskey' => $smskey[1][0],
            'action' => 'SMS',
            'telnum' => $value,
            'smscontent' => $text,
            'send' => 'Send',
        )
    );
    $context = stream_context_create(
        array('http' =>
            array(
                'method' => 'POST',
                'header' => "Authorization: Basic " . base64_encode("$goip_user:$goip_password") . "\r\n" .
                    "Content-type: application/x-www-form-urlencoded\r\n",
                'content' => $postdata
            )
        )
    );
    file_get_contents($goip_addr . "/default/en_US/sms_info.html?type=sms", false, $context);
 
}
 
while ($row = mysqli_fetch_array($res, MYSQLI_ASSOC)) {
    $numbers[] = ($row['src']);
}
$counter=1;
$i=0;
echo "<table border='1'>";
echo "<tr><td>Номер</td><td>Текст СМС</td></tr>";
foreach ($numbers as &$value)
{foreach ($textarr as &$text){
    echo "<tr><td>$value</td><td>$text</td></tr>";
    //echo "$value:$text" . "<br />";
    sendSms($value,$text,$counter);
        sleep(2);}
 
    $counter++;
    $i++;
//делался каунтер для goip8, т.е. для отправки с 8 симкарт, работает след образом
//если смс 300 символов, то, 65 символов отправляются в 1 смс, след в другой и т.д.
    if ($counter > 7){
        sleep(2);
        $counter =1;}
}
echo "</table>";
mysqli_close($conn); die("$i SMS отправленны");
Code: PHP
Добавлено через 13 минут
Форма
<?php
/**
 * Created by IntelliJ IDEA.
 * User: user
 * Date: 03.10.15
 * Time: 17:21
 */
include 'dbconfig.php';
?>
 
 
<form method="get" action="send.php">
 <h3>Введите время формат(часы:минуты)</h3>
 <input type="time" name="time"><br>
 <h3>Введите текст СМС для рассылки</h3>
 <input type="text" name="text" maxlength="690"><br> //если Ваш, ебанутый сотрудник накатал в СМС или для СМС "Войну и Мир", то его пошлёт НАЙУХ!!!"
 <h3>Пароль</h3>
 <input type="text" name="token"><br><br>
 <input type="submit" name="submit" value="Отправить СМС">
</form>
 
Code: PHP

nn03 03.11.2015 21:09

Re: Отправка смс goip
 
годно годно

xolseg 08.11.2015 15:19

Re: Отправка смс goip
 
Забыл упомянуть, сделал для отправки смс для asterisk. Вводные данные, время, текст и пароль.
Т.е. система выглядит так, на астре много входящих звонков в базе, необходимо вычленить звонки с 10 утра, устанавливаем время, если необходима дата от и до, меняем sql запрос.

Делалось для случая "завала" коллцентра звонками за сутки.
Пы.Сы. Так же можно сделать чтение номеров просто с базы и отправлять данные.


Текущее время: 00:05. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd. Перевод: zCarot