Vallheru: Naprawa najczęstszych błędów w Vallheru, część 2

Krzysztof Jagielski
05.09.2015

Pozwoliłem sobie kontynuować poruszany przez Sylwka już temat o najcześciej spotykanych błędach w Vallheru.

1. Po zalogowaniu wyświetla się "Sesja zakończona!". Co zrobić?


Musisz w katagu ./includes znaleźć plik sessions.php. Jego zawartość powinna brzmieć:

session_start();
if (!isset($_SESSION['inicjuj']))

 {
                          session_regenerate_id();
                          $_SESSION['inicjuj'] = true;
                          $_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
  }


              if($_SESSION['ip'] !== $_SERVER['REMOTE_ADDR'])
              {
                session_destroy();
               }
?>

Dzięki temu mamy naprawiony oraz bezpieczny plik.

2. Nie mogę wyświetlić gry - wyskakuje mi ściąganie plików .php


Serwer nie jest prawidłowo skonfigurowany czego owocem są krzaki zamist polskich znaków (w normalnych przeglądarkach), lub pobieraniem plików .php (w badzIEwiastych przeglądarkach).
Musisz wyłączyć komprezję GZIP, jednak gra będzie zużywała na oko 4x więcej transferu.
Aby wyłączyć kompresję, należy w pliku head.php (katalog includes), znaleźć sekcję:

/**
* Kompresja GZIP strony w celu zmiejszenia tranferu
*/
$do_gzip_compress = FALSE; 
$compress = TRUE; 
$phpver = phpversion(); 
$useragent = (isset($_SERVER["HTTP_USER_AGENT"]) ) ? $_SERVER["HTTP_USER_AGENT"] : $HTTP_USER_AGENT; 
if ( $phpver >= '4.0.4pl1' && ( strstr($useragent,'compatible') || strstr($useragent,'Gecko') ) ) { 
    if ( extension_loaded('zlib') ) { 
    $compress = TRUE; 
    ob_start('ob_gzhandler'); 
    } 
} elseif ( $phpver > '4.0' ) { 
    if ( strstr($HTTP_SERVER_VARS['HTTP_ACCEPT_ENCODING'], 'gzip') ) { 
    if ( extension_loaded('zlib') )    { 
        $do_gzip_compress = TRUE; 
        $compress = TRUE; 
        ob_start(); 
        ob_implicit_flush(0); 
            header('Content-Encoding: gzip'); 
    } 
    } 
}


Wystarczy, że:

$compress = TRUE;

zmienisz na:
$compress = FALSE;


Lub po prostu zakomentujesz:

/**
* Kompresja GZIP strony w celu zmiejszenia tranferu
$do_gzip_compress = FALSE; 
$compress = TRUE; 
$phpver = phpversion(); 
$useragent = (isset($_SERVER["HTTP_USER_AGENT"]) ) ? $_SERVER["HTTP_USER_AGENT"] : $HTTP_USER_AGENT; 
if ( $phpver >= '4.0.4pl1' && ( strstr($useragent,'compatible') || strstr($useragent,'Gecko') ) ) { 
    if ( extension_loaded('zlib') ) { 
    $compress = TRUE; 
    ob_start('ob_gzhandler'); 
    } 
} elseif ( $phpver > '4.0' ) { 
    if ( strstr($HTTP_SERVER_VARS['HTTP_ACCEPT_ENCODING'], 'gzip') ) { 
    if ( extension_loaded('zlib') )    { 
        $do_gzip_compress = TRUE; 
        $compress = TRUE; 
        ob_start(); 
        ob_implicit_flush(0); 
            header('Content-Encoding: gzip'); 
    } 
    } 
}*/

 

3. Gracz nie może wgrać swojego awataru.


Aby ten problem rozwiązać musisz zmienić uprawnienia chmod do katalogu avatars na serwerze na 777, z prawem zapisu dla wszystkich.

4. Jak zwiększyć maksymalną ilość pieniędzy?


Musisz typ pola credits w tabeli players (np. za pomocą PhpMyAdmin) ustawić na bigint(20).

5. Po wejściu do karczmy wyskakuje jedynie biała strona z napisem "Błąd!". Jak to naprawić?

W chat.php odszukujesz:

$stat = $db -> Execute("SELECT id, rank FROM players WHERE email='".$_SESSION['email']."' AND pass=MD5('".$_SESSION['pass'].")'");

i zmieniasz na:

$stat = $db -> Execute("SELECT id, rank FROM players WHERE email='".$_SESSION['email']);

6. Czas na stronie głównej i w grze różni się o godzinę.

Katalog includes, plik head.php, szukaj:

$time = date("H:i:s";
$data = date("y-m-d";
$hour = explode(":", $time);
$day = explode("-",$data);
$newhour = $hour[0] + 1;
if ($newhour > 23) {
$newhour = $newhour - 24;
$day[2] = $day[2]+1;
}

a linijkę:
$newhour = $hour[0] + 1;

zmień na:
$newhour = $hour[0];


------------------------------------------------------------------------------------------
I na tym kończy się nasza wspólna podróż po Vallheru.
Obiecuję, że niedługo zanużymy się ponownie w tym silniku, aby odpicować go do granic wytrzymałości ;)

Zgłoś swój pomysł na artykuł

Więcej w tym dziale Zobacz wszystkie