Strona 1 z 2 12 OstatniOstatni
Pokaż wyniki od 1 do 10 z 11

Wątek: Reflink z zabezpieczniem IP

  1. #1
    Zarejestrowany Awatar GigantV12
    Dołączył
    Apr 2010
    Posty
    85

    Domyślnie Reflink z zabezpieczniem IP

    Witam
    Pokarzę Wam jak zrobić reflinka z zabezpieczeniem IP

    W MySQL tworzymy nową tabele
    Kod php:
    CREATE TABLE `ref` (
    `
    idINT10 NOT NULL AUTO_INCREMENT PRIMARY KEY ,
    `
    ipTEXT NOT NULL
    `wartoscINT100 NOT NULL ,
    `
    komuVARCHAR50 NOT NULL ,
    `
    dataDATETIME NOT NULL 
    ENGINE MYISAM 
    W folderze naszej gry tworzymy plik ref.php

    Kod php:
     <?php
     
    include('baza.php'); // załączamy plik bazy
     
    $id $_GET['user']; // pobieramy uzytkownika
     
    $ref_to mysql_fetch_array(mysql_query("SELECT `id`,  `user`  FROM `users` WHERE `user`='$id'"));
    $ip_od $_SERVER['REMOTE_ADDR'];

     
    $ref mysql_fetch_array(mysql_query("SELECT * FROM ref WHERE `ip`='$ip_od'"));
    if(
    $ref['ip'] == $ip_od){
    ?>
    <script type='text/javascript'>window.alert('Wchodziłeś/łaś już z tego IP');document.location.href = 'index.php';</script>

    <?php
    } else {
    $heros $ref_to[0];
     if(
    $ref_to 0) {
    $start_zak 200// zakres od 200
    $end_zak 1000// zakres do 1000
    $zakres rand($start_zak$end_zak); // funkcja losowania liczby od $start_zak do $end_zak

    ?>
    <script type='text/javascript'>window.alert('Dziękujemy za danie datku graczowi <?php echo $_GET['user'?> o wartości <?php echo rand($start_zak$end_zak?>');document.location.href = 'index.php';</script>
    <?php

       mysql_query
    ("UPDATE `users` SET `kasa`=kasa+'$zakres' WHERE user='".$_GET['user']."'") or die (mysql_error()); // przekazanie kasy użytkownikowi

       
    mysql_query("INSERT INTO ref SET ip='$ip_od', wartosc='$zakres', komu='$id', data=CURDATE() ") or die (mysql_error()); // wpis do bazy danych że podane IP już tu było komu dało, kiedy i ile
     
    } else {
     
    ?>
    <script type='text/javascript'>window.alert('Nie ma takiego gracza');document.location.href = 'index.php';</script>
     <?php
     
    }
    }
     
    ?>
    Link http://twoja-strona.pl/ref.php?user=TwojNick
    Powyższa wersja nie dotyczy proxy

    Do swojego cron'a dodaj do uruchomienia do 24 h plik
    cron.php
    Kod php:
    <?php
    include('baza.php');
    mysql_query("DELETE FROM `ref`") or die (mysql_error()); // usuwa wszystkie linki w tabeli ref
    ?>
    U mnie to działa poprawnie (serwer Xaa.pl)
    Ostatnio edytowane przez GigantV12 ; 18-06-2010 o 20:05 Powód: blad

  2. #2
    Grupa MmoCenter Awatar aris
    Dołączył
    Sep 2009
    Posty
    2,408

    Domyślnie

    i jeszcze powiedz, że ci to działa poprawnie

  3. #3
    Zarejestrowany
    Dołączył
    Apr 2010
    Posty
    176

    Domyślnie

    1. po cholerę Ci data skoro i tak czyścisz tabele co 24h? bezsensowne przechowywanie niepotrzebnych danych
    2. słyszałeś o czymś takim jak "TURNCATE TABLE"?

  4. #4
    Grupa MmoCenter Awatar aris
    Dołączył
    Sep 2009
    Posty
    2,408

    Domyślnie

    tribe, nieważne, patrz na to:

    $heros = $ref_to[0];
    if($ref_to > 0) {

  5. #5
    Zarejestrowany
    Dołączył
    Apr 2010
    Posty
    176

    Domyślnie

    nie zagłębiałem się za bardzo ale generalnie reflink ze sprawdzaniem IP to są 3 zapytania:
    1. sprawdź czy dany IP już doładowywał gracza
    Jeżeli nie to:
    2. wpisz IP, gracz do tabeli
    3. dodaj graczowi surowce
    Jeżeli tak to: wyświetl bład "już doładowałeś tego gracza"

    żadna filozofia oczywiście nie zabezpiecza to przed ostatni popularnymi generatorami które wchodzą nawet kilka tysiecy razy z różnych IP

  6. #6
    Zarejestrowany Awatar GigantV12
    Dołączył
    Apr 2010
    Posty
    85

    Domyślnie

    3. dodaj graczowi surowce
    widać że się znasz na tym silniku, bo tu nie ma surowców
    1. po cholerę Ci data skoro i tak czyścisz tabele co 24h? bezsensowne przechowywanie niepotrzebnych danych
    Potrzebna, bo to jest z godziną i mogę spawdzić czy ktoś nie nabijał sobie przez proxy

  7. #7
    Grupa MmoCenter Awatar aris
    Dołączył
    Sep 2009
    Posty
    2,408

    Domyślnie

    kasa == surowiec

  8. #8
    Zarejestrowany
    Dołączył
    Dec 2007
    Posty
    241

    Domyślnie

    Cytat Zamieszczone przez tribe Zobacz posta
    nie zagłębiałem się za bardzo ale generalnie reflink ze sprawdzaniem IP to są 3 zapytania:
    1. sprawdź czy dany IP już doładowywał gracza
    Jeżeli nie to:
    2. wpisz IP, gracz do tabeli
    3. dodaj graczowi surowce
    Jeżeli tak to: wyświetl bład "już doładowałeś tego gracza"
    Po co aż 3?
    Kod:
    'UPDATE `GRACZE` SET `kasa` += 100 WHERE `id` = '.$id.' AND (SELECT COUNT(*) from `ref` WHERE `ip` = '.$ip_klijenta.' AND `id` = '.$id.') = 0

  9. #9
    Grupa MmoCenter Awatar aris
    Dołączył
    Sep 2009
    Posty
    2,408

    Domyślnie

    SET `kasa` += 100
    a ty skąd wyrwałeś taką składnię ....

  10. #10
    Zarejestrowany
    Dołączył
    Nov 2009
    Posty
    94

    Domyślnie

    to działa ? czy nie? :P


    ?


Strona 1 z 2 12 OstatniOstatni

Informacje o wątku

Użytkownicy przeglądający ten wątek

Aktualnie 1 użytkownik(ów) przegląda ten wątek. (0 zarejestrowany(ch) oraz 1 gości)

Zakładki

Uprawnienia umieszczania postów

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •