Automatyczne dodawanie punktów do WebCron’a.

21 02 2009

Pewnie wiele osób tworzących gry internetowe korzysta z WebCrona, przy wykonywaniu automatycznych “resetów”. Ja też ;)
Pewnego dnia, gdy moja gra dostała 1 dzień w łeb, z powodu mojego zapominalstwa (nie kliknąłem na Dodaj Punkty…) postanowiłem napisać prosty skrypt PHP w oparciu bibliotekę Curl który automatycznie dodawałby punkty do mojego konta na WebCronie.

Kod

<?
 /*
  * Informatic's WebCronDodajPunkty Script
  * Visit http://infdevblog.wordpress.com/ if you like it :)
  */
 $Username = 'nazwaUżytkownika';
 $Password = 'twojeHasło';
 function curl_post(&$c,$url,$data) { //funkcja wysyłająca $data POST'em na dany $url.
  // Nasze pudełko z ciachami :]
  curl_setopt($c, CURLOPT_COOKIEFILE, dirname(__FILE__) . '/cookies.txt');
  curl_setopt($c, CURLOPT_COOKIEJAR, dirname(__FILE__) . '/cookies.txt');

  curl_setopt($c, CURLOPT_URL, $url);
  curl_setopt($c, CURLOPT_POST, 1); //przesyłamy metodą post
  curl_setopt($c, CURLOPT_POSTFIELDS, $data);
  return curl_exec($c);
 }
 $c = curl_init();
 curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
 //logujemy się.
 $login = curl_post($c,'http://webcron.pl/index.html','login_send=true&username='.$Username.'&password='.$Password);
 //dodajemy punkty.
 $dodaj = curl_post($c,'http://webcron.pl/konto.html','add_points=true');
 curl_close($c);
 //i ładne info :)
 echo 'Punkty do WebCrona dodane!';
 //usuwamy plik z ciachami.
 unlink(dirname(__FILE__) . '/cookies.txt');
?>

Kod jest ściśle tworzony pod serwis webcron.pl – na innych serwisach będzie wymagać dostosowania.

Sposób użycia
1. Kopiujesz plik na serwer.
2. W linijkach:

$Username = 'nazwaUżytkownika';
$Password = 'twojeHasło';

Wpisujesz swoje dane logowania do Webcrona.
3. Wpisujesz w oknie przeglądarki adres do skryptu i cieszysz się 50 punktami ;)

I możesz to jeszcze bardziej sautomatyzować, np. przez dodanie na końcu pliku “admin.php” linijki:

if($_GET['view'] == '') include("webcronDodajPunkty.php");

(skrypt musi nazywać się “webcronDodajPunkty.php”!)

Jak się uprzesz, to też możesz dodawać punkty przy resecie, ale nie wiem czy to zadziała – Webcron może blokować konto podczas wykonywania Twojego żądania ;)

Zabezpieczenia.
Skrypt ten używałem w Vallheru Santic przez automatyczne “includowanie” go w panelu admina.
Dodatkowo dodałem też takie zabezpieczenie na początku naszego skryptu:

$ok_mails = array('mojMeilik@rushh.pl','asdf@corporation.com');
 if(!in_array($_SESSION['email'],$ok_mails)) die('You f*** haxxor!');

^^

A regulamin?
Regulamin webcrona nie zabrania takich skryptów, więc na dzień dzisiejszy możesz z niego korzystać bez żadnych obaw :)

I nowy theme do tego – zomg! :D