Почему возвращает false. PHP

238
25 сентября 2021, 23:20
    function securecode(){
    $Curl = curl_init();
    curl_setopt_array($Curl, array(
        CURLOPT_URL => 'https://karton.ua/securecode/check?sid='.$_GET['sid'],
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_POST => true,
        CURLOPT_HEADER => true,
        CURLOPT_REFERER => $_SERVER['REFERER'],
        CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36',
    ));
    $res = curl_exec($Curl);
    curl_close($Curl);
    $location = stristr($res, 'location:');
    $url = stristr($location, 'https://');
    $resExp = explode('/', $url);
    $resEnd = end($resExp);
    $resl = (string)$resEnd=="fail"?true:false;
    var_dump($resl);
    if($resl == "fail"){
        headerLocation('https://site/safedeal/payment/result.php?res=fail');
        masseges($_GET['sum'], $_GET['url']);
    }else{
        headerLocation('https://site/safedeal/payment/result.php?res=ok');
    }
}

Есть вот такая функция! Результатом curl является заголовок с редиректом на статус оплаты: Положительная https://karton.ua/status/ok

Отрицательная https://karton.ua/status/fail

Так вот я проверяю конец ссылки и узнаю прошла ли оплата или нет. Но я не могу понять почему $resl = (string)$resEnd=="fail"?true:false; Возвращает fasle;

Answer 1
$resl = (string)$resEnd=="fail"?true:false;

Эта переменная будет true если последнее слово "fail", и false в остальных случаях.

Далее вы в boolean переменной ищите строку "false", которой явно нет, поэтому условие никогда не будет истинным.

Я бы написал этот кусок кода вот так:

$resl = $resEnd=="ok"?true:false;
if($resl){
   headerLocation('https://site/safedeal/payment/result.php?res=ok');
}else{
   headerLocation('https://site/safedeal/payment/result.php?res=fail');
   masseges($_GET['sum'], $_GET['url']);
}
READ ALSO
Что нужно делать в файле config и init?

Что нужно делать в файле config и init?

Делаю что-то своего движкаБлоговый сайт, так вот в каждой странице нужно подключать файл с переменными, константами и модулями

140
Как написать клиент для чужого сайта?

Как написать клиент для чужого сайта?

возник такой вопрос: возможно ли написать приложение под android, которое будет работать со сторонним сайтом? Интересующая на нем страничка...

177
Расшифровка шифра Цезаря

Расшифровка шифра Цезаря

Написал алгоритм, который шифрует текст методом Цезаря, с помощью таблицы ASCII: Моя программа шифрует строки, в которых используются русские...

108