Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: ShoutBox własna baza użytkowników
Forum PHP.pl > Forum > PHP
Randallmaster
Witam serdecznie, korzystam z shoutbox nospor i niestety mam mały problem z własną bazą użytkowników. Udało mi się przekształcić kod aby korzystał z mojej bazy ale, nie wczytują się kolory i nie dodaje użytkownika onilne. Wina tego wszystkiego stoi na pewno po stronie logowania ponieważ używam swojego o to kod:

  1. <?
  2.  
  3. $message="&nbsp;";
  4.  
  5. $login=$_POST['login'];
  6. if($login) {
  7.  
  8. $uzytkownik=$_POST['uzytkownik'];
  9. $haslo=($_POST['haslo']);
  10.  
  11.  
  12. $host="localhost";
  13. $db_user="localhost";
  14. $db_password="localhost";
  15. $database="localhost";
  16. mysql_connect($host,$db_user,$db_password);
  17. mysql_select_db($database);
  18. // Sprawdzenie nazwy użtkownika i hasła.
  19. $rezultat=mysql_query("select * FROM logowanie WHERE uzytkownik='$uzytkownik' AND haslo='$haslo' AND active='1' AND ban='no'");
  20. if(@mysql_num_rows($rezultat)){
  21.  
  22. session_register("uzytkownik");
  23. header("location:home.php");
  24. }else {
  25.  
  26. $message="<font color='#ae2e2e'>Niepoprawne dane&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font>";
  27. }
  28. } // Koniec sprawdzania autoryzacji.
  29. ?></div>
  30.  
  31. <? echo $message; ?>
  32. <form id="form1" name="form1" method="post" action="<? echo $PHP_SELF; ?>">
  33. <table>
  34. <tr>
  35. <td>Użytkownik: </td>
  36. <td><input name="uzytkownik" type="text" id="uzytkownik" /></td>
  37. </tr>
  38. <tr>
  39. <td>Hasło: </td>
  40. <td><input name="haslo" type="password" id="haslo" /></td>
  41. </tr>
  42. <tr><div></div>
  43. <td colspan="2"><a href="zmianakonta.php">Zmiana konta</a> | <a href="przypomnienie.php">Przypomnij hasło</a>
  44. </td>
  45. </tr>
  46. <tr>
  47. <td></td>
  48. <td><input type='submit' class='login' name='login' value='login' ><alt='login'>
  49. </td>
  50. </tr>
  51. </table>
  52. </form>


