Ta strona używa ciasteczek (cookies), dzięki którym nasz serwis może działać lepiej. Dowiedz się więcej OK, rozumiem

[PHP] Problem z weryfikowaniem płatności.

Zdecydowałeś się na tworzenie interaktywnych stron przy pomocy PHP? Chcesz w łatwy i szybki sposób zarządzać danymi na swojej stronie? Tutaj znajdziesz pomoc w napotkanych przy tym trudnościach.

[PHP] Problem z weryfikowaniem płatności.

Post 14.06.2017, 20:33:05

Kod: Zaznacz cały
<?php
session_start();
if(!file_exists("config/config.php")){
    Header("Location: /?action=sklep");
    die();
} else include_once("config/config.php");
if(!file_exists("rcon.class.php")){
    Header("Location: /?action=sklep");
    die();
} else include_once("rcon.class.php");
   
function rcommand($ip, $port, $password, $timeout, $user, $command){
    try{
        $Rcon = new MinecraftRcon;   
        $Rcon->Connect($ip, $port, $password, $timeout);
        $Data = $Rcon->Command($command);
        if($Data === false){
            saveError($user, $command);
            throw new MinecraftRconException("Problem z pobraniem wyniku");
        } else if(StrLen($Data) == 0){
            saveError($user, $command);
            throw new MinecraftRconException("Otrzymany wynik jest pusty");
        }

        echo HTMLSpecialChars($Data);
    } catch(MinecraftRconException $e){
        echo $e->getMessage();
    }

    $Rcon->Disconnect();
}

function hasSelectedString($string){
    if(strlen($string > 16)) return false;
    $allowedChars = array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","0","1","2","3","4","5","6","7","8","9","_");
    $string = str_split($string);
    foreach($string as $letter) {
        if(!in_array($letter, $allowedChars)){
            return false;
        }
    }
    return true;
}

function saveError($user, $command){
    mysql_query("INSERT INTO sms_backup (service, command) VALUES ('$servername', '$command')");
}

if($_POST) {
    $id = mysql_real_escape_string(strip_tags(trim($_POST['id'])));
    $username = mysql_real_escape_string(strip_tags(trim($_POST['username'])));
    $reusername = mysql_real_escape_string(strip_tags(trim($_POST['re_username'])));

    if(!(isSet($id) || isSet($username) || isSet($reusername))){
        $_SESSION['message'] = "Musisz wypełnić wszystkie pola formularzu!";
        Header("Location: /?action=sms&key=".$id."");
        die();
    }

    if(!isSet($username)){
        $_SESSION['message'] = "Podaj swój nick!";
        Header("Location: /?action=sms&key=".$id."");
        die();
    }

    if($username !== $reusername){
        $_SESSION['message'] = "Podane nazy użytkownika nie są identyczne!";
        Header("Location: /?action=sms&key=".$id."");
        die();
    }

    if(!hasSelectedString($username)){
        $_SESSION['message'] = "Podany nick zawiera niedozwolone znaki!";
        Header("Location: /?action=sms&key=".$id."");
        die();
    }
      
    $query = mysql_query("SELECT command FROM sms WHERE id = '".$id."'");
    if(mysql_num_rows($query) == 0){
        $_SESSION['message'] = "Blad, wybrana usługa została źle skonfigurowana. Zgłoś to administracji!";
        Header("Location: /?action=sms&key=".$id."");
        die();
    }
       
    $code = mysql_real_escape_string(strip_tags(trim($_POST['code'])));
    $key = mysql_real_escape_string(strip_tags(trim($_POST['key'])));
    $row = mysql_fetch_array($query);
   $serviceid = $row["sms_serviceid"];
   $api = @file_get_contents('http://microsms.pl/api/v2/index.php?userid='.$apiKey.'&number='.$numer.'&code='.$code.'&serviceid='.$serviceid.);

   if (!isset($api)) {
      $errormsg = 'Nie można nawiązać połączenia z serwerem płatności.';
   } else {
      $api = json_decode($api);
      if (!is_object($api)) {
         if (isset($api->error) && $api->error) {
            $_SESSION['message'] = "Blad, zawiadom administratora.";
            Header("Location: /?action=sms&key=".$id."");
            die();
         } else if ($api->connect == FALSE) {
            $_SESSION['message'] = "Blad, zawiadom administratora.";
            Header("Location: /?action=sms&key=".$id."");
            die();
         }
      }
      if (!isset($errormsg) && isset($api->connect) && $api->connect == TRUE) {
         if ($api->data->status == 1) {
            $time = time();
            $cmd = $row['command'];
            mysql_query("INSERT INTO sms_database (user, buy_time, smskey, service, command) VALUES ('$username', $time, '$code', '$id', '$cmd')");
            foreach(explode(";", $row['command']) as $key)
               rcommand($rconIp, $rconPort, $rconPass, 10, $username, trim(str_replace("{GRACZ}", $username, $key)));
               
            $_SESSION['message'] = "Twoja usluga zostala aktywowana!";
            Header("Location: /?action=sms&key=".$id."");
            die();
         } else {
            $_SESSION['message'] = "Podany kod jest nieprawidłowy, bądź wybrałeś złą usługe dla otrzymanego kodu.";
            Header("Location: /?action=sms&key=".$id."");
            die();
         }
      }
   }
   Header("Location: /?action=sms&key=".$id."");
    die();
}

?>


Problem rozpoczął się po lekkiej modyfikacji kodu, by dostosować go do innej firmy świadczącej usługi.

Screen:
Obrazek
Booker
Posty: 1
Dołączył(a): 14.06.2017

Powrót do PHP i bazy danych


 


  • Podobne wątki
    Odpowiedzi
    Wyświetlone
    Ostatni post

Kto przegląda forum

Użytkownicy przeglądający ten dział: Google [Bot] i 3 gości

Hosting, Domeny, SSL
iCash

Subskrypcja

Mamy 50052 zarejestrowanych użytkowników.
Najnowszy użytkownik: AundreaS


Nasi użytkownicy napisali:

  • 934675 wiadomości
  • w 246206 tematach

Najnowsze wpisy na blogu

Najnowsze artykuły

Najaktywniejsi (ostatnie 30 dni)