2017-11-16 4 views
-2

데이터베이스 테이블에있는 번호를 사용하여 SMS를 보내고 싶습니다. 시도했습니다 기능을 포함하지만 메시지가 번호로 전송되지 않았습니다. 오류 표시가 없습니다.PHP를 사용하여 데이터베이스 테이블에있는 번호를 사용하여 SMS 보내기

<?php 

//connect to database 

$con = mysqli_connect('127.0.0.1','root',''); 

//select database 
mysqli_select_db($con, 'appointment'); 

if($_POST['accept']) 
{ 
    $sql = "UPDATE service SET remarks = 'Accepted' WHERE ID=$_POST[id]"; 

include"sms.php"; 
} 
else if($_POST['reject']) 
{ 
    $sql = "UPDATE service SET remarks = 'Rejected' WHERE ID=$_POST[id]"; 
} 

//Execute Query 
if(mysqli_query($con,$sql)) 
    header("refresh:1; url=app.php"); 
else 
    echo "Unsuccessful"; 
?> 

다음은 쉽게 내 문제를 이해할 수 있도록 내가 약속 테이블의 스크린 샷을 제공 할 것입니다

<?php 

$phone= "SELECT contact FROM service WHERE ID=$_POST[id]"; 
$message= "You're Appointment is Accepted"; 

send_sms($phone,$message); 

function send_sms($phone, $message) { 
    $ch = curl_init(); 
    $parameters = array(
    'apikey' => '*****************', //Your API KEY 
    'number' => $phone, 
    'message' => $message, 
    'sendername' => 'SEMAPHORE' 
); 
    curl_setopt($ch, CURLOPT_URL,'http://api.semaphore.co/api/v4/messages'); 
    curl_setopt($ch, CURLOPT_POST, 1); 

    //Send the parameters set above with the request 
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($parameters)); 

    // Receive response from server 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    $output = curl_exec($ch); 
    curl_close ($ch); 

    //Show the server response 
    echo "Message Successfully Delivered"; 
} 
?> 

내 sms.php의 코드입니다. 당신이 보내는

enter image description here

+0

PHP는 코드를 include/require 또는 copy하여 붙이기 만하면 else()를 추가합니다. 당신은 데이터베이스를 쿼리하지 않고 단지 SQL 문자열로 $ phone을 가지고 있습니까? $ phone = "서비스에서 연락처 선택 WHERE ID = $ _ POST [id]"; –

+0

@LeszekRepie 당신이 말씀하신 것을 시도했습니다. 나는 코드를 복사 해 넣지 만 "function send_sms ($ phone, $ message)"에 오류가 있습니다. 어떻게이 선생님을 해결할 수 있습니까? 미리 감사드립니다. – Cristiako

+1

* "function send_sms ($ phone, $ message)" "*에 오류가 있습니다. * * 질문에 * 오류 메시지를 그대로 포함하십시오. – greybeard

답변

0

아닌 전화 번호, 그러나 당신의 SMS 서비스에 쿼리.

$phone= "SELECT contact FROM service WHERE ID=$_POST[id]"; 
send_sms($phone,$message); 
     ... 
function send_sms($phone, $message) { 
     ... 
    $parameters = array(
    'apikey' => '*****************', //Your API KEY 
    'number' => $phone, /*"SELECT contact FROM service WHERE ID=$_POST[id]" */ 
    'message' => $message, 
    'sendername' => 'SEMAPHORE' 
); 

메시지를 보내기 전에 쿼리를 실행하고 실제 전화 번호를 검색하십시오. (귀하의 SMS 서비스는 귀하의 질의에 대해 잘 모릅니다.)

그리고 SQL 주입 경고를주의 깊게 취하십시오. 사이버 범죄자들은 ​​일반적으로 당신과 같은 취약한 웹 사이트가 생방송 된 후 하루 안에 이 될 것입니다. 공용 인터넷은 위험한 장소입니다. SMS 서비스 비용을 지불하고 있습니다. 스패머가 메시지를 보내는 데 서비스를 사용했기 때문에 미화 2 만 달러를 청구하는 것은 싫었습니다. 당신은 당신의 평판에 대한 손실을 더욱 싫어할 것입니다.

+0

코멘트에서, OP는 이것을 알고있다. ("내가 보여준 테이블에서 전화 번호를 얻고 싶다.")하지만 mysqli를 사용하여 SQL SELECT 쿼리를 실행하고 결과를 얻는 방법을 알지 못한다. 아주 쉽게 인터넷 검색을 할 수 있습니다. 그런 다음 다른 버전의 코드와 관련이있는 별도의 문제가 있습니다. 나는 당신이 위에 만든 점들을 취하지 만, 실제로 그들이 실제로 그 질문에 답할지는 확신하지 못한다. (IMO 질문은 실제로 현재의 형태로 대답 할 수 없다.) – ADyson

+0

Understood, @ ADyson. 당신은 물론 자신의 대답을 쓸 수 있습니다. –

+0

그래도 말했듯이,보고 된 오류 메시지를 수정한다는 측면에서 볼 때 사실대로 답할 수 있다고는 생각하지 않습니다. mysqli를 사용하여 결과 집합을 가져 오는 방법에 대한 온라인 예제를 100 번 반복하는 것을 낭비하지 않을 것입니다. – ADyson