Porównywanie równych ciągów zawodzi
Po wielu godzinach debugowania w końcu ustaliłem, że z jakiegoś powodu na konkretnym serwerze sieciowym z moim małym skryptem dwa równe łańcuchy są najwyraźniej interpretowane jako nie równe sobie.
Nie ma dla mnie żadnego sensu, ponieważ próbowałem porównać używając „==” i „strcmp”. Chociaż ten kod działa idealnie na moim serwerze, osoba, która uruchamia mój skrypt, nadal nie działa.
Wyniki logowania to ...
DANE PRZED EXPLODE: result = success;
DANE PO EXPLODE: wynik = sukces
NIE
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $GLOBALS["api_url"]);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 100);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);
$data = curl_exec($ch);
curl_close($ch);
$data1_log = "DATA BEFORE EXPLODE: " . $data;
log_activity($data1_log);
$data = explode(";",$data);
$data2_log = "DATA AFTER EXPLODE: " . $data[0];
log_activity($data2_log);
if (strcmp($data[0], "result=success") == 0)
{
log_activity("YES");
}
else
{
log_activity("NO");
}