Witam. na mojej stronie zainstalowałem ciekawy chat Ajax Chat. Ale takowy chat niestety ma baze użytkowników w pliku users.php.


Problem polega na tym że chce połączyć logowanie na chat z logowaniem na stronę której pliki mam na SQL. Proszę o pomoc w przerobieniu kodu tak aby pobierał użytkowników z tabelki users w bazie.

Plus jest taki że chat ma jakieś tabeli w bazie np: ajax_ user_banned (co swoja droga jest dziwne że nie ma tam tabeli users O.o)


Nie wiem jake pliki mam dodać.

Users.php - baza Ajax Chata

  1. <?php
  2. /*
  3.  * @package AJAX_Chat
  4.  * @author Sebastian Tschan
  5.  * @copyright (c) Sebastian Tschan
  6.  * @license GNU Affero General Public License
  7.  */
  8.  
  9. // List containing the registered chat users:
  10. $users = array();
  11.  
  12. // Default guest user (don't delete this one):
  13. $users[0] = array();
  14. $users[0]['userRole'] = AJAX_CHAT_GUEST;
  15. $users[0]['userName'] = null;
  16. $users[0]['password'] = null;
  17. $users[0]['channels'] = array(0);
  18.  
  19. // Sample admin user:
  20. $users[1] = array();
  21. $users[1]['userRole'] = AJAX_CHAT_ADMIN;
  22. $users[1]['userName'] = 'admin';
  23. $users[1]['password'] = 'admin';
  24. $users[1]['channels'] = array(0,1);
  25.  
  26. // Sample moderator user:
  27. $users[2] = array();
  28. $users[2]['userRole'] = AJAX_CHAT_MODERATOR;
  29. $users[2]['userName'] = 'moderator';
  30. $users[2]['password'] = 'moderator';
  31. $users[2]['channels'] = array(0,1);
  32.  
  33. // Sample registered user:
  34. $users[3] = array();
  35. $users[3]['userRole'] = AJAX_CHAT_USER;
  36. $users[3]['userName'] = 'user';
  37. $users[3]['password'] = 'user';
  38. $users[3]['channels'] = array(0,1);
  39. ?>


Tabelki Ajax Chata:

  1. DROP TABLE IF EXISTS ajax_chat_online;
  2. CREATE TABLE ajax_chat_online (
  3. userID INT(11) NOT NULL,
  4. userName VARCHAR(64) NOT NULL,
  5. userRole INT(1) NOT NULL,
  6. channel INT(11) NOT NULL,
  7. dateTime DATETIME NOT NULL,
  8. ip VARBINARY(16) NOT NULL
  9. ) DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
  10.  
  11. DROP TABLE IF EXISTS ajax_chat_messages;
  12. CREATE TABLE ajax_chat_messages (
  13. id INT(11) NOT NULL AUTO_INCREMENT,
  14. userID INT(11) NOT NULL,
  15. userName VARCHAR(64) NOT NULL,
  16. userRole INT(1) NOT NULL,
  17. channel INT(11) NOT NULL,
  18. dateTime DATETIME NOT NULL,
  19. ip VARBINARY(16) NOT NULL,
  20. text TEXT,
  21. PRIMARY KEY (id)
  22. ) DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
  23.  
  24. DROP TABLE IF EXISTS ajax_chat_bans;
  25. CREATE TABLE ajax_chat_bans (
  26. userID INT(11) NOT NULL,
  27. userName VARCHAR(64) NOT NULL,
  28. dateTime DATETIME NOT NULL,
  29. ip VARBINARY(16) NOT NULL
  30. ) DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
  31.  
  32. DROP TABLE IF EXISTS ajax_chat_invitations;
  33. CREATE TABLE ajax_chat_invitations (
  34. userID INT(11) NOT NULL,
  35. channel INT(11) NOT NULL,
  36. dateTime DATETIME NOT NULL
  37. ) DEFAULT CHARSET=utf8 COLLATE=utf8_bin;


