Проверка на две servID-та към Мобио

ludasam

Registered
Имам два servID-та от mobio.bg искам проверката да става от една форма:
$servID = 11111;
$servID = 11112;

Ако кода не е валиден при двете ID-та да вади 'error', ако обаче е валиден поне при един от двата $servID да извади резултат 'enjoy' и след това servID-то, на което е получен отговора.

Надявам се да сте ме разбрали :)

PHP:
<?php
function mobio_checkcode($servID, $code, $debug=0) {
	$res_lines = file("http://www.mobio.bg/code/checkcode.php?servID=$servID&code=$code");
	$ret = 0;
	if($res_lines) {
		if(strstr("PAYBG=OK", $res_lines[0])) {
			$ret = 1;
		} else {
			if($debug)
				echo $line."\n";
		}
	} else {
		if($debug)
			echo "Unable to connect to mobio.bg server.\n";
			$ret = 0;
	}
	return $ret;
	}
	$servID  = 11111;
	$servID  = 11112;
if(isSet($_REQUEST['submit'])) {
$code = $_REQUEST['code'];
     if(mobio_checkcode($servID, $code, 0) == 1) {
           echo 'enjoy $servID';
     } else {
           echo 'error';
     }
} else {
echo '<form method="POST">
<input type="text" name="code" />
<input type="submit" name="submit" value="submit" />
</form>';
}
?>
 
По-добре не копирай кодовете предоставени от мобио, защото са пълни с грешки. Или като копираш проверявай дали са правилни.


Иначе това, което си направил в момента е, че взимаш само ID-то, което съдържа 11112

PHP:
function mobio_checkcode($servID, $code, $debug = 0) {

	$res_lines = file("http://www.mobio.bg/code/checkcode.php?servID={$servID}&code={$code}");
			
	$ret = 0;
	if($res_lines) {
		if(strstr($res_lines[0], "PAYBG=OK")) {
			$ret = 1;
	}
	else{
		if($debug)
			echo $res_lines[0]."\n";
		}
	}
	else{
		if($debug)
			echo "Unable to connect to mobio.bg server.\n";
		$ret = 0;
	}

	return $ret;
}

Това ти е функцията, а за проверката

PHP:
$servIDs = array(11111, 11112);

if(mobio_checkcode($servIDs[0], $code) == 1){
    echo 'Enjoy ' . $servIDs[0];
}
else{
      if(mobio_checkcode($servIDs[1], $code) == 1){
               echo "Enjoy" . $servIDs[1];
      }
      else{
                echo 'Error';
      }
}
 
Значи функцията, която използвам в момента е уязвима така ли? И не е ли по-добре така:

$servIDs = array(11111, 11112);

if(mobio_checkcode($servIDs[0], $code) == 1){
echo 'Enjoy ' . $servIDs[0];
} else if(mobio_checkcode($servIDs[1], $code) == 1){
echo "Enjoy" . $servIDs[1];
} else{
echo 'Error';
}
 
ludasam каза:
Значи функцията, която използвам в момента е уязвима така ли?

Промених си мнението, така че виж ми пак мнението, ако си копирал стария код.

Функцията не, че е уязвима, просто има използвани функции, на които са объркани последователността подаването на параметрите. Като например strstr която те са ползвали. Виж в моя код как трябва да е strstr() и виж те как са го написали.
 
ludasam каза:
Значи функцията, която използвам в момента е уязвима така ли? И не е ли по-добре така:

$servIDs = array(11111, 11112);

if(mobio_checkcode($servIDs[0], $code) == 1){
echo 'Enjoy ' . $servIDs[0];
} else if(mobio_checkcode($servIDs[1], $code) == 1){
echo "Enjoy" . $servIDs[1];
} else{
echo 'Error';
}


PHP:
$servIDs = array(11111, 11112);

if(mobio_checkcode($servIDs[0], $code) == 1){
    echo 'Enjoy ' . $servIDs[0];
}
else{
      if(mobio_checkcode($servIDs[1], $code) == 1){
               echo "Enjoy" . $servIDs[1];
      }
      else{
                echo 'Error';
      }
}

аз предпочитам така...
 

Back
Горе