Autor Zpráva
Spoless
Profil
Zdravím,
mám bránu na mobilniplatby, téměř vše funguje, ale někde je chyba ve scriptu, nedokážete prosím poradit kde?
Díky.

- Nepřidá to mince na účet

Script:
<?                             
  require('./config.inc.php'); //DIBI LAYER
  require('./config.inc.php'); // DIBI připojení
  $values = array(
    'PRICE' => $_GET['price'],
    'OPERATOR' => $_GET['operator'],
    'NICK' => $_GET['text']    
  );
  if(!$values['NICK']){
    echo'Litujeme! Asi jste odeslal(a) chybnou SMS! Obratte se na podporu!';
  }
  else{
    if($values['PRICE'] == '3.00'){
      $price = 3; 
      $coins = 1;
      $completed = 1;
    }
    elseif($values['PRICE'] == '50.00'){
      $price = 50;
      $coins = 40; 
      $completed = 1;
    }
    elseif($values['PRICE'] == '79.00'){
      $price = 79;
      $coins = 70;  
      $completed = 1;
    } 
    elseif($values['PRICE'] == '99.00'){
      $price = 99;
      $coins = 90; 
      $completed = 1;
    }       
    elseif($values['PRICE'] == '149.00'){
      $price = 149; 
      $coins = 120; 
      $completed = 1;
    }         
    elseif($values['PRICE'] == '99.00'){
      $price = 99;
      $coins = 150;
      $completed = 1;
    } 
    if($completed == 1){        
      $nameQuery = dibi::query('SELECT * FROM `ren_account`.`account` WHERE `login` LIKE %s', $values['NICK']);
      $nameOpen = $nameQuery->fetch();
      $newCoins = $nameOpen->coins+$coins;
      dibi::query('UPDATE `ren_account`.`account` SET ', array('coins' => $newCoins), 'WHERE login = %s', $nameOpen->login);      
      echo'Na ucet '.$values['NICK'].' bylo pripsano ' .$coins. ' minci! Cena SMS byla ' .$price. ' KC!';
    }
    else{  
      echo'Litujeme! Asi jste odeslal(a) chybnou SMS! Obratte se na podporu!';    
    }
  }
?>


Díky :)
Alphard
Profil
Nebyla by nějaká nápověda? Co to vypíše apod.?
David1234
Profil *
Tak jako první chybu vidím toto:

echo'Na ucet '.$values['NICK'].' bylo pripsano ' .$coins. ' minci! Cena SMS byla ' .$price. ' KC!';

Chybějící mezera mezi apostrofem a příkazem echo.
Micruss
Profil
Tak nějak mi vrtá hlavou proč je 2x require na ten stejný soubor
Spoless
Profil
Script jde přes službu Mobilniplatby. cz.
Při emulaci typu Nový script, script odpovídá podle specifikací, ale jako odpověď hlásí " Litujeme! Asi jste odeslal(a) chybnou SMS! Obratte se na podporu! ".
Při volbě Starý script hlásí chybu, že script vrací odpověď v nesprávném formátu a k tomu odkazuje na řádek č.44
Fisir
Profil
Reaguji na Davida1234:
To ničemu nevadí. Rozházené (nebo vynechané) bílé znaky v PHP téměř nikdy nezpůsobují žádnou neplechu (neplatí třeba pro ukončení Heredoc).
Kubo2
Profil
David1234:

Myslím, že práve toto bežným verziám PHPka nerobí problém.
Davex
Profil
Spoless:
Jaké hodnoty jsou uloženy v $_GET['price'] a $_GET['text'] při zavolání skriptu?



Jinak ten skript vypadá opravdu hrozně. Nevadí, že si uživatel může připsat zadarmo neomezeně mincí?
Spoless
Profil
Script se vyvolá odeslalnim sms ve tvaru PLATBA ISMINCE jmenohrace Na uvedene cislo. Jsem zacatecnik v php a teprv se s nim ucim.

Omluvte mou diaktriku, pisi z mobilu.
Alphard
Profil
Přece to můžete otestovat i bez SMS, stačí ten script zavolat a přímo předat do url potřebné parametry.
Spoless
Profil
Ano, testoval jsem ho, ale jak jsem již popisoval.. Není zcela bez chyby.
Za opravu s prosíkem bych byl vděčný, jsem pouhý začátečník.
czechiaa
Profil
Ale vždyť ti tady radí, jak to udělat. Jednoduše si zavolej domena.cz/odkaz/na/script?price=99.00&operator=nejakOperator&text=obsahTextu
Sám píšeš, že ti to spadne na tom, že
if(!$values['NICK']){
    echo'Litujeme! Asi jste odeslal(a) chybnou SMS! Obratte se na podporu!';
  }
Takže nemáš toto naplněné. Něco tě sem podle něčeho musí přesměrovat.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: