2013-11-18 2 views
0

Ребята у меня проблема в следующем коде. Мне нужно отправить массовые sms на 24 000 мобильных номеров. Но если я отправлю его после отправки 150 номеров, это покажет мне ошибку внутреннего сервера и остановит отправку других следующих номеров. Пожалуйста, ознакомьтесь с приведенным ниже кодом и ответьте на положительный код, который действительно может мне помочь.отправка массовых смс останавливается посередине

<?php 
//Code using fopen 
//Change your configurations here. 
//--------------------------------- 
$username = "username"; 
$api_password = "api_password"; 
$sender = "sender"; 
$domain = "domain"; 
$priority = "1";// 1-Normal,2-Priority,3-Marketing 
$method = "POST"; 

//--------------------------------- 
for ($i = 0; $i < $var; $i++) { 
    if (isset($_REQUEST['send'])) { 

     $mobile = $explode_num[$i]; 
     $lenthof_number = strlen($mobile); 
     if ($lenthof_number >= 10) { 
      $message = $_REQUEST['message']; 

      $username = urlencode($username); 
      $password = urlencode($api_password); 
      $sender = urlencode($sender); 
      $message = urlencode($message); 

      $parameters = "username=$username&api_password=$api_password&sender=$sender&to=$mobile&message=$message&priority=$priority"; 


      if ($method == "POST") { 
       $opts = array(
        'http' => array(
         'method' => "$method", 
         'content' => "$parameters", 
         'header' => "Accept-language: en\r\n" . 
          "Cookie: foo=bar\r\n" 
        ) 
       ); 

       $context = stream_context_create($opts); 

       $fp = fopen("http://$domain/pushsms.php", "r", false, $context); 
      } else { 
       $fp = fopen("http://$domain/pushsms.php?$parameters", "r"); 
      } 

      $response = stream_get_contents($fp); 
      fpassthru($fp); 
      fclose($fp); 


      if ($response == "") 
       echo "Process Failed, Please check domain, username and password."; 
      else 
       echo "$response"; 


     }//third if 
    }//second if 


}//first if 
}//main for 

?> 

ответ

0

Возможно, ваша страница превысила максимальное время выполнения. Поместите следующий код в верхней части страницы и попробуйте:

ini_set("memory_limit","128M"); 
//ini_set("memory_limit","256M"); 
//this sets it unlimited 
ini_set("max_execution_time",0); 
+0

она работает хорошо для меня в локальном сервере, но я по-прежнему имеют те же проблемы в онлайн-серверы, я использую серверы godaddy для отправки этого и на локальном сервере. Я получаю заметку для каждого отправленного sms, и это fopen(): Тип содержимого не указан, предполагая приложение/x-www-form-urlencoded в C: \ xampp \ htdocs \ travels \ all_send_sms.php Вы можете помочь мне на этом и в онлайн-сервере, я получаю 500 человек al server error –

+0

Есть две вещи: 1) первая копия вставить URL: http: // $ domain? username = $ username & api_password = $ api_password & sender = $ sender & to = $ mobile & message = $ message & priority = $ priority и проверить, работает ли sms или нет. 2) secondaly вам нужно обратиться к вашим провайдерам серверов (godaddy), чтобы разрешить вам взаимодействовать (разрешить разрешение) с вашим доменом sms-сервера. Для этого вы также можете попробовать изменить права доступа к вашему файлу со всеми указанными выше кодами. –

0

Добавьте это на вершине вашего PHP скрипт

<?php 
set_time_limit(0); 
Смежные вопросы