Peršokti į turinį
  • ŽAIDIMAI
  • , ŽAIDIMAI
  • ŽAIDIMAI

Platinu Vidmanto kūrybą (botas)


NTQ

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 1522 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

Kadangi @Vidmantas. taip viską išmano ir dalina patarimus, pasižiūrėkime ar pats jų laikosi. O kaip tai geriausiai padaryti? Pagal jo sukurtą darbą.

Šioje temoje matysime. Ar Vidmantas vis dar naudoja mirštantį jQuery, ar Vanilla JS, paprasčiausiai Ajax užklausai be argumentų.

1 jo kodo dalis:

Spoiler

<?php

include 'functions.php';

$ID = isset($_GET['id']) ? $_GET['id'] : '';
if($ID == "cancel") {
    setcookie('treniruoti', null, null);
    setcookie('rungtynes', null, null);
    setcookie('laikas', null, null);
    setcookie('laikas2', null, null);

    Header('Location: index.php');
}

if(isset($_POST)) {
    if(isset($_POST['submit_treniruotis'])) {
        $ka = $_POST['ka2'];

        setcookie('treniruoti', $ka, time()+3600*24*7);
    }

    if(isset($_POST['submit_rungtynes'])) {
        $ka = $_POST['ka1'];

        setcookie('rungtynes', $ka, time()+3600*24*7);
    }
}

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <link rel="stylesheet" type="text/css" href="style.css">
    <title>BOTAS</title> 
</head>
<body>

<div class="inkulto">BOTAS</div>

<div class="div">   
    <div id="tren"></div>

    <div class="alert alert-error">
        Įveskite savo duomenys<br><br>
        Vartotojo SID:<br> <input type="text" name="nick" disabled value="<?=$uID?>"><br>
        Vartotojo SPASS:<br> <input type="text" name="pass" disabled value="<?=$uPassword?>">
    </div>

    <form method="post">    
    <div class="alert alert-warning">
        Žaisti Super Wins Rungtynes<br><br>
        Žaisti su atsitiktine komanda <b>150</b> eurų<br><select name="ka1">
            <option value="0" selected>- - -</option>
            <option value="1">Iš po krepšio</option>
            <option value="2">Iš tolimos distancijos</option>
            <option value="3">Zonine gynyba</option>
            <option value="4">Spaudimas</option>
        </select>
        <br><br>

        <input type="submit" name="submit_rungtynes" value="Žaisti"/>
    </div>
    <div class="alert alert-warning">
        Pasirinkite ką treniruotį (+2)<br><br>
        <select name="ka2">
            <option value="" selected>- - -</option>
            <option value="dejimas">Dėjimą</option>
            <option value="begimas">Bėgimą</option>
            <option value="puolimas">Puolimą</option>
            <option value="driblingas">Driblingą</option>
            <option value="taiklumas">Taiklumą</option>
            <option value="istverme">Ištvermę</option>
        </select>
        <br><br>

        <input type="submit" name="submit_treniruotis" value="Treniruotis">
    </div>
    </form>
</div>

<div class="inkulto">
    Kūrėjas <b>Vidmantas</b>, sukūrta vartotojui <b><u>edgar1</u></b><br>
    Stilius priklauso: <b>&copy;inkulto</b>
</div>

</body>
</html>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>

<script type="text/javascript">

    setInterval(function() {
        $.ajax({
            type: 'GET',
            url: 'api.php',    
            success: function(data) {
                $('#tren').fadeOut("fast").html(data).fadeIn("fast");
            }
        });
    }, 1000);

</script>

 

Kaip matome, @Vidmantas. naudoja 2 kabučių tipus: viengubas ir dvigubas. Žmogelis nesupranta ką daro viengubos, o ką dvigubos.

