Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z czatem...
Forum PHP.pl > Forum > PHP
Artheso
Witam, mam problem ze skryptem czatu:

  1. <form action="karczma.php" method="post">
  2. <input type="tresc" size="50" maxlength="255" name="tresc"></textarea>
  3. <input type="submit" value="wyslij">
  4. </form><?php
  5. include('conn.php');
  6.  
  7. ?>
  8.  
  9.  
  10. <?php
  11.  
  12. $tresc = $_POST['tresc'] ;
  13. $date = date("H; i; s");
  14. $min = date("i; i; s");
  15. $sec = date("s; i; s");
  16. $login=$_SESSION['login'];
  17. if($tresc)
  18. {
  19.  
  20.  
  21. mysql_query("INSERT INTO karczma SET login='$login', text='$tresc', data='$date', min='$min', sec='$sec'");
  22. header("Location: karczmaa.php");
  23. }
  24.  
  25.  
  26.  
  27.  
  28. $wszystkie1 = mysql_query("SELECT * FROM karczma LIMIT 50");
  29.  
  30.  
  31.  
  32. <table style="height:100px; overflow:auto; display:block;"> <table rules="all" width="500">';
  33. while($wszystkie = mysql_fetch_array($wszystkie1))
  34. {
  35.  
  36. echo '<tr bgcolor="#fffff"><td align="left"width="1" > ' ;
  37.  
  38. if($admin == 1)
  39. {
  40. $zmienna= mysql_fetch_array(mysql_query("SELECT admin FROM users WHERE user='$user' "));
  41. $admin = $zmienna['admin'];
  42.  
  43. echo '<font color="red"> '.$wszystkie['user']. '</font>';
  44. }
  45. else
  46. {
  47. echo '<font color="blue"> '.$wszystkie['user']. '</font>';
  48. }
  49. echo '</td><td align="left" width="200"><b><font color=white>'. $wszystkie['login']. '</font></b>:
  50. ' .$wszystkie['text']. '</td><td align="right" width="5" >' .$wszystkie['data']. ':' .$wszystkie['min']. ':' .$wszystkie['sec']. '</td></tr> ';
  51. }echo"</table></table>";
  52.  
  53.  
  54.  
  55. ?>


Otóż chodzi o to, że jeśli wyślę wiadomość typu ":P', to zaraz się rozjeżdża cały czat... Po prostu np. następna wiadomość wyświetli się na górze, a kolejna na dole... I tu pytanie... Jak zrobić, aby tak nie było? A może da się w formularzu zablokować znaki typu ";:" itd... Bo jeśli tak, to prosiłbym o wytłumaczenie, jak to zrobić... Pozdrawiam, Artheso.

emtiej
filtruj wysyłane wiadomości: html_special_chars i jak chcesz nie dopuścić do wpisania określonych znaków to zrób to z poziomu PHP, przyda Ci się funkcja preg_match
Artheso
A co da to filtrowanie wiadomości? I jak to zrobić? Wiem, że tam jest coś napisane, ale ja niezbyt rozumiem, o co chodzi... ;/
emtiej
  1. #
  2. $tresc = $_POST['tresc'] ;


Filtrując dane wejściowe możesz nie dopuścić do wpisywania znaków takich jak ";:" np. funkcją preg_match() no i musisz poczytać o wyrażeniach regularnych po przeczytaniu tutoriala jednego pewnie połapiesz o co biega. http://blog.mintdesign.pl/php/wyrazenia-regularne-cz-1.html

Cytat
jeśli wyślę wiadomość typu ":P', to zaraz się rozjeżdża cały czat


Ale to prawdopodobnie jest spowodowane błędem w kodzie HTML/CSS
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.