Jump to content

Recommended Posts

I have a sending page, it php page. 

this page I used to send text to users in database 

 

In fact, In my database I have 27969 users 

 

when I send a text only  go for 17106 only 

 

where reaming users why this php page didn't sent to all 27969 

 

please help me 

----------------------

 

this my code :

 

<?php
include('session.php');
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
 <?php
header('Content-type: text/html; charset=utf-8');
  //generic php function to send GCM push notification
   function sendPushNotificationToGCM($registatoin_ids, $message) {
//Google cloud messaging GCM-API url
        $url = 'https://android.googleapis.com/gcm/send'; 
 
 
 
        $fields = array(
            'registration_ids' => $registatoin_ids,
            'data' => $message,
        );
 
define("GOOGLE_API_KEY", "AIzaSyB3x8jNi11zyqUX_ShdRC65TwK1IG2XJ1");//saeed    
 
 
        $headers = array(
            'Authorization: key=' . GOOGLE_API_KEY,
            'Content-Type: application/json'
        );
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0); 
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));
//curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 );
        $result = curl_exec($ch);       
        if ($result === FALSE) {
            die('Curl failed: ' . curl_error($ch));
        }
        curl_close($ch);
        return $result;
    }
?>
 
<?php
header('Content-type: text/html; charset=utf-8');
$response = array();
require_once __DIR__ . '/db_connect.php';
$db = new DB_CONNECT();
 
if (isset($_GET['level']) &&isset($_GET['m1']) &&isset($_GET['m2']) &&isset($_GET['m3']) &&isset($_GET['m4']) &&isset($_GET['m5']) &&isset($_GET['m6']) &&isset($_GET['m7'])){
$level=$_GET['level'];
 
 
$m1=$_GET['m1'];
$m2=$_GET['m2'];
$m3=$_GET['m3'];
$m4=$_GET['m4'];
$m5=$_GET['m5'];
$m6=$_GET['m6'];
$m7=$_GET['m7'];
 
 
$m11=mysql_real_escape_string($_GET['m1']);
$m21=mysql_real_escape_string($_GET['m2']);
$m31=mysql_real_escape_string($_GET['m3']);
$m41=mysql_real_escape_string($_GET['m4']);
$m51=mysql_real_escape_string($_GET['m5']);
$m61=mysql_real_escape_string($_GET['m6']);
$m71=mysql_real_escape_string($_GET['m7']);
 
mysql_query("SET NAMES 'utf8'");
$resultaa = mysql_query("INSERT words (id, level, m1, m2, m3, m4, m5, m6, m7) VALUES (NULL,'$level','$m11','$m21','$m31','$m41','$m51','$m61','$m71')");
$id = mysql_insert_id();
 
if($level == 0){
$result = mysql_query("SELECT Rid FROM users ");
 
}else{
$result = mysql_query("SELECT Rid FROM users where level = '$level' OR level = '4'");
//$result = mysql_query("SELECT Rid FROM users where level = '$level'");
}
 
$message = array(
'word_id' => $id,
'm1' => $m1,
'm2' => $m2,
'm3' => $m3,
'm4' => $m4,
'm5' => $m5,
'm6' => $m6,
'm7' => $m7,
'level' => $level
);
 
if (mysql_num_rows($result) > 0) {
for($counter = 0; $counter<mysql_num_rows($result) ; $counter+=1000){
$gcmRegIds=array();
for($counter2=$counter ; $counter2<$counter+1000;$counter2++){
if($counter2<mysql_num_rows($result)){
$row = mysql_fetch_array($result);
$gcmRegIds[]=$row["Rid"];
 
}
}
 
$pushStatus = sendPushNotificationToGCM($gcmRegIds, $message);
echo $pushStatus;
 
}
 
$time = microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"];
echo "Process Time: {$time}";
 
 
}else {
$response["success"] = 0;
$response["message"] = "No user found";
echo json_encode($response);
}
 
 
 
 
 
 
 
//echo $result;
} 
else {
// required field is missing
$response["success"] = 0;
$response["message"] = "Required field(s) is missing";
 
// echoing JSON response
echo json_encode($response);
} 
?>
</body>
</html>
Edited by Ch0cu3r
Link to comment
https://forums.phpfreaks.com/topic/297831-it-is-not-delivered-all-users/
Share on other sites

It is ALWAYS good programming practice to check the results of operations that can impact your own process. If you run a query you should always check the result of it before trying to use the query results (check the PHP manual for examples on how to use the query function). If you open an external file you should check that the open call actually worked (see the manual again for 'fopen' for examples). That way you avoid running into problems later on in your scripts.

 

In this case when you make those calls to Google (an external source!) you should be checking the response to make sure it worked. And when it doesn't work you should know how the source is returning any important info that can help you (check your API instructions/manual). That is what scootstah is trying to tell you.

 

Other things that you can do are to turn on PHP error checking during your development cycle (see my signature) and when really stuck look at the php error log file on your server for any messages that may be posted there (google 'php error_log').

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.