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:
1<?                             
2  require('./config.inc.php'); //DIBI LAYER
3  require('./config.inc.php'); // DIBI připojení
4  $values = array(
5    'PRICE' => $_GET['price'],
6    'OPERATOR' => $_GET['operator'],
7    'NICK' => $_GET['text']    
8  );
9  if(!$values['NICK']){
10    echo'Litujeme! Asi jste odeslal(a) chybnou SMS! Obratte se na podporu!';
11  }
12  else{
13    if($values['PRICE'] == '3.00'){
14      $price = 3; 
15      $coins = 1;
16      $completed = 1;
17    }
18    elseif($values['PRICE'] == '50.00'){
19      $price = 50;
20      $coins = 40; 
21      $completed = 1;
22    }
23    elseif($values['PRICE'] == '79.00'){
24      $price = 79;
25      $coins = 70;  
26      $completed = 1;
27    } 
28    elseif($values['PRICE'] == '99.00'){
29      $price = 99;
30      $coins = 90; 
31      $completed = 1;
32    }       
33    elseif($values['PRICE'] == '149.00'){
34      $price = 149; 
35      $coins = 120; 
36      $completed = 1;
37    }         
38    elseif($values['PRICE'] == '99.00'){
39      $price = 99;
40      $coins = 150;
41      $completed = 1;
42    } 
43    if($completed == 1){        
44      $nameQuery = dibi::query('SELECT * FROM `ren_account`.`account` WHERE `login` LIKE %s', $values['NICK']);
45      $nameOpen = $nameQuery->fetch();
46      $newCoins = $nameOpen->coins+$coins;
47      dibi::query('UPDATE `ren_account`.`account` SET ', array('coins' => $newCoins), 'WHERE login = %s', $nameOpen->login);      
48      echo'Na ucet '.$values['NICK'].' bylo pripsano ' .$coins. ' minci! Cena SMS byla ' .$price. ' KC!';
49    }
50    else{  
51      echo'Litujeme! Asi jste odeslal(a) chybnou SMS! Obratte se na podporu!';    
52    }
53  }
54?>
<?                             
  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!';
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!';
  }
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.
Toto vlákno je staré, již dlouho do něj nikdo nepřispíval.

Informace a odkazy zde uváděné už nemusejí být aktuální. Nechcete-li řešit zde uvedenou konkrétní otázku, založte si vlastní vlákno, nepište do tohoto. Vložíte-li sem nyní příspěvek, upoutáte pozornost mnoha lidí a někteří z nich si jen kvůli vám přečtou i všechny předcházející příspěvky. Předpokládáte-li, že váš text skutečně bude hodnotný, stiskněte následující tlačítko:


Běda vám, jestli to bude blábol.

0