Tabeli Logowania WWW

  1.  
  2. --
  3. -- Baza danych: `scyzoryk_db`
  4. --
  5.  
  6. -- --------------------------------------------------------
  7.  
  8. --
  9. -- Struktura tabeli dla `active_guests`
  10. --
  11.  
  12. CREATE TABLE IF NOT EXISTS `active_guests` (
  13. `ip` varchar(15) collate utf8_unicode_ci NOT NULL,
  14. `timestamp` int(11) UNSIGNED NOT NULL,
  15. PRIMARY KEY (`ip`)
  16. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
  17.  
  18. --
  19. -- Zrzut danych tabeli `active_guests`
  20. --
  21.  
  22. INSERT INTO `active_guests` (`ip`, `timestamp`) VALUES
  23. ('46.134.223.69', 1311888843);
  24.  
  25. -- --------------------------------------------------------
  26.  
  27. --
  28. -- Struktura tabeli dla `active_users`
  29. --
  30.  
  31. CREATE TABLE IF NOT EXISTS `active_users` (
  32. `username` varchar(30) collate utf8_unicode_ci NOT NULL,
  33. `timestamp` int(11) UNSIGNED NOT NULL,
  34. PRIMARY KEY (`username`)
  35. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
  36.  
  37. --
  38. -- Zrzut danych tabeli `active_users`
  39. --
  40.  
  41. -- --------------------------------------------------------
  42.  
  43. --
  44. -- Struktura tabeli dla `banned_users`
  45. --
  46.  
  47. CREATE TABLE IF NOT EXISTS `banned_users` (
  48. `username` varchar(30) collate utf8_unicode_ci NOT NULL,
  49. `timestamp` int(11) UNSIGNED NOT NULL,
  50. PRIMARY KEY (`username`)
  51. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
  52.  
  53. --
  54. -- Zrzut danych tabeli `banned_users`
  55. --
  56.  
  57.  
  58. -- --------------------------------------------------------
  59.  
  60. --
  61. -- Struktura tabeli dla `users`
  62. --
  63.  
  64. CREATE TABLE IF NOT EXISTS `users` (
  65. `username` varchar(30) collate utf8_unicode_ci NOT NULL,
  66. `password` varchar(32) collate utf8_unicode_ci DEFAULT NULL,
  67. `userid` varchar(32) collate utf8_unicode_ci DEFAULT NULL,
  68. `userlevel` tinyint(1) UNSIGNED NOT NULL,
  69. `email` varchar(50) collate utf8_unicode_ci DEFAULT NULL,
  70. `timestamp` int(11) UNSIGNED NOT NULL,
  71. PRIMARY KEY (`username`)
  72. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
  73.  
  74. --
  75. -- Zrzut danych tabeli `users`
  76. --
  77.  
  78. INSERT INTO `users` (`username`, `password`, `userid`, `userlevel`, `email`, `timestamp`) VALUES
  79. ('xxx', '253814f77a129520d6adf8ac4d13fdd6', 'e4512500759e522549198243f6eee8af', 9, 'xxx@gmail.com', 1311885419),
  80. ('xxx', '1990b3462d7fcb3252c8d11dc8edf849', '531cb03d7fa977ab15b4a3a0d64169b5', 1, 'xxx_1000@wp.pl', 1311877554),
  81. ('xxx', '9864b874545b9049d10ab5ddb7d34eb4', '7faebe586707fe55cb834f6cc28c5832', 9, 'xxx@o2.pl', 1311886303);
  82.  






PS; w tych sprawach jestem razem zielony exclamation.gif!! (dlatego prosze o pomoc biggrin.gif)

Znalazłem dzisiaj jakiś plik db_users.patch który ma przystosować pliki do połączenia się z bazą. O to !.

Zawartość pliku db_users.patch podam w załączniku ponieważ treść jest za długa.

Download

Można zauważyć że są tam podane "zamienniki" do różnych części plików oraz numery wierszy. Czyli w ostateczności można by to zrobić ręcznie ! Próbowałem, niestety po wpisaniu pierwszej poprawki numery wierszy przesuwały się automatycznie niżej i po poprawieniu 5 wierszy pliku chat.js zupełnie się pogubiłem sad.gif.

Druga sprawa jest taka że czytałem o tych plikach .patch, wywnioskowałem że takie pliki obsługuje CMS Joomla to updatowania. Nie wiem czy mozna to zrobić na Windowsie lub na serwerze. (teoretycznie dało by rade na Linux'e, bo obsługuje komendę typu patch -p1 < db_users.patch)



Do ściągnięcia jest jeszcze plik db_auth_migrate z zawartością

  1. <?php
  2.  
  3. // run this script from the command line to generate a sql script
  4. // to migrate your channels and users from the .php files in the lib/data
  5. // subdirectory to the database:
  6. //
  7. // php db_auth_migrate.php > db_auth.sql
  8. //
  9. // make sure you delete the db_auth.sql file after the migration!
  10. //
  11.  
  12. $channels = null;
  13. require('lib/data/channels.php');
  14. foreach($channels as $channelID => $channelName) {
  15. printf("INSERT INTO ajax_chat_channels values (%s, '%s');\n",
  16. $channelID,
  17. $channelName);
  18. }
  19.  
  20. $users = null;
  21. require('lib/data/users.php');
  22. foreach($users as $userID => $userData) {
  23. printf("INSERT INTO ajax_chat_users values (%s, '%s', '%s', '%s');\n",
  24. $userID,
  25. $userData['userName'],
  26. $userData['password'],
  27. $userData['userRole']);
  28.  
  29. foreach($userData['channels'] as $channelID) {
  30. printf("INSERT INTO ajax_chat_channelAccess values (%s, %s);\n",
  31. $channelID,
  32. $userID);
  33. }
  34. }
  35. ?>
  36.  


Proszę o pomoc z "pachowaniem" Ajax Chata lub inne przerobienie kodu.
Ewentualnie o link do innego chatu z systemem logowania!

pzdro scyzoryk