mastura Posted May 9, 2019 Share Posted May 9, 2019 Hi everyone.. need some guide here . is there anything wrong with my code to store getclient data into my localhost database. <?php $whmcsUrl = "https://domain.com/"; // For WHMCS 7.2 and later, we recommend using an API Authentication Credential pair. // Learn more at http://docs.whmcs.com/API_Authentication_Credentials // Prior to WHMCS 7.2, an admin username and md5 hash of the admin password may be used. $username = "xxxxxxxxxxxxxxxxxx"; $password = "yyyyyyyyyyyyyyyyy"; // Set post values $postfields = array( 'username' => $username, 'password' => $password, 'action' => 'GetClients', 'responsetype' => 'json', ); // Call the API $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $whmcsUrl . 'includes/api.php'); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_TIMEOUT, 30); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postfields)); $response = curl_exec($ch); if (curl_error($ch)) { die('Unable to connect: ' . curl_errno($ch) . ' - ' . curl_error($ch)); } curl_close($ch); // Decode response $jsonData = json_decode($response,true); $clients = $jsonData['clients']['client']; foreach ($clients as $client) { foreach($client as $key => $value){ $firstname = $key => $value['firstname']; $companyname = $key => $value['companyname']; $sql = "INSERT INTO members ( `firstname`, `companyname`) VALUES ('$firstname', '$companyname')"; $query = $connect->query($sql); if ($connect->query($sql) === TRUE) { echo "New record created successfully"."<br>"; } else { echo "Error: " . $sql . "<br>" . $connect->error."<br>"; } } } Really need this to be done asap.. please help me.. thank you 0 Quote Link to comment Share on other sites More sharing options...
steven99 Posted May 9, 2019 Share Posted May 9, 2019 You aren't escaping your input, even though it is coming from a WHMCS install, but that is up to you. I presume $connect is declared above this code and is a valid? If it is, not seeing any issues right off. What issues are you having? 0 Quote Link to comment Share on other sites More sharing options...
mastura Posted May 10, 2019 Author Share Posted May 10, 2019 6 hours ago, steven99 said: You aren't escaping your input, even though it is coming from a WHMCS install, but that is up to you. I presume $connect is declared above this code and is a valid? If it is, not seeing any issues right off. What issues are you having? now i have succesfully stored the api data to my localhost database. but the data is duplicated once i refresh the page. Not sure what is happening. Can you please take a look on the code. // Decode response $jsonData = json_decode($response,true); //store client data in db $clients = $jsonData['clients']['client']; foreach ($clients as $client) { $firstname = $companyname = $email = ''; foreach($client as $key => $value){ switch($key){ case 'firstname': $firstname = $value; break; case 'companyname': $companyname = $value; break; case 'email': $email = $value; break; } } if($firstname && $companyname && $email){ $sql = "INSERT INTO members ( `firstname`, `companyname`, `email`) VALUES ('$firstname', '$companyname', '$email');"; $query = $connect->query($sql);} if ($connect->query($sql) === TRUE) { echo "New record created successfully"."<br>"; } else { echo "Error: " . $sql . "<br>" . $connect->error."<br>"; } } 0 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.