Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [PHP] Aktualizacja modułu z php 5.6 na 7.0
alkesz1718
post
Post #1





Grupa: Zarejestrowani
Postów: 98
Pomógł: 0
Dołączył: 8.12.2014
Skąd: Czernina

Ostrzeżenie: (0%)
-----


Witam,
Mam 2 problemy z modułem i już nie wiem gdzie kryje się błąd...
Na początek mój moduł wyświetla ostatnio aktywnych użytkowników na stronie oraz aktualnych.

1. Błąd jak jest to z jakiegoś powodu na PHP 5.6 (nie wiem jak na starszych ale raczej jest ok) w przeglądarce po znalezieniu mojej strony w "opisie" jest taki komunikat:
  1. The Error returned was: Something is wrong in your syntax obok '`time`=VALUES(`time`)' w linii 3. SQL query: INSERT INTO `dle_online` (`key`, `uid`, `uname`, `time`, `ip`, `user_agent`, `os`, `location`, `proxy`, `foto`, `user_group`) VALUES ('c73438351767789436b3403cb68c2728', '0', 'robot', '1515768201', ...


Sprawdzałem kod i jest z nim (przynajmniej wg mnie) wszystko ok bo wyświetla prawidłowo wszystkich użytkowników itd.

2. Problem jest taki że po zmienieniu wersji PHP na 7.0 nagle przestało pokazywać mi wszystkich użytkowników, robotów itd mimo że w liczbie aktywnych pisze że np aktywnych aktualnie jest 5 lub ileś tam ale nie pokazuje nicków tych użytkowników.

Poniżej daję cały moduł byście mogli przejrzeć kod i podpowiedzieć mi co mam zmienić lub ewentualnie samemu to zrobić o ile ktoś jest na tyle miły.

http://www25.zippyshare.com/v/8AamXP5N/file.html


Z góry dziękuję za pomoc
Go to the top of the page
+Quote Post
trzczy
post
Post #2





Grupa: Zarejestrowani
Postów: 460
Pomógł: 49
Dołączył: 5.06.2011

Ostrzeżenie: (0%)
-----


Pokaż błędy php.
Go to the top of the page
+Quote Post
alkesz1718
post
Post #3





Grupa: Zarejestrowani
Postów: 98
Pomógł: 0
Dołączył: 8.12.2014
Skąd: Czernina

Ostrzeżenie: (0%)
-----


Właśnie problem w tym że nie pokazuje żadnego błędu. Jak napisałem wyżej na php7 działa moduł z tym że nie pokazuje żadnych użytkowników... możesz wejść na moją stronę i sam zobaczysz...

http://dj-alexn.pl

Na samym dole strony ten licznik jest
Go to the top of the page
+Quote Post
trzczy
post
Post #4





Grupa: Zarejestrowani
Postów: 460
Pomógł: 49
Dołączył: 5.06.2011

Ostrzeżenie: (0%)
-----


Cytat(alkesz1718 @ 14.01.2018, 13:23:53 ) *
Właśnie problem w tym że nie pokazuje żadnego błędu.

Dziwna sprawa. Nie zmieniłeś wersji bazy danych, tylko wersję php. Skąd więc pojawia się błąd bazy danych? Rozumiem, że w kodzie jest coś takiego?
  1. ini_set('display_errors', true);

Go to the top of the page
+Quote Post
viking
post
Post #5





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Po wejściu na stronę wyświetla się ostrzeżenie o bezpieczeństwie. Nie masz tam jakiegoś wirusa?


--------------------
Go to the top of the page
+Quote Post
alkesz1718
post
Post #6





Grupa: Zarejestrowani
Postów: 98
Pomógł: 0
Dołączył: 8.12.2014
Skąd: Czernina

Ostrzeżenie: (0%)
-----


to co podałeś to znalazłem coś podobnego w pliku gdzie jest tylko:
  1. <?php
  2. /*
  3. ####################################################
  4. @copyright (c) 2015-2017 Dj_AlexN Graphic
  5. @name Moduł Online by Dj_AlexN Graphic
  6. @version 6.2
  7. ####################################################
  8. */
  9.  
  10. @ini_set('display_errors', true);
  11. @ini_set('html_errors', false);
  12.  
  13. define('DATALIFEENGINE', true);
  14. define('ROOT_DIR', '../..');
  15. define('ENGINE_DIR', '..');
  16.  
  17. include ENGINE_DIR.'/data/config.php';
  18.  
  19. @header("HTTP/1.0 200 OK");
  20. @header("HTTP/1.1 200 OK");
  21. @header("Cache-Control: no-cache, must-revalidate, max-age=0");
  22. @header("Expires: 0");
  23. @header("Pragma: no-cache");
  24. @header("Content-type: text/css; charset=".$config['charset']);
  25.  
  26.  
  27. $data = "Ustawienia";
  28.  
  29. echo $data;
  30. ?>


Viking a wchodzisz przez http czy https?? jak przez http to będzie ci pokazywał tak

Ten post edytował alkesz1718 14.01.2018, 14:28:27
Go to the top of the page
+Quote Post
trzczy
post
Post #7





Grupa: Zarejestrowani
Postów: 460
Pomógł: 49
Dołączył: 5.06.2011

Ostrzeżenie: (0%)
-----


To co masz w liniach od 11 do 13 zamień na to
  1. ini_set('display_errors', true);


Tymczasowo do testów, bo normalnie nie powinno się pokazywać błędów użytkownikom strony.
Go to the top of the page
+Quote Post
alkesz1718
post
Post #8





Grupa: Zarejestrowani
Postów: 98
Pomógł: 0
Dołączył: 8.12.2014
Skąd: Czernina

Ostrzeżenie: (0%)
-----


Więc rozumiem że mówisz o wyświetlaniu tego błędu w przeglądarce:
  1. The Error returned was: Something is wrong in your syntax obok '`time`=VALUES(`time`)' w linii 3. SQL query: INSERT INTO `dle_online` (`key`, `uid`, `uname`, `time`, `ip`, `user_agent`, `os`, `location`, `proxy`, `foto`, `user_group`) VALUES ('c73438351767789436b3403cb68c2728', '0', 'robot', '1515768201', ...


Po zmianie kodu błąd się wyświetla nadal... (nie u mnie bo taki błąd jest jak w wyszukiwarce wpiszesz zajefajna.net.pl )
Go to the top of the page
+Quote Post
trzczy
post
Post #9





Grupa: Zarejestrowani
Postów: 460
Pomógł: 49
Dołączył: 5.06.2011

Ostrzeżenie: (0%)
-----


Cytat(alkesz1718 @ 14.01.2018, 14:52:53 ) *
Więc rozumiem że mówisz o wyświetlaniu tego błędu w przeglądarce:
Tak. To jest błąd bazydanych. Myślałem, że są jeszcze błędy php.
Go to the top of the page
+Quote Post
alkesz1718
post
Post #10





Grupa: Zarejestrowani
Postów: 98
Pomógł: 0
Dołączył: 8.12.2014
Skąd: Czernina

Ostrzeżenie: (0%)
-----


No to dobra to jest rozwiązanie z 1 ale teraz dlaczego jak zmienię wersję PHP na 7.0 to nagle w bloku nie wyświetla mi użytkowników a po zmianie na php 5.6 pojawiają się... tu na pewno jest coś nie tak z kodem php
Go to the top of the page
+Quote Post
trzczy
post
Post #11





Grupa: Zarejestrowani
Postów: 460
Pomógł: 49
Dołączył: 5.06.2011

Ostrzeżenie: (0%)
-----


Wklej tu kod, bo ludzie raczej nie wczhodzą na nieznane strony i nie otwierają nieznanych plików.
Go to the top of the page
+Quote Post
alkesz1718
post
Post #12





Grupa: Zarejestrowani
Postów: 98
Pomógł: 0
Dołączył: 8.12.2014
Skąd: Czernina

Ostrzeżenie: (0%)
-----


Ok więc tak w szablonie daję kod:
{include file='engine/modules/online.php'}
Kod z tego pliku:
  1. <?php
  2. /*
  3. ####################################################
  4. @copyright (c) 2015-2017 Dj_AlexN Graphic
  5. @name Moduł Online by Dj_AlexN Graphic
  6. @version 6.2
  7. @link <a href="http://dj-alexn.xaa.pl" target="_blank">http://dj-alexn.xaa.pl</a>
  8. ####################################################
  9. */
  10. if(!defined('DATALIFEENGINE'))
  11. {
  12. die("Hacking attempt!");
  13. }
  14.  
  15. /*
  16. ====================================
  17.  Podłączenie klasy
  18. ====================================
  19. */
  20.  
  21. require_once ROOT_DIR.'/engine/classes/online.class.php';
  22.  
  23. /*
  24. ====================================
  25. Usuwanie starych zapisywań
  26. ====================================
  27. */
  28.  
  29. $time = $_TIME - $online_config['time_out'] * 60;
  30. $rand = rand(1, 20);
  31. if($rand%2 == 0)
  32. {
  33. $db->query("DELETE FROM `".PREFIX."_online` WHERE `time` < '$time'");
  34. }
  35.  
  36. /*
  37. ====================================
  38.  Określenie miejsca pobytu
  39. ====================================
  40. */
  41.  
  42. $location = $online_api->getUserLocation();
  43.  
  44. /*
  45. ====================================
  46.  Określenie IP, Proxy, User agent
  47. ====================================
  48. */
  49.  
  50. $_IP = $db->safesql($_SERVER['REMOTE_ADDR']);
  51. $_UA = $db->safesql($_SERVER['HTTP_USER_AGENT']);
  52. $_PROXY = $db->safesql(getenv('HTTP_X_FORWARDED_FOR'));
  53.  
  54. /*
  55. ==============================================
  56.  Jeśli użytkownik wszedł - czyści ciasteczka
  57. ==============================================
  58. */
  59.  
  60. if( isset( $_POST['login'] ) and $_POST['login'] == "submit" )
  61. {
  62. if( PHP_VERSION < 5.2 )
  63. {
  64. setcookie( "module_online", "", 0, "/", DOMAIN . "; HttpOnly" );
  65.  
  66. } else {
  67. setcookie( "module_online", "", 0, "/", DOMAIN, NULL, TRUE );
  68. }
  69.  
  70. $key = md5("guest".$_IP);
  71. $db->query("DELETE FROM `".PREFIX."_online` WHERE `key`='{$key}'");
  72. }
  73.  
  74. /*
  75. =================================================
  76. Ciasteczka nope? Dryfuje na liście użytkowników
  77. =================================================
  78. */
  79.  
  80. if(!isset($_COOKIE['module_online']))
  81. {
  82.  
  83. /*
  84. ====================================
  85. Jeśli jesteś zalogowany
  86. ====================================
  87. */
  88.  
  89. if($is_logged)
  90. {
  91.  
  92. /*
  93. ====================================
  94. Określić system operacyjny
  95. ====================================
  96. */
  97.  
  98. $OS = $online_api->getUserOS($_UA);
  99.  
  100. /*
  101. ====================================
  102. Ustalamy przeglądarkę
  103. ====================================
  104. */
  105.  
  106. $user_agent = $online_api->getUserBrowser($_UA);
  107.  
  108. /*
  109. ====================================
  110. Tworzenie klucza, dodać do listy
  111. ====================================
  112. */
  113.  
  114. $key = md5($member_id['user_id'].$_IP);
  115.  
  116. $db->query("INSERT INTO `".PREFIX."_online` (`key`, `uid`, `uname`, `time`, `ip`, `user_agent`, `os`, `location`, `proxy`, `foto`, `user_group`) VALUES ('{$key}', '{$member_id['user_id']}', '{$member_id['name']}', '$_TIME', '{$_IP}', '{$user_agent}', '$OS', '$location', '$_PROXY', '{$member_id['foto']}', '{$member_id['user_group']}') ON DUPLICATE KEY UPDATE `key`=VALUES(`key`), `uid`=VALUES(`uid`), `uname`=VALUES(`uname`), `user_agent`=VALUES(`user_agent`), `foto`=VALUES(`foto`), `OS`='$OS', `proxy`='$_PROXY', `time`='$_TIME', `location`='$location', `user_group`=VALUES(`user_group`)");
  117. } else {
  118.  
  119. /*
  120. ====================================
  121. Jeśli nie jest zalogowany
  122. ====================================
  123. */
  124.  
  125. /*
  126. ====================================
  127. Ustal robota
  128. ====================================
  129. */
  130.  
  131. $robot = $online_api->check_robot($_UA);
  132.  
  133. /*
  134. =========================================================
  135. Umieszcza się w bazie danych robota lub odwiedzających
  136. =========================================================
  137. */
  138.  
  139. if($robot != '')
  140. {
  141. $key = md5($robot.$_IP);
  142.  
  143.  
  144. $db->query("INSERT INTO `".PREFIX."_online` (`key`, `uid`, `uname`, `time`, `ip`, `user_agent`, `os`, `location`, `proxy`, `foto`, `user_group`)
  145. VALUES ('{$key}', '0', 'robot', '$_TIME', '{$_IP}', '{$user_agent}', '$OS', '{$location}', '{$_PROXY}', 'unknown', '{$member_id['user_group']}')
  146. ON DUPLICATE KEY UPDATE `key`=VALUES(`key`), `user_agent`=VALUES(`user_agent`), `OS`='$OS', `location`='$location' `time`=VALUES(`time`)");
  147. } else {
  148. $key = md5("guest".$_IP);
  149. $db->query("INSERT INTO `".PREFIX."_online` (`key`, `uid`, `uname`, `time`, `ip`, `location`) VALUES ('{$key}', '0', 'guest', '$_TIME', '{$_IP}', '{$location}') ON DUPLICATE KEY UPDATE `uid`='0', `uname`='guest', `user_agent`='unknown', `foto`='unknown', `OS`='unknown', `proxy`='unknown', `time`='$_TIME', `location`='unknown', `user_group`='unknown'");
  150. }
  151. }
  152.  
  153. /*
  154. ==========================================
  155. Tworzenie plików cookie na czas wyjścia
  156. ==========================================
  157. */
  158.  
  159. $expires = time() + ($online_config['time_out'] * 60);
  160.  
  161. if( PHP_VERSION < 5.2 )
  162. {
  163. setcookie( "module_online", "1", $expires, "/", DOMAIN . "; HttpOnly" );
  164.  
  165. } else {
  166. setcookie( "module_online", "1", $expires, "/", DOMAIN, NULL, TRUE );
  167. }
  168. }
  169.  
  170. /*
  171. ===============================================
  172.  Jeśli AKTYWNY - aktualizowanie lokalizacji
  173. ===============================================
  174. */
  175.  
  176. if($online_config['show_location'] == "yes" OR $online_config['show_last_visit'] == "yes")
  177. {
  178. if($is_logged)
  179. {
  180. $key = md5($member_id['user_id'].$_IP);
  181. $db->query("UPDATE `".PREFIX."_online` SET `time`='$_TIME', `location`='{$location}' WHERE `key`='{$key}'");
  182. } else {
  183.  
  184. $robot = $online_api->check_robot($_UA);
  185.  
  186. if($robot != null)
  187. {
  188. $key = md5($robot.$_IP);
  189. $db->query("UPDATE `".PREFIX."_online` SET `time`='$_TIME', `location`='{$location}' WHERE `key`='{$key}'");
  190. }
  191. }
  192. }
  193.  
  194. $OnlineList = $online_api->getOnlineList();
  195. $all = $OnlineList['all'];
  196. $users_count = $OnlineList['users_count'];
  197. $users = $OnlineList['users'];
  198. $guests = $OnlineList['guests'];
  199. $robots_count = $OnlineList['robots_count'];
  200. $robots = $OnlineList['robots'];
  201.  
  202. /*
  203. ==========================================
  204.  wuświetlanie 20-stu ostatnich aktywnych
  205. ==========================================
  206. */
  207.  
  208. if($online_config['show_twenty_users'] == "yes")
  209. {
  210. $sql = $db->query("SELECT lastdate, user_id, name, logged_ip, foto, user_group FROM ".USERPREFIX."_users ORDER BY lastdate DESC LIMIT 20");
  211. $twenty_users_count = 0;
  212. $twenty_users = null;
  213. while($row = $db->get_row($sql))
  214. {
  215. $online_api->start($row['user_id'], $row['name'], $row['logged_ip'], $row['lastdate'], null, $row['user_group'], null, null, null, $row['foto']);
  216. $twenty_users .= $online_api->getUserInfo();
  217. $twenty_users_count++;
  218. $online_api->clear();
  219. }
  220. }
  221.  
  222. /*
  223. ====================================
  224.  Usuń ostatni przecinek
  225. ====================================
  226. */
  227.  
  228. if($users_count == 0) { $users = "0"; } else { $users = substr($users, 0, -2); }
  229. if($robots_count == 0) { $robots = "0"; } else { $robots = substr($robots, 0, -2); }
  230. if($twenty_users_count == 0) { $twenty_users = "0"; } else { $twenty_users = substr($twenty_users, 0, -2); }
  231.  
  232. /*
  233. ====================================
  234.  Otwórz szablon, wprowadź kody
  235. ====================================
  236. */
  237.  
  238. $tpl->load_template('online/list.tpl');
  239. $tpl->set('{guests}', $guests);
  240. $tpl->set('{users}', $users);
  241. $tpl->set('{robots}', $robots);
  242. $tpl->set('{twenty_users}', $twenty_users);
  243. $tpl->set('{users_count}', $users_count);
  244. $tpl->set('{robots_count}', $robots_count);
  245. $tpl->set('{twenty_users_count}', $twenty_users_count);
  246. $tpl->set('{all}', $all);
  247. $tpl->compile('online');
  248. $tpl->clear();
  249.  
  250. echo $tpl->result['online'];
  251. ?>

Dalej połączony z tym plik jest online.class.php:
http://wklejto.pl/322587

Niestety ten 1 plik musiałem dać na wklejkę bo za dużo znaków było w poście

Dodam że w tym 1 pliku może być również związany błąd o którym była mowa wcześniej
Go to the top of the page
+Quote Post
Pyton_000
post
Post #13





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Kod
, `location`='$location' `time`=VALUES(`time`)");


przecinka brakuje...
Go to the top of the page
+Quote Post
alkesz1718
post
Post #14





Grupa: Zarejestrowani
Postów: 98
Pomógł: 0
Dołączył: 8.12.2014
Skąd: Czernina

Ostrzeżenie: (0%)
-----


Ale nadal to nie rozwiązuje problemu z brakiem wyświetlania aktywnych użytkowników na php 7
Go to the top of the page
+Quote Post
viking
post
Post #15





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Sprawdź logi serwera bo masz pewnie kupę błędów których nie wyświetlasz. Teb obiekt db to mam nadzieję nie rozszerzenie mysql?


--------------------
Go to the top of the page
+Quote Post
alkesz1718
post
Post #16





Grupa: Zarejestrowani
Postów: 98
Pomógł: 0
Dołączył: 8.12.2014
Skąd: Czernina

Ostrzeżenie: (0%)
-----


Sprawdziłem logi i nic tam nie ma jedyne błędy to z rss.xml
A co do tego obiektu db to w systemie w wielu miejscach jest podobne odniesienie do bazy danych np:
  1. $db->query( "SELECT * FROM " . PREFIX . "_category ORDER BY posi ASC" );

więc na pewno on nie wadzi tutaj
Go to the top of the page
+Quote Post
viking
post
Post #17





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Jeśli masz błędy rss.xml to zapewne nie sprawdzasz błędy php tylko logi wejść.


--------------------
Go to the top of the page
+Quote Post
alkesz1718
post
Post #18





Grupa: Zarejestrowani
Postów: 98
Pomógł: 0
Dołączył: 8.12.2014
Skąd: Czernina

Ostrzeżenie: (0%)
-----


wszystkie logi serwera jakie mogłem sprawdzić to sprawdziłem i jedyne błędy jakie były to tylko z rss i nic więcej
Go to the top of the page
+Quote Post
viking
post
Post #19





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Apache generuje domyślnie 2 logi error_log i access_log. Sprawdzasz to u siebie lokalnie czy na serwerze?


--------------------
Go to the top of the page
+Quote Post
alkesz1718
post
Post #20





Grupa: Zarejestrowani
Postów: 98
Pomógł: 0
Dołączył: 8.12.2014
Skąd: Czernina

Ostrzeżenie: (0%)
-----




Mówię że nie ma żadnych błędów...
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 21:59