if($ID == "cancel") {

Argumentas cancel yra kintamasis, todėl pagal jį priskiriame dvigubas kabutes.

Vis dar jo kūryboje yra XHTML ir HTML5 hibridas:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 

O JavaScript, net jQuery ir VanillaJS hibridas (čia setInterval)

setInterval(function() {
        $.ajax({
            type: 'GET',
            url: 'api.php',    
            success: function(data) {
                $('#tren').fadeOut("fast").html(data).fadeIn("fast");
            }
        });
    }, 1000);

Gražusis funkcijų rinkinys:

Spoiler

<?php
include 'functions.php';

function treniruoti($treniruoti_ka) {
    global $treniruotes_laikas;

    $page = curl("http://krepsinis24.eu/index.php?a=treniruotes");
    preg_match('#name="treniruote" value="(.*?)"/>#', $page, $a);

    if(isset($a[1])) {
        $kodas = $a[1];

        curl("http://krepsinis24.eu/index.php?a=treniruotes", array('treniruote' => $kodas, 'ka'=> $treniruoti_ka, 'post'=> 'done'));
    }
}

function rungtyniauti($rungtyniauti_ka) {
    global $rungtyniavimo_laikas;

    $page = curl("http://krepsinis24.eu/?a=kal");
    preg_match('#type="hidden" value="(.*?)"#', $page, $a);

    if(isset($a[1])) {
        $kodas = $a[1];

        curl("http://krepsinis24.eu/index.php?a=kal&b=round&c=0", array('taktika' => $rungtyniauti_ka, 'ok'=> $kodas));
    }
}


if(isset($_COOKIE['treniruoti'])) {
    $laikas = isset($_COOKIE['laikas']) ? $_COOKIE['laikas'] : 99;
    $laikas2 = isset($_COOKIE['laikas2']) ? $_COOKIE['laikas2'] : 99 ;

    if($laikas < time()) {
        treniruoti($_COOKIE['treniruoti']);
        treniruoti($_COOKIE['treniruoti']);
        treniruoti($_COOKIE['treniruoti']);

        $b = array(
            'dejimas' => 'begimas',
            'begimas' => 'puolimas',
            'puolimas' => 'driblingas', 
            'driblingas' => 'taiklumas',
            'taiklumas' => 'istverme',
            'istverme' => 'dejimas'
        );

        $_COOKIE['treniruoti'] = $b[$_COOKIE['treniruoti']];
        setcookie('treniruoti', $_COOKIE['treniruoti'], time()+3600*24*7);

        setcookie('laikas', time()+$treniruotes_laikas+5, time()+3600*24*7);
    }
    else if($laikas > 0) {
        echo '
        <div class="alert alert-denger">
            Sekanti treniruotė už: <b>'.gmdate('i \m\i\n. s \s\e\c\.', $laikas-time()).'</b>, ji įvyks <b>automatiškai</b>!<br><br>
            Treniruojate: <b>'.$_COOKIE['treniruoti'].'</b>
        </div>';
    }
}

if(isset($_COOKIE['rungtynes'])) {
    $laikas2 = isset($_COOKIE['laikas2']) ? $_COOKIE['laikas2'] : 1;

    if($laikas2 < time()) {
        rungtyniauti($_COOKIE['rungtynes']);
        rungtyniauti($_COOKIE['rungtynes']);
        rungtyniauti($_COOKIE['rungtynes']);

        setcookie('laikas2', time()+$rungtyniavimo_laikas+5, time()+3600*24*7);
    }
    else if($laikas2 > 0 && isset($_COOKIE['laikas2'])) {
        echo '
        <div class="alert alert-denger">
            Sekančios rungtynės už: <b>'.gmdate('i \m\i\n. s \s\e\c\.', $laikas2-time()).'</b>, jos įvyks <b>automatiškai</b>!<br><br>
            Rungtyniaujame su: <b>'.$_COOKIE['rungtynes'].'</b>
        </div>
        ';
    }
}

if(isset($_COOKIE['treniruoti']) || isset($_COOKIE['rungtynes'])) {
    echo '<a class="cancel" href="index.php?id=cancel">Atšaukti automatinį treniravimą</a><br><br>';
}

 

Čia turbūt apie kodo praktiką patylėsiu. Bet smagu matyti daug pasikartojančio kodo, kaip cookies laiką ir mylimą, seną, gmdate.

CURL panaudojimas

Spoiler

<?php

$info_from_file = parse_ini_file("settings.ini");

$uID = $info_from_file['id'];
$uPassword = $info_from_file['password'];

$treniruotes_laikas = $info_from_file['treniruoti_laikas'];
$rungtyniavimo_laikas = $info_from_file['rungtyniavimo_laikas'];

function curl($url, $post = false) {
    global $uID, $uPassword;
    $ch = curl_init(); 
    curl_Setopt($ch, CURLOPT_URL, $url); 
    curl_Setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_COOKIE, 'PHPSESSID=gv0js966e3rh9102qt3ufbn7l5; user_nr='.$uID.'; user_pass='.$uPassword.';');
    if(is_array($post)) {
        curl_Setopt($ch, CURLOPT_POSTFIELDS, $post); 
    }

    $response = curl_exec($ch); 
    curl_close($ch); 

    return $response; 
}

 

Tiesiog tobula! Šis botas taip sukurtas, kad nuo Ajax užklausų Jūsų naršyklė sėkmingai užlūs. Tikrai nėra tokio dalyko meta refresh ir iframe.

Reikės gerai sukurto boto? Kreipkitės į visų sričių žinovą @Vidmantas.

P.S. visur sarkazmas tekste.

Nuoroda į komentarą
Dalintis per kitą puslapį

