michm4
(michm4)
27 Sierpień 2012 09:21
#1
Witam
Co muszę zrobić, że jak funkcja check_sms zwróci Bad code to wyświetla się źle ?
<?php
function check_sms($host_sms,$kod_sms)
{
// HOST ZABIJAKA.PL
if($host_sms == "zabijaka") {
//by wlochen znaczna poprawa i optymalizacja
$sms = '1';
$apikey = 'aec70c5bdede7f30b9612bfb7a6e76c9';
$_apiAnswer = file_get_contents("http://api.zabijaka.pl/1.1/".$apikey."/sms/".$sms."/".$kod_sms."/sms.json/add");
$answer = json_decode($_apiAnswer);
if($answer->{'error'}){
echo $answer->{'txt'};
//$chceck_sms = '1';
} else if ($answer->{'success'}) {
echo 'Poprawny kod sms:'. $kod_sms. ($answer->{'amount'}?' Doładowuje kwotą: '.$answer->{'amount'}:'');
//$chceck_sms = '0';
}
}
// KONIEC HOST ZABIJAKA.PL
}
if(check_sms("zabijaka", "dsa") == "Bad code") {echo 'zle';} else echo 'dobre';
?>
drobok
(Drobok)
27 Sierpień 2012 09:39
#2
Przecież funkcja nic nie zwraca Masz mieć return a nie echo.
drobok
(Drobok)
27 Sierpień 2012 09:49
#5
Więc zamień echo na return
Zakładając, że ta funkcja kiedykolwiek teraz ci wyświetla bad code if powinien działać. Jednak proponuję tak:
$ret=check_sms('zabijaka', 'dsa');echo $ret=='Bad Code'?$ret:'zły code' [/code]
Ew jeśli nie zadziała:
[code=php]echo ($ret=='Bad Code')?$ret:'zły code'
Nie używaj ", bo interpreter musi sprawdzać czy są zmienne. If w twoim wypadku jest bez sensu :)
wlochen
(Kamil93 Q)
18 Wrzesień 2012 18:06
#6
powyższy kod dobrze działa ale nie jest optymalny, tu masz poprawny kod
<?php
//by wlochen znaczna poprawa i optymalizacja http://amxx.pl/user/509-portek/
$sms = 'wartość sms wysyłana postem lub getem';
$kod = 'kod zwrotny ';
$apikey = 'api key z panelu';
$_apiAnswer = file_get_contents("http://api.zabijaka.pl/1.1/".$apikey."/sms/".$sms."/".$kod."/sms.json/add");
$answer = json_decode($_apiAnswer);
if($answer->{'error'}){
echo $answer->{'txt'};
} else if ($answer->{'success'}) {
echo 'Poprawny kod sms:'. $kod. ($answer->{'amount'}?' Doładowuje kwotą: '.$answer->{'amount'}:'');
}
?>
który był sprawdzany i działa poprawnie
ps. to nie odkop przyda się