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

Piotr Kowalczyk
05.09.2015

Dziś zajmiemy się naprawą błędów występujących w Vallheru. Nie są to błędy trudne do naprawienie aczkolwiek niektórym sprawią sporo problemów. Postaram się wytłumaczyć najlepiej jak potrafię jak pozbyć się tych błędów. Tak więc zacznijmy:

1. Błąd związany z wyświetlaniem errora “Nie ma takiego gracza”
Błąd spowodowany pomyłką Thindilla, który nie pozwala graczowi na nic, poza zalogowaniem się do gry. Po odświeżeniu strony wyświetla się napis “Nie ma takiego gracza” i nic już nie możemy zrobić. Weźmy się za naprawę tego errora.
Otwieramy ./includes/head.php i szukamy linijki:

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

Aby naprawić ten błąd wystarczy edytować powyższą linijkę tak, aby wyglądała (mniej więcej) tak:
$stat = $db -> Execute("SELECT id, email, ip FROM players WHERE email='".$_SESSION['email']."'");

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

I też aby niechciany i nieszczęsny “Błąd!” nam zniknął musimy (a przynajmniej chcemy) edytować tą linijkę aby wyglądała następująco:

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

I też powinno już działać. Te dwa błędy są prawdopodobnie spowodowane tym, że Thindill coś przeoczył. Posuńmy się dalej…

2. Wchodzisz do karczmy a tam niewidzialny “Błąd!”? Poradzimy sobie i z tym
Błąd łudząco podobny do tego powyższego. Aby go naprawić należy zrobić tak samo, jak w przypadku edycji $stat z head.php. No ale i tak napiszę jak to naprawić. Co jest Nam potrzebne?  Tylko jeden plik php, pod tytułem: chatmsgs.php i szukamy:

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


I też aby niechciany i nieszczęsny “Błąd!” nam zniknął musimy (a przynajmniej chcemy) edytować tą linijkę aby wyglądała następująco:

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

I też powinno już działać. Te dwa błędy są prawdopodobnie spowodowane tym, że Thindill coś przeoczył. Posuńmy się dalej…

3. Nie dostałeś linka aktywacyjnego na maila?

Tu może być wiele przyczyn, między innymi brak funkcji mail(); na serwerze, na którym jest gra, kolejnym powodem może być też złe podanie danych przy instalacji silnika (jeśli wybrałeś opcje wysyłania maila przez SMTP). Aby to (może) zadziałało musimy iść do pliku mailerconfig.php i na samym końcu tego pliku dodać kilka linijek kodu. Oto i on:

$mail -> IsSMTP();
$mail -> Host = "serwer poczty";
$mail -> SMTPAuth = true;
$mail -> CharSet = "iso-8859-2";
$mail -> Username = "Twój_login_do_poczty";
$mail -> Password = "Twoje_hasło_do_poczty";

Aby ten sposób zadziałał musisz posiadać konto pocztowe (zwykły adres @), osobiście polecam http://poczta.wp.pl
Nie powinno być problemów z założeniem tam konta.

Na dziś to wszystko, niedługo cz. 2

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

Więcej w tym dziale Zobacz wszystkie