oho ačiū už gražią kalbą. Pirma noriu paminėti, kad visą HTML struktūrą kūriau ne aš, nes man tai nėra reikalinga. "Ajax užklausų Jūsų naršyklė sėkmingai užlūs" o tikrai taip, žinai ką paplosiu, nes taip ir buvo, bet man visiškai tas pats, nes visgi kodas kurtas už 2€, o aš prie jo nesedėsiu visą dieną. Visų antrą galvojau, kad su intervalu bus geriau, bet išėjo kitaip, nei tikėjaus. "Kreipkitės į visų sričių žinovą" nesu visų sričių žinovas toks kaip tu ir taip savęs nepristatinėju, nes tiesiog pradės suktis galva ir pradėsiu laidyti tokias kosmines teorijas, kad net pats pradėsiu nebepatikėti savimi.  Dar noriu paminėti, kad botų nekuriu ant PHP šis buvo pirmas ir paskutinis kadangi python yra geriau, nesu front-end žinovas kaip @NTQ, bet jam tai pasirodė kitaip. Nepradėsiu karo su tavim, bet tu pats jau kasi duobę vien su savo teiginiais. Kada suaugsi pagaliau?.... Jei daryčiau dabar, vėl daryčiau kitaip, nes įgavau žinių ir taisau savo klaidas, ten kur jos turi būti taisomos, nežiūriu ką dariau praeity, kad galėčiau judėti toliau. Viską darau savo malonumuj. Kiek mačiau pats rašai kodą kuris yra 5 metų senumo tokį kokį rašiau prieš gerus 5 metus WAP žaidimuose. Priimu kritiką iš visų, nes taip galiu mokytis, o tu jos nelabai moki priimti, aš matau ką tu darai.

Redaguota , nario Vidmantas.
Nuoroda į komentarą
Dalintis per kitą puslapį

9 minutes prieš, Vidmantas. parašė:

oho ačiū už gražią kalbą. Pirma noriu paminėti, kad visą HTML struktūrą kūriau ne aš, nes man tai nėra reikalinga. "Ajax užklausų Jūsų naršyklė sėkmingai užlūs" o tikrai taip, žinai ką paplosiu, nes taip ir buvo, bet man visiškai tas pats, nes visgi kodas kurtas už 2€, o aš prie jo nesedėsiu visą dieną. Visų antrą galvojau, kad su intervalu bus geriau, bet išėjo kitaip, nei tikėjaus. "Kreipkitės į visų sričių žinovą" nesu visų sričių žinovas toks kaip tu ir taip savęs nepristatinėju, nes tiesiog pradės suktis galva ir pradėsiu laidyti tokias kosmines teorijas, kad net pats pradėsiu nebepatikėti savimi.  Dar noriu paminėti, kad botų nekuriu ant PHP šis buvo pirmas ir paskutinis kadangi python yra geriau, nesu front-end žinovas kaip @NTQ, bet jam tai pasirodė kitaip. Nepradėsiu karo su tavim, bet tu pats jau kasi duobę vien su savo teiginiais. Kada suaugsi pagaliau?.... Jei daryčiau dabar, vėl daryčiau kitaip, nes įgavau žinių ir taisau savo klaidas, ten kur jos turi būti taisomos, nežiūriu ką dariau praeity, kad galėčiau judėti toliau. Viską darau savo malonumuj. Kiek mačiau pats rašai kodą kuris yra 5 metų senumo tokį kokį rašiau prieš gerus 5 metus WAP žaidimuose. Priimu kritiką iš visų, nes taip galiu mokytis, o tu jos nelabai moki priimti, aš matau ką tu darai.

Žmogeli, prisikabinai prie elementarių php open tag'ų, kai net nesuvoki strict operators, viengubu ir dvigubu kabučių skirtumo. Tai ką čia ir kalbėti. Norėjau parodyti visiems koks esi hipokratas.

+ pats nesu tobulas. Gavęs svarią kritiką, ištaisau savo darbus.

Nuoroda į komentarą
Dalintis per kitą puslapį

Dabar, NTQ parašė:

Žmogeli, prisikabinai prie elementarių php open tag'ų, kai net nesuvoki strict operators, viengubu ir dvigubu kabučių skirtumo. Tai ką čia ir kalbėti. Norėjau parodyti visiems koks esi hipokratas.

+ pats nesu tobulas. Gavęs svarią kritiką, ištaisau savo darbus.

laisvas tuomet. + ten nebuvo kritika, ten tik buvo mano įžvalga. Aš nekaltas, kad tu ją priėmei taip.

Nuoroda į komentarą
Dalintis per kitą puslapį

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 1522 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Prisijungti prie diskusijos

Palikti atsakymą galite iš karto, o užsiregistruoti vėliau. Jeigu jau turite paskyrą mūsų forume, Prisijunkite.

Svečias
Atsakyti šioje temoje...

×   Įklijuotas tekstas turi teksto formatavimą.   Pašalinti teksto formatavimą

  Galimi tik 75 veidukai.

×   Nuoroda buvo automatiškai įterpta.   Įterpti nuorodą paprastai

×   Jūsų ankstesnis pranešimas buvo atkurtas.   Išvalyti redaktorių

×   Jūs negalite įkelti nuotraukas tiesiogiai.Įkelkite arba įdėkite nuotraukas iš URL.

Skelbimai


×
×
  • Sukurti naują...