Опубликованные данные в Curl, имеющие проблемы - Нет ответа от curl - PullRequest
0 голосов
/ 06 июля 2019

Я пытаюсь реализовать проверку спама на веб-сайтах, как у меня есть веб-сайт A, B, C, D ... Я создаю централизованный фильтр проверки на спам, скажем, xyz.com/spamcheck.php

Я использую CURL для публикации данных с сайта A на xyz.com/spamcheck.php и в моем spamcheck.php я использую библиотеку Akismet Fuspam, чтобы проверить ее и вернуть ответ обратно на мой веб-сайт A, основываясь на ответе от моей spamcheck, я решу отправить письмо или отказаться.

Пока я не могу публиковать значения в свой spamcheck.php через CURL и получать от него ответ.


    // DATA PROCESSING
    $data = array();

    $data['ip']                     = get_client_ip();
    $data['user_agent']             = $_SERVER['HTTP_USER_AGENT'];
    $data['referrer']               = $_SERVER['HTTP_REFERER'];
    $data['comment_author']         = $_POST['first_name'];
    $data['comment_author_email']   = $_POST['email'];
    $data['comment_content']        = $_POST['message'];

    $params = json_encode($data);

    $url                            = "https://www.my-spam-check-url.com/spamcheck.php";

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $params);

    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); // On dev server only!

    $spamResult = curl_exec($ch);

    curl_close($ch);

     $spamResult = json_decode($spamResult,true);
     print_r($spamResult);

Я ожидаю, что результат будет TRUE или FALSE. Я получаю пустой ответ

spamcheck.php

// Include Akismet F-U-Spam function.
include 'includes/akismet.fuspam.php';

// Function to get the client IP address
function get_client_ip() {
    $ipaddress = '';
    if (isset($_SERVER['HTTP_CLIENT_IP']))
        $ipaddress = $_SERVER['HTTP_CLIENT_IP'];
    else if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
        $ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR'];
    else if(isset($_SERVER['HTTP_X_FORWARDED']))
        $ipaddress = $_SERVER['HTTP_X_FORWARDED'];
    else if(isset($_SERVER['HTTP_FORWARDED_FOR']))
        $ipaddress = $_SERVER['HTTP_FORWARDED_FOR'];
    else if(isset($_SERVER['HTTP_FORWARDED']))
        $ipaddress = $_SERVER['HTTP_FORWARDED'];
    else if(isset($_SERVER['REMOTE_ADDR']))
        $ipaddress = $_SERVER['REMOTE_ADDR'];
    else
        $ipaddress = 'UNKNOWN';
    return $ipaddress;
}

/*API KEY - 123XYZ*/

$comment    = array();
$key        = "123XYZ";
$type       = "check-spam";

/*  Get Posted Data from website */
$postedIp                       = $data['ip'];
$postedUserAgent                = $data['user_agent'];
$postedReferrer                 = $data['referrer'];
$postedcomment_author           = $data['comment_author'];
$postedcomment_author_email     = $data['comment_author_email'];
$postedcomment_content          = $data['comment_content'] ;

/* Data Processing End */
if(empty($postedIp) || $postedIp == 'UNKNOWN' || $postedIp == ''){
    $ip = get_client_ip();
}


if(empty($postedUserAgent) || $postedUserAgent == ''){
    $user_agent = $_SERVER['HTTP_USER_AGENT'];
}


if(empty($postedReferrer) || $postedReferrer == ''){
    $referrer   = $_SERVER['HTTP_REFERER'];
}


$permalink = $blog = $authUrl = "https://www.example.net/";

$comment['blog']                    = $blog;
$comment['user_ip']                 = $ip;
$comment['user_agent']              = $user_agent;
$comment['referrer']                = $referrer;
$comment['permalink']               = $permalink;
$comment['comment_type']            = "ContactUs";
$comment['comment_author']          = $postedcomment_author;
$comment['comment_author_email']    = $postedcomment_author_email;
$comment['comment_author_url']      = $authUrl;
$comment['comment_content']         = $postedcomment_content;


$spamCheckResult = fuspam( $comment , $type , $key );


echo $spamCheckResult;

Ответы [ 2 ]

0 голосов
/ 08 июля 2019

Если ваш spamcheck.php работает в соответствии с вашим письменным кодом, чем раньше echo при последнем использовании ob_clean();.поэтому я удалю пробел или любой другой, прежде чем вернуть ваш фактический результат.

0 голосов
/ 06 июля 2019

Я смотрю на ваш код, я не могу быть уверен, что print_r - это то, как вы проверяете, но если это так, имейте в виду, что:

print_r (true) выведет 1, а print_r (false) выведет "", пусто.

Может быть, вместо отладки использовать var_dump?

BR

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...