2015-12-20 2 views
5

Ich habe eine Anwendung, die eine SMS-API erstellen und implementiert, aber es sendet an wenige Zahlen, wenn ich alle aus der Datenbank auswählen und senden, sollte es Senden Sie an etwa 1100 Nummern, aber es tut nichts.Übergeben zu viele Telefonnummern zu einer URL fehlgeschlagen - SMS senden API

Ich fand heraus, dass es wegen der Länge der URL, in die die Zahlen eingegeben wurden, nicht gesendet wurde, weil ich die Zahlen wiederholte und sie in das Textfeld kopierte, das das Senden früher erledigt.

Ich habe auch die Zahl auf etwa hundertfünfzig reduziert, aber es hat keinen Fehler geworfen, aber nicht gesendet, wie korrigiere ich das.

mein Beispielcode Siehe das Formular unten

$phone_group_total = $phone_numbers.", ".$send_it.", ".$selected_staffs; 
    function httpRequest($fields, $sendpage){ 
    $curl = curl_init($sendpage); 
    curl_setopt($curl, CURLOPT_POST, true); 
    curl_setopt($curl, CURLOPT_POSTFIELDS, $fields); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
    $result = curl_exec($curl); 
    curl_close($curl); 

    $sendpage ="http://smsexperience.com/components/com_spc/smsapi.php?"; 
    $sendsms ="username=user&password=pass"; 
    $sendsms .="&sender=$sender_id"; 
    $sendsms .="&recipient=".$phone_group_total; 
    $sendsms .="&message=$message"; 
    httpRequest($sendsms, $sendpage); 

ich eine get-Methode für meine Form Vorlage verwendet wird, habe ich versucht, mit Post und meine Botschaften sendeten nicht. Wie repariere ich es und sende es an große Nummern. Vielen Dank.

+0

Die URL ist auf 2000 Zeichen begrenzt, was erklärt, warum Ihre URL abgeschnitten ist. Sie müssen 'POST' verwenden. Um Hilfe zu bekommen, warum 'POST' nicht funktioniert, müssen Sie den von Ihnen verwendeten Code anzeigen. –

+0

Funktion ist im Beispielcode nicht ordnungsgemäß geschlossen. – trincot

+0

verpasst Schließen der Funktion beim Posten der Frage, der Code für Post ist wie folgt; – optimalresource

Antwort

0
if(isset($_POST['send_sms'])) 
    { 
    $sender_id = mysql_real_escape_string($_POST['sender_id']); 
    $phone_numbers = mysql_real_escape_string($_POST['phone_numbers']); 
    $message = ($_POST['message']); 
    $client_phone = ($_POST['client_phone']); 
    $employee_phone = ($_POST['employee_phone']); 
    $tailor_phone = ($_POST['tailor_phone']); 

    if($client_phone!="") 
    { 
    $sql = "SELECT mobile_phone FROM personal_details"; 
    $res = mysql_query($sql) or die(mysql_error()); 
    $recipients = array(); 

    while($row = mysql_fetch_array($res)) { 
    $recipients[] = $row['mobile_phone']; 
    } 

    $send_it = implode(', ', $recipients); 

    } 

    if($employee_phone!="") 
{ 
    $sql1 = "SELECT mobile_phone FROM employee_db"; 
    $res1 = mysql_query($sql1) or die(mysql_error()); 
$recipients1 = array(); 

    while($row1 = mysql_fetch_array($res1)) { 
    $recipients1[] = $row1['mobile_phone']; 
    } 

    $send_it1 = implode(', ', $recipients1); 
    } 

    if($tailor_phone!="") 
    { 
    $sql2 = "SELECT mobile_phone FROM employee_db WHERE department='Tailors'"; 
    $res2 = mysql_query($sql2) or die(mysql_error()); 
    $recipients2 = array(); 

while($row2 = mysql_fetch_array($res2)) { 
$recipients2[] = $row2['mobile_phone']; 
} 

$send_it2 = implode(', ', $recipients2); 
} 

    if($tailor_phone !="" && $employee_phone!="") 
{$selected_staffs = $send_it1;}else if($tailor_phone=='tailors' &&  $employee_phone=="") 
{$selected_staffs = $send_it2;}else if($tailor_phone=="" &&  $employee_phone=='employees') 
{$selected_staffs = $send_it1;} 

if($_POST['phone_numbers']=="") 
{ 
$phone_group_total = $send_it.", ".$selected_staffs; 
}else{ 
$phone_group_total =  $phone_numbers.", ".$send_it.", ".$selected_staffs;}  
function httpRequest  ($fields, $sendpage){ 
$curl = curl_init($sendpage); 
curl_setopt($curl, CURLOPT_POST, true); 
curl_setopt($curl, CURLOPT_POSTFIELDS, $fields); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
$result = curl_exec($curl); 
curl_close($curl); 
} 

    $sendpage ="http://smsexperience.com/components/com_spc/smsapi.php?"; 
    $sendsms ="username=user&password=pass"; 
    $sendsms .="&sender=$sender_id"; 
    $sendsms .="&recipient=".$phone_group_total;   $sendsms .="&message=$message"; 
    httpRequest($sendsms, $sendpage); } 

Dies ist das Post-Beispiel für meinen Code, und es sieht nicht einmal die Variablen send_it und so weiter. Aber die Get-Methode sieht alles und funktioniert gut.

0

Ich konnte nun das Problem der Übergabe von zu vielen Argumenten an eine URL lösen, indem ich eine post-Methode verwendete und if ($ _SET ['request_methoD' ] == "POST") und das hat angefangen, die Formularwerte korrekt zu senden und sendet auch meine SMS. Ich habe auch bemerkt, dass mit einer langen Reihe von Zahlen und eine neue Zeile verwendet wird, um die Zahlen zu trennen, der mysql_real_escape_string konvertiert die Zeilen in Zeichen und die Zahlen nicht an die SMS-API, also die Lösung war, den Befehl mysql_real_escape_string und die SMS funktionierten wie Magie für lange Zahlen.