ProBaton Batonik 0 Napisano 16 Grudnia 2020 Udostępnij Napisano 16 Grudnia 2020 Witam.Mam problem z panelem gracza na mojej stronie.Panel jest pisany troszkę starszym systemem i rok temu jeszcze działał poprawnie, niestety dzisiaj po próbie ponownego uruchomienia nie działa.Próbowałem różnych sposobów, lecz nie wiem czym może to być spowodowane. Dodam, że rejestracja i statystyki działają poprawnie, Pokazuje wiadomość "ZALOGOWANO poprawnie" po czym strona sie odświeża i jesteśmy w punkcie wyjścia Link do panelu http://s63180.web101.svpj.pl/panelgracza.php login: testkonto123 hasło: haslo123 dodam, że rejestracja działa poprawnie. Kod logowania jak działa, może ktoś znajdzie w czym jest błąd: kod strony - Pastebin.com Odnośnik do odpowiedzi Udostępnij na innych stronach
Administrator Mativve 3 909 Napisano 16 Grudnia 2020 Administrator Udostępnij Napisano 16 Grudnia 2020 Witaj na forum! Czy możesz pokazać jak wygląda funkcja isLogged() oraz login() ? Wygląda mi to tak jakby nie tworzyło/wykrywało 'sesji'. Dodatkowo gdybyś dał info co to za system - może by pomogło 😉 Odnośnik do odpowiedzi Udostępnij na innych stronach
ProBaton Batonik 0 Napisano 17 Grudnia 2020 Autor Udostępnij Napisano 17 Grudnia 2020 (edytowane) 6 godzin temu, Mativve napisał: Witaj na forum! Czy możesz pokazać jak wygląda funkcja isLogged() oraz login() ? Wygląda mi to tak jakby nie tworzyło/wykrywało 'sesji'. Dodatkowo gdybyś dał info co to za system - może by pomogło 😉 isLogged() to nie będzie to? is logged - Pastebin.com login() to występuje? Ponieważ nie mogę jej znaleźć nigdzie? Edit: przeszukałem wszystkie pliki, nigdzie nie ma funkcji login() Edytowane 17 Grudnia 2020 przez ProBaton Batonik Odnośnik do odpowiedzi Udostępnij na innych stronach
Ekspert Pankrok 127 Napisano 17 Grudnia 2020 Ekspert Udostępnij Napisano 17 Grudnia 2020 Imo będzie gdzieś w pliku functions.php dołączanym do skryptu na starcie. Pokaż co jest w tym pliku. Odnośnik do odpowiedzi Udostępnij na innych stronach
Administrator Mativve 3 909 Napisano 17 Grudnia 2020 Administrator Udostępnij Napisano 17 Grudnia 2020 @Pankrok Kolega napisał że przeszukał pliki i nic nie znalazł - dodatkowo functions.php to chyba w WP występuje - a tutaj jest custom system to może być w całkowicie innym pliku (choć zbieżność nazw plików może się zdarzyć). @ProBaton Batonik Czy jesteś w stanie dać mi dostęp do plików bądź podać link do tego systemu abym mógł u siebie go zainstalować? Bo tak to będziemy błądzić a zapewne jest to wina jednej z tych funkcji. Odnośnik do odpowiedzi Udostępnij na innych stronach
Ekspert Pankrok 127 Napisano 17 Grudnia 2020 Ekspert Udostępnij Napisano 17 Grudnia 2020 @Mativve patrząc na pierwszego pasebina na wstępie incuduje właśnie plik z funkcjami, potem korzysta z funkcji bez operatora klasy co oznacza że skrypt nie jest zbudowany jako oop stąd moje przypuszczenie że tam może być dana funkcja lub include innego pliku który ją zawiera. Bez wglądu w pliku raczej ciężko będzie to rozgryźć. -n3veR i SeNioR dodali reakcje 2 Odnośnik do odpowiedzi Udostępnij na innych stronach
Administrator Mativve 3 909 Napisano 17 Grudnia 2020 Administrator Udostępnij Napisano 17 Grudnia 2020 @Pankrok @ProBaton Batonik dał mi dostęp do FTPa i jest tak jak piszesz - w sensie nie jest to stworzone na OOP i jest tam typowy "spaghetti code" ale dzięki magicznemu działaniu VSCode udało się odnaleźć funkcje: Spoiler function isLogged() { global $userdata, $_SESSION; // sprawdzamy, czy mamy sesje i dane usera if ($userdata['uid'] > 0 and isset($_SESSION['uid'])) { return true; } else { return false; } } Spoiler function login($login, $pass) { global $db, $_SESSION; // musimy mie� dost�p do tych zmiennych $login=htmlentities($login,ENT_QUOTES,'UTF-8'); // Tutaj zabezpieczenie przed SQL ('--) $pass=htmlentities($pass,ENT_QUOTES,'UTF-8'); // Tutaj zabezpieczenie przed SQL ('--) $sql = "select * from user where nick='$login' and password='$pass'"; if ($result=$db->query($sql)) { $row = $result -> fetch_Assoc(); if ($row['uid'] > 0) { // je�li pobrany przez nasz rekord ma ID wi�ksze od 0 to znaczy, �e istnieje, czyli zostali�my zalogowani $_SESSION['uid'] = $row['uid']; // dodajemy ID do sesji $_SESSION['login'] = $row['nick']; return true; } else { return false; } } else { return false; } } (Nie do końca podoba mi się użycie zmiennych w zapytaniu $sql) Skoro system działał dobrze kiedyś to może jest to wina wersji PHP? Warto spróbować zanim się w kodzie zacznie się grzebać. Również spróbowałbym trochę kod zaktualizować ewentualnie skorzystać z WordPressa i utworzyć wtyczki, które będą odpowiadać obecnym elementom. Przy próbie uruchomienia tego u siebie na localhost'cie nie wszystko dobrze działało, a gdy dałem na tymczasowy hosting to wyrzucało mi na górze informacje "headers already sent" Pankrok dodał reakcję 1 Odnośnik do odpowiedzi Udostępnij na innych stronach
ProBaton Batonik 0 Napisano 17 Grudnia 2020 Autor Udostępnij Napisano 17 Grudnia 2020 1 godzinę temu, Mativve napisał: @Pankrok @ProBaton Batonik dał mi dostęp do FTPa i jest tak jak piszesz - w sensie nie jest to stworzone na OOP i jest tam typowy "spaghetti code" ale dzięki magicznemu działaniu VSCode udało się odnaleźć funkcje: Odkryj ukrytą treść function isLogged() { global $userdata, $_SESSION; // sprawdzamy, czy mamy sesje i dane usera if ($userdata['uid'] > 0 and isset($_SESSION['uid'])) { return true; } else { return false; } } Odkryj ukrytą treść function login($login, $pass) { global $db, $_SESSION; // musimy mie� dost�p do tych zmiennych $login=htmlentities($login,ENT_QUOTES,'UTF-8'); // Tutaj zabezpieczenie przed SQL ('--) $pass=htmlentities($pass,ENT_QUOTES,'UTF-8'); // Tutaj zabezpieczenie przed SQL ('--) $sql = "select * from user where nick='$login' and password='$pass'"; if ($result=$db->query($sql)) { $row = $result -> fetch_Assoc(); if ($row['uid'] > 0) { // je�li pobrany przez nasz rekord ma ID wi�ksze od 0 to znaczy, �e istnieje, czyli zostali�my zalogowani $_SESSION['uid'] = $row['uid']; // dodajemy ID do sesji $_SESSION['login'] = $row['nick']; return true; } else { return false; } } else { return false; } } (Nie do końca podoba mi się użycie zmiennych w zapytaniu $sql) Skoro system działał dobrze kiedyś to może jest to wina wersji PHP? Warto spróbować zanim się w kodzie zacznie się grzebać. Również spróbowałbym trochę kod zaktualizować ewentualnie skorzystać z WordPressa i utworzyć wtyczki, które będą odpowiadać obecnym elementom. Przy próbie uruchomienia tego u siebie na localhost'cie nie wszystko dobrze działało, a gdy dałem na tymczasowy hosting to wyrzucało mi na górze informacje "headers already sent" Zmieniłem wersję od 7.2 do 5.6 i również nic to nie dało.Niestety kodu nie pisałem ja i nie wiem dokładnie jakim stylem jest pisany, jest jakaś opcja aby ogarnąć to aby logowanie działało? Ponieważ wszystko inne działa, wszelkie szukanie użytkowników itp Odnośnik do odpowiedzi Udostępnij na innych stronach
Ekspert Pankrok 127 Napisano 17 Grudnia 2020 Ekspert Udostępnij Napisano 17 Grudnia 2020 imo cały skrypt do zaorania, hasła latają bez hashy, patrząc na request jaki leci do pliku include/login.php dane z bazy są pobierane prawidłowo. natomiast w function isLogged() nie widzę nigdzie przypisania danych do $userdata, więc zapewne operator logiczny if w linii 5 zwróci false. Wydaje mi się że tam powinien sprawdzać $_SESSION['login'] i $_SESSION['id'] . Jeśli można @ProBaton Batonik pokaż pliki mogę na to zerknąć co tam można naprawić. PS. global $_SESSION mnie rozbawiło 😄 -n3veR i Mativve dodali reakcje 1 1 Odnośnik do odpowiedzi Udostępnij na innych stronach
ProBaton Batonik 0 Napisano 17 Grudnia 2020 Autor Udostępnij Napisano 17 Grudnia 2020 25 minut temu, Pankrok napisał: imo cały skrypt do zaorania, hasła latają bez hashy, patrząc na request jaki leci do pliku include/login.php dane z bazy są pobierane prawidłowo. natomiast w function isLogged() nie widzę nigdzie przypisania danych do $userdata, więc zapewne operator logiczny if w linii 5 zwróci false. Wydaje mi się że tam powinien sprawdzać $_SESSION['login'] i $_SESSION['id'] . Jeśli można @ProBaton Batonik pokaż pliki mogę na to zerknąć co tam można naprawić. PS. global $_SESSION mnie rozbawiło 😄 Na PW masz all dane do konta testowego na górze w temacie Odnośnik do odpowiedzi Udostępnij na innych stronach
Rekomendowane odpowiedzi
Problem wciąż nierozwiązany? Dodaj swoją odpowiedź
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto. Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się