Webboard

Pełna wersja: ograniczyć klikanie buttona
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Mam na stronie bez logowanie i zbędnych ceregieli prosty formularz wykonujący połączenie strona->inna strona->serwer na potrzeby sklepu sms. Ostatnio wszystko nie działało, okazało się że na xaa.pl po zbyt dużej liczbie takich połączeń serwer banuje ip, z którym się aktywnie łączy. Chciałbym dodać jakieś ograniczenie klikania na button np. z 60 sekund, bo gnoje zapewne skryptowo próbują zlagować stronkę. Proszę o pomoc.
bez kodu nie pomożemy :)

Wysłane z mojego GT-I9100 za pomocą Tapatalk 4
Kod:
<?php

$chars = array ('&','"','<','>','\'', '/', '*', '+', ',');  //znaki które chcemy wywalić z naszych zmiennych  [JackEbr]
$vars = array ('&amp;', '&quot;', '&lt;','&gt;',''', '/', '*', 'E:', 'E:');  //zastępniki znaków [JackEbr]

$_GET = str_replace($chars, $vars, $_GET);    //zamiana znaków wzorcem powyżej [JackEbr]
$_POST = str_replace($chars, $vars, $_POST);  //zamiana znaków wzorcem powyżej [JackEbr]

include('konfiguracja1.php');             //Pobieranie zmiennych dot. konsoli, zasilacza i błędów
function napraw($ciag){                 //Naprawia ciag, tak aby HTTPCONSOLE poprawnie odbieralo spacje
include('konfiguracja1.php');
    $naprawiam = str_replace (" ", "%20", $ciag);
    return $naprawiam;
};
function konsola($command){                //Funkcja wywolywana aby skontakowac sie z serwerem Minecraft
include('konfiguracja1.php');
    $ch = curl_init();
    $command = napraw($command);
    curl_setopt($ch, CURLOPT_URL, "http://$ip:$port/console?command=$command");        
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $output=curl_exec($ch);
    curl_close($ch);
    return $output;
};
if($kwota_doladowania>7 || $kwota_doladowania<0){
    die("Blad: Skrypt zostal zle skonfigurowany, wybierz poprawna kwote doladowania.");
}
switch ($kwota_doladowania){
    case 1:
    $koszt_sms="3.69";
    $numer_sms="73068";
    $ilosc_craftow="1";
        break;
    case 2:
    $koszt_sms="4.92";
    $numer_sms="74068";
    $ilosc_craftow="2";
        break;
    case 3:
    $koszt_sms="6.15";
    $numer_sms="75068";
    $ilosc_craftow="3";
        break;
    case 4:
    $koszt_sms="7.38";
    $numer_sms="76068";
    $ilosc_craftow="4";
        break;
    case 5:
    $koszt_sms="11.07";
    $numer_sms="79068";
    $ilosc_craftow="5";
        break;
    case 6:
    $koszt_sms="23.37";
    $numer_sms="91958";
    $ilosc_craftow="9";
        break;
    case 7:
    $koszt_sms="30.75";
    $numer_sms="92578";
    $ilosc_craftow="11";
        break;
}

// Sprawdzanie niepoprawności! [JackEbr]
if(isset($_POST['nick'])) {
  if (!preg_match("/^[a-zA-Z\d\-_]+$/i", $_POST['nick'])) { die('Podany nick zawiera niepoprawne znaki!'); }
  if (!preg_match("/^[a-zA-Z\d\-_]+$/i", $_POST['kod'])) { die('Podany kod zawiera niepoprawne znaki!'); }
  if (!preg_match("/^[a-zA-Z\d\-_]+$/i", $_POST['opis'])) { die('Podany opis zawiera niepoprawne znaki!'); }
}

if(isset($_POST["active"])){
    $nick=htmlspecialchars($_POST["nick"]);
    $opis=htmlspecialchars($_POST["opis"]);
    $kod=htmlspecialchars($_POST["kod"]);
  $nik = str_replace ("_", "", $nick);
    if(strlen($opis)>20 || strlen($nick)>20){
        $blad="Opis oraz nick moze posiadac maksymalnie 20 znakow.";
    }
    
    if(!ctype_alnum($nik) || !ctype_alnum(str_replace(" ","",$opis)) || !ctype_alnum($kod)){
        $blad="Zakaz stosowania znakow specjalnych.";
    }
    
    $opis=str_replace(" ","_",$opis);
    
    if($kod==NULL && $nik==NULL)
    {
        echo $blad_pusty_formularz;
    }
    else
    if($kod==NULL)
    {
        echo $blad_brak_kodu;
    }
    else
    if($nik==NULL)
    {
        echo $blad_brak_nicku;
    }
    else{
        $link="http://www.mineserv.eu/skrypt_zasilacz/$kod_zasilacza/$nik/$opis/$kod";
        if($tryb_testowania_zasilacz_mineserv == "tak"){
        $link="http://www.mineserv.eu/skrypt_zasilacz/test/$kod_zasilacza";
        }
        $odpowiedz = fopen($link, 'r');
        $wynik = fgets($odpowiedz, 5);
        fclose($odpowiedz);
        if(substr($wynik,0,1) == ":"){
            if($wynik==":"){
                echo "Wpisany ID zasilacza jest niepoprawny.";
            }else{
                echo "Pomyślnie połączono się z zasilaczem. Początek nazwy Twojego konta to: <b>".$wynik."</b>";
            }
        
        }elseif($wynik == "blad"){
            echo $blad_zly_kod;
            if($tryb_testowania_serwera_mc == "tak"){
            include('komendy1.php');
            echo "<center><br><font color=red size=7>UWAGA! <br><b>TRYB TESTOWY</b><br> Komendy wykonują się po wpisanie błędnego kodu SMS! <br>Jeśli chcesz wyłączyć tryb testowy, zmień wartość w pliku konfiguracyjnym.</font></center>";
            }
        }elseif(substr($wynik,0,2) == 'OK'){
            if(substr($wynik, 3) == $ilosc_craftow){
                // Kod poprawny, tu mozesz wpisac wlasne akcje ktore chcesz aby sie wykonaly po poprawnym zasileniu konta.
echo $akceptacja_dobry_kod;
include('komendy1.php');
            }else{
                // Jezeli doladowana ilosc craftow nie jest taka jaka ustalilismy w skrypcie.
                die("Blad: Niepoprawna kwota doladowania.");
            }
        }else{
            die("Blad: Skrypt zostal zle skonfigurowany, wpisz poprawny ID zasilacza.");
        }
    }
}
?>
Raar, podaj jeszcze z łaski swojej link do sklepu, żeby można było to sobie ładnie zwizualizować i powiedz, który button ma być zablokowany, etc.
myślę że na "gnoi" powinna wystarczyć jakaś captcha?

Wysłane z mojego GT-I9100 za pomocą Tapatalk 4