oczywiście w localhost mam wpisane swoje dane... to są dane których używam ja przy logowaniu i jeśli logowanie jest poprawne wysyła mnie na home.php gdzie znajduje się shoutbox ale on czyta tylko nazwe uzytkownika ale nie dodaje do online... to jest natomiast kod ShoutBoxDisplay.php wersja 0.8 chyba, ponieważ ta najbardziej mi pasowala....

  1. <?php
  2. ?>
  3. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  7. <title>ShoutBox</title>
  8. <link rel="stylesheet" href="css/ShoutBox.css" type="text/css" />
  9. <!--[if IE]>
  10. <link rel="stylesheet" type="text/css" href="css/ShoutBox_ie6.css" />
  11. <![endif]-->
  12.  
  13. <script type="text/javascript" src="scripts/advajax.js"></script>
  14. <script type="text/javascript" src="scripts/ShoutBox.js"></script>
  15.  
  16. </head>
  17. <body>
  18. <?php
  19. include('./ShoutBoxDBConnection.php');
  20. $ssb = !empty($_SESSION['uzytkownik']);
  21. $er = array();
  22. if (!empty($_POST)){
  23. if (empty($_POST['uzytkownik']))
  24. $er[] = 'Podaj nick';
  25. if (empty($_POST['haslo']))
  26. $er[] = 'Podaj hasło';
  27. if (empty($_POST['color']))
  28. $color = '000000';
  29. else{
  30. if (preg_match('/^[0-9a-f]{6}$/i',$_POST['color']))
  31. $color = $_POST['color'];
  32. else
  33. $er[] = 'Podany kolor jest nieprawidłowy';
  34. }
  35. if (empty($er)){
  36. $nick = htmlspecialchars($_POST['uzytkownik'], ENT_QUOTES);
  37. Connection::mysqlconnect();
  38. $sql = 'select id, haslo from logowanie where uzytkownik=\''.$nick.'\'';
  39. $res = mysql_query($sql);
  40. if (!$res)
  41. $er[] = 'Błąd bazy danych';
  42. else{
  43. if (mysql_numrows($res) > 0){
  44. $row = mysql_fetch_array($res);
  45. $pass = $row['haslo'];
  46. if ($pass == $_POST['haslo']){
  47. $ssb = true;
  48. $_SESSION['uzytkownik'] = $nick;
  49. $_SESSION['id'] = $row['id'];
  50. if (file_exists('online.txt'))
  51. unlink('online.txt');
  52. mysql_query('update logowanie set LAST_ACTIVE_TIME=now()'.(isset($_POST['savecolor']) ? ',COLOR=\''.$color.'\'' :''). ' where id='.$row['id']);
  53. $_SESSION['justlogged'] = true;
  54. }
  55. else
  56. $er[] = 'Taki login już istnieje, a ty podałeś błędne hasło';
  57. } else { //brak takiego loginu to dodajemy do bazy i logujemy
  58. if (!$res)
  59. $er[] = 'Błąd bazy danych';
  60. else {
  61. $_SESSION['uzytkownik'] = $nick;
  62. $_SESSION['id'] = mysql_insert_id();
  63. $_SESSION['justlogged'] = true;
  64. if (file_exists('online.txt'))
  65. unlink('online.txt');
  66. $ssb = true;
  67. }
  68. }
  69. }
  70. }
  71. }
  72.  
  73. if (!$ssb){
  74. if (!empty($er)){
  75. echo '<div style="color:red">';
  76. foreach ($er as $error)
  77. echo $error.'<br />';
  78. echo '</div>';
  79. }
  80. ?>
  81. <form method="post">
  82. <table>
  83. <tr>
  84. <td><label>Nick: </label></td>
  85. <td><input type="text" name="uzytkownik" /></td><td> (jesli jestes nowy - podaj nowy nick, jeśli masz już konto - podaj swój nick)</td>
  86. </tr><tr>
  87. <td><label>Hasło: </label></td>
  88. <td><input type="password" name="haslo" /></td><td>(jesli jestes nowy - podaj nowe hasło, jeśli masz już konto - podaj swoje hasło)</td>
  89. </tr><tr>
  90. <td><label>Kolor: </label></td>
  91. <td><input type="text" name="color" /></td><td>(podaj kolor, pod jakim chcesz być widziany. Kolor w postaci RRGGBB, np: FF00FF)</td>
  92. </tr><tr>
  93. <td colspan="3"><input type="checkbox" name="savecolor" checked="checked" />Zapisać kolor w bazie</td>
  94. </tr>
  95. <tr>
  96. <td colspan="3"><input type="submit" value="Start" /></td>
  97. </tr>
  98. </table>
  99. </form>
  100. <p>Nick "blocked" hasło "abcd" nie będzie mógł pisać.</p>
  101. <?php
  102. } else {
  103. ?>
  104. <div id="sb_main">
  105. <div id="sb_online"><div id="sb_online_title">UĹĽytkownicy on-line:</div><div id="sb_online_users"></div></div>
  106. <div id="sb_tools"><div id="sb_history" class="sb_history" title="Pobierz wcześniejsze" onclick="sb.getHistory();"></div><div id="sb_scroll_locking" class="sb_unlocked" title="Zablokuj scroll" onclick="ShoutBox.switchScroll();"></div></div>
  107. <div id="sb_body"></div>
  108. <form onsubmit="sb.sendMessage();return false;">
  109. <input type="text" id="sb_message" maxlength="255" />
  110. <input type="submit" id="sb_submit" value="Wyślij" />
  111. </form>
  112. </div>
  113.  
  114. <div id="sb_footer"><div id="sb_wait"></div><a href="http://nospor.vis-maior.net/index.php">ShoutBox 1.0</a> &copy; Robert (nospor) Nodzewski</div>
  115. <div id="sb_bbcode"><p><b>Bbcode, emotikony, komendy:</b></p>
  116. Na chwilę obecną w przykładzie dostępne jest bbcode: [b] [u] [i]. <br />
  117. Dostępne emotikony: :) :( laugh.gif tongue.gif <br />
  118. Dostępne komendy: /help, /nick, /me, /color
  119. </div>
  120.  
  121. <div id="sb_bbcode" ><p><b>Oco biega w pokazanym przykładzie:</b></p>
  122. - Każdy użytkownik może zdefiniować swój własny kolor<br />
  123. - Moderatorem jest uĹĽytkownik o nick'u <b>nospor</b> (czyli ja biggrin.gif)<br />
  124. - Każdy użytkownik może moderować swoje własne wiadomości. Usunięcie wiadomości polega na kliknięciu ikonki usuwania przy wiadomości.
  125. Edycja polega na kliknięciu na wiadomości. Pojawi nam się wówczas pole edycji. Zatwierdzenie edycji następuje po wyjściu z tego pola lub też wciśnięciu Entera.
  126. </div>
  127.  
  128. <script language="javascript">
  129. var sb = new ShoutBox('sb');
  130. sb.getMessages();
  131. </script>
  132. <?php
  133. }
  134. ?>
  135. </body>
  136. </html>


wie ktoś jak mogę przekształcić logowanie aby wszystko działało na wersji 0.8?questionmark.gif?
proszę o pomoc.
nospor
Czemu korzystasz z tak starej wersji? Ta wersja nie miała jeszcze uzytkowników online - a bynajmniej nie widze tego w kodzie tej wersji.
Co do kolorów:
$sb->SetExtraUser('ShoutBoxUser', 'ID', array('COLOR'=>'COLOR'));
OKreslasz tam swoją tabele z użytkownikami, nazwe pola bedacym id w tej tabeli, oraz pola ktore chcesz dodatkowo pobrac. Jest to podane w przykladzie w paczke 0.8
Randallmaster
Dziękuje za odpowiedź na w które miejsce mam dokładnie to wstawićquestionmark.gif Myślałem na wstawieniem nowej wersji ale chciałbym aby mogła pisać tylko osoba która jest zalogowana przez moją bazę reszta nie no i w innej części pokazać osoby online ale to wszystko jak na razie mnie przerosło więc zostanę przy tym co mam smile.gif

Napisał byś mi gdzie mógłbym tamto dodać?

Znalazłem to i mam to w kodzie ale chciałbym zauważyć że czyta mi kolory jak się zaloguje przez Pańskie logowanie natomiast jak przez moje nie czyta kolorów sad.gif
nospor
No a ustawiles kolory dla uzytkowników? Tabela uzytkowników posiada pole COLOR z poprawnie wpisaną wartoscią?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.