Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Blokowanieznaków w input
Forum PHP.pl > Forum > PHP
maxserwer
Siemka, czy ktoś zna cały skrypt który blokuje w danym input znaki jakie w skrypt wpisze np. <, =, +, >, /, \...

Jak tak to bardzo proszę o podanie tego skryptu na dole w odpowiedzi, z góry wielkie dzięki smile.gif



  1. <?php
  2. <input class="button" type="submit" value="" />
  3. ?>
nospor
Kurka, jeszcze nie dotarlo? Co znaczy "blokuje". Znowu chcesz wyswietlac zamiast wykonywac? nie chcesz pozwalac na wprowadzenie takich znakow? Chlopie, precyzuj pytania bo ciezko zalapac Twoj tok myslenia...
A ten kod php to juz wogole mnie myli. Co on ma do pytania?
maxserwer
No dobra to powiem jak jest, nie wiem jak zablokować wprowadzanie na moją stronę takich znaków, kompletnie jestem zielony na ten temat. mam taki kod:


  1. <?
  2.  
  3. $datazapisu = date("m_d_H_i_s");
  4. $data = date("H:i:s (d-F-Y)");
  5. $add= $_POST['add'];
  6. $imie= $_POST['nick'];  
  7. $kolor= $_POST['kolor'];  
  8.  
  9. ($pass != $add) or die ('<font color=red><b>Musisz podać koniecznie treść ShoutBox!!!</b></font><br><br>
  10. <a href=java script:history.back();><<< <font color=228B22><b>Popraw...</b></font</a>');
  11. ($pass != $imie) or die ('<font color=red><b>Musisz podać koniecznie autora!!!</b></font><br><br>
  12. <a href=java script:history.back();><<< <font color=228B22><b>Popraw...</b></font</a>');
  13.  
  14. $size = filesize("../shoutbox/lista.txt");
  15. if ($size <= 20000)
  16. {
  17.  
  18. }
  19. else
  20. {
  21. $www = 1;
  22.  
  23. $plik = fopen("../shoutbox/lista.txt","a");
  24. end($linia);
  25. $qqqq = count($linia);
  26. $qqqq13 = $qqqq - 12;  
  27. $qqqq12 = $qqqq - 11;
  28. $qqqq10 = $qqqq - 10;
  29. $qqqq9 = $qqqq - 9;
  30. $qqqq8 = $qqqq - 8;
  31. $qqqq7 = $qqqq - 7;
  32. $qqqq6 = $qqqq - 6;  
  33. $qqqq5 = $qqqq - 5;
  34. $qqqq4 = $qqqq - 4;
  35. $qqqq3 = $qqqq - 3;
  36. $qqqq2 = $qqqq - 2;
  37. $qqqq1 = $qqqq - 1;
  38.  
  39. $plik = fopen("../shoutbox/lista.txt","w");
  40. fputs($plik,"$linia[$qqqq12]");
  41. fputs($plik,"$linia[$qqqq11]");
  42. fputs($plik,"$linia[$qqqq10]");
  43. fputs($plik,"$linia[$qqqq9]");
  44. fputs($plik,"$linia[$qqqq8]");
  45. fputs($plik,"$linia[$qqqq7]");
  46. fputs($plik,"$linia[$qqqq6]");
  47. fputs($plik,"$linia[$qqqq5]");
  48. fputs($plik,"$linia[$qqqq4]");
  49. fputs($plik,"$linia[$qqqq3]");
  50. fputs($plik,"$linia[$qqqq2]");
  51. fputs($plik,"$linia[$qqqq1]");
  52. fputs($plik,"$linia[$qqqq]");
  53. fclose($plik);  
  54.  
  55. }
  56.  
  57. if ($add == "")
  58. {
  59. if ($aaaa == "")
  60. {
  61. print("Nie robie nic bo nic nie napisałeś.<br><br>");
  62. }
  63. else
  64. {  
  65.  $plik = fopen("../shoutbox/lista.txt","a");
  66.  if(!($plik))
  67.  {
  68. print("Odśwież stronę...");
  69.  }  
  70. fputs($plik,"" );
  71. fclose($plik);
  72.  
  73. }
  74. }
  75. else
  76. {  
  77.  
  78. $plik = fopen("../shoutbox/lista.txt","a+");
  79. if(!($plik))
  80.  {
  81. print("Chwilowa przerwa, prosze dodać jeszcze raz za 5 sekund...");
  82. }  
  83. fputs($plik,"<tr><td><font color=C0C0C0 size=1 face=verdana,arial,helvetica >$data</font> <a href=http://www.maxserwer.yoyo.pl/user.php?type=view_profile&login=$imie TARGET=maxserwer_user_$imie><font size=1 color=$kolor><b>$imie</b></font></a>- <font size=1 color=#000000>$add</font><br><HR width=100%></td></tr>" );
  84. fclose($plik);
  85. print("<img src=blank.gif border=0 height=15 width=0><CENTER><img border=0 src=../images/load/load.gif /></CENTER><img src=blank.gif border=0 height=1 width=4><CENTER><b>Wiadomość została dodana do ShoutBox...</b></CENTER><img src=blank.gif border=0 height=3 width=0><CENTER><a href=java script:history.back();><font color=#228b22 face=verdana,arial,helvetica size=1><b>>>> Gotowe, powróć... <<<</b></font></a></CENTER><CENTER><img src=blank.gif border=0 height=330 width=0></CENTER>");
  86. }
  87. ?>


i nie wiem jak go zmienić, co w niego dodać żeby na mojej stronie np. nie mogli banerów dodawać, mogą tylko txt pisać, proszę pomóż Adminie, bo wiem że ty jesteś dobry i na tym się znasz bardzo dobrze...
nospor
juz ci pisalem w poprzednim temacie:
htmlspecialchars() tongue.gif (wpisz do mojego shouta na stronie tekst banera a wyswietli sie tekst a nie baner)
nawet jak ci wwala tekst banera, to sie on nie wykona.
mozesz tez uzyc striptags, albo zastosowac pierwszy lepszy system bbcode, ktore pozwala tylko na niektore bbcode.
kosmowariat
możesz napisać skrypta w JS'ie i wrzucić np pod onchange jednak niezbędna jest i tak weryfikacja po stronie php'a i tutaj masz wyrażenia regularne. Jak się domyślam chcesz zablokować wszystkie znaki specjalne

  1. <?php
  2. if ( !eregi('^[a-z0-9]+$',$zmienna_z_formularza) )
  3. {
  4. //wyświetla infomacje o błędzie
  5. }
  6. ?>


podany kod dopuszcza tylko litery i cyfry we wprowadzanym tekście. Każdy inny znak pododuje wykonanie się kodu zawartego w if'ie
maxserwer
Dzięki ale jak pisałem nie umiem waszych technologi zastosować u siebie, proszę wklejcie mi go w mój kod, bo dla was to 2 sek, jeżeli nie 1...
  1. <?
  2.  
  3. $datazapisu = date("m_d_H_i_s");
  4. $data = date("H:i:s (d-F-Y)");
  5. $add= $_POST['add'];
  6. $imie= $_POST['nick'];  
  7. $kolor= $_POST['kolor'];  
  8.  
  9. ($pass != $add) or die ('<font color=red><b>Musisz podać koniecznie treść ShoutBox!!!</b></font><br><br>
  10. <a href=java script:history.back();><<< <font color=228B22><b>Popraw...</b></font</a>');
  11. ($pass != $imie) or die ('<font color=red><b>Musisz podać koniecznie autora!!!</b></font><br><br>
  12. <a href=java script:history.back();><<< <font color=228B22><b>Popraw...</b></font</a>');
  13.  
  14. $size = filesize("../shoutbox/lista.txt");
  15. if ($size <= 20000)
  16. {
  17.  
  18. }
  19. else
  20. {
  21. $www = 1;
  22.  
  23. $plik = fopen("../shoutbox/lista.txt","a");
  24. end($linia);
  25. $qqqq = count($linia);
  26. $qqqq13 = $qqqq - 12;  
  27. $qqqq12 = $qqqq - 11;
  28. $qqqq10 = $qqqq - 10;
  29. $qqqq9 = $qqqq - 9;
  30. $qqqq8 = $qqqq - 8;
  31. $qqqq7 = $qqqq - 7;
  32. $qqqq6 = $qqqq - 6;  
  33. $qqqq5 = $qqqq - 5;
  34. $qqqq4 = $qqqq - 4;
  35. $qqqq3 = $qqqq - 3;
  36. $qqqq2 = $qqqq - 2;
  37. $qqqq1 = $qqqq - 1;
  38.  
  39. $plik = fopen("../shoutbox/lista.txt","w");
  40. fputs($plik,"$linia[$qqqq12]");
  41. fputs($plik,"$linia[$qqqq11]");
  42. fputs($plik,"$linia[$qqqq10]");
  43. fputs($plik,"$linia[$qqqq9]");
  44. fputs($plik,"$linia[$qqqq8]");
  45. fputs($plik,"$linia[$qqqq7]");
  46. fputs($plik,"$linia[$qqqq6]");
  47. fputs($plik,"$linia[$qqqq5]");
  48. fputs($plik,"$linia[$qqqq4]");
  49. fputs($plik,"$linia[$qqqq3]");
  50. fputs($plik,"$linia[$qqqq2]");
  51. fputs($plik,"$linia[$qqqq1]");
  52. fputs($plik,"$linia[$qqqq]");
  53. fclose($plik);  
  54.  
  55. }
  56.  
  57. if ($add == "")
  58. {
  59. if ($aaaa == "")
  60. {
  61. print("Nie robie nic bo nic nie napisałeś.<br><br>");
  62. }
  63. else
  64. {  
  65.  $plik = fopen("../shoutbox/lista.txt","a");
  66.  if(!($plik))
  67.  {
  68. print("Odśwież stronę...");
  69.  }  
  70. fputs($plik,"" );
  71. fclose($plik);
  72.  
  73. }
  74. }
  75. else
  76. {  
  77.  
  78. $plik = fopen("../shoutbox/lista.txt","a+");
  79. if(!($plik))
  80.  {
  81. print("Chwilowa przerwa, prosze dodać jeszcze raz za 5 sekund...");
  82. }  
  83. fputs($plik,"<tr><td><font color=C0C0C0 size=1 face=verdana,arial,helvetica >$data</font> <a href=http://www.maxserwer.yoyo.pl/user.php?type=view_profile&login=$imie TARGET=maxserwer_user_$imie><font size=1 color=$kolor><b>$imie</b></font></a>- <font size=1 color=#000000>$add</font><br><HR width=100%></td></tr>" );
  84. fclose($plik);
  85. print("<img src=blank.gif border=0 height=15 width=0><CENTER><img border=0 src=../images/load/load.gif /></CENTER><img src=blank.gif border=0 height=1 width=4><CENTER><b>Wiadomość została dodana do ShoutBox...</b></CENTER><img src=blank.gif border=0 height=3 width=0><CENTER><a href=java script:history.back();><font color=#228b22 face=verdana,arial,helvetica size=1><b>>>> Gotowe, powróć... <<<</b></font></a></CENTER><CENTER><img src=blank.gif border=0 height=330 width=0></CENTER>");
  86. }
  87. ?>
kosmowariat
Prościej chyba się nie da. Sugeruję jednak wykorzystać htmlentilities()
  1. <?
  2.  
  3. $datazapisu = date("m_d_H_i_s");
  4. $data = date("H:i:s (d-F-Y)");
  5. $add= htmlentilities($_POST['add']);
  6. $imie= htmlentilities($_POST['nick']);  
  7. $kolor= htmlentilities($_POST['kolor']);
  8. ?>


nie możesz zablokować tych znaków. bo jak będziesz chciał napisać "2>5 jest fałszem" to wywali Ci błąd. htmlentilities() przekształci to na "2&gt;5 ..." co jest w 100% bezpieczne.

btw. proponuję poczytać najpierw o podstawach php. tam to wszystko jest
maxserwer
ej, ale to nie chodzi mi...

  1. <?
  2.  
  3. $datazapisu = date("m_d_H_i_s");
  4. $data = date("H:i:s (d-F-Y)");
  5. $add= htmlentilities($_POST['add']);
  6. $imie= htmlentilities($_POST['nick']);  
  7. $kolor= htmlentilities($_POST['kolor']);
  8. ?>


Przepraszam, tera napisałem sprostowanie, bo kod który dałeś mi był ok, tylko źle wklejałem i za to przepraszam w sprostowaniu. A po drugie dziękuje, bo załapałem jak sie takie coś wkleja smile.gif proszę admina o Off topic smile.gif
nospor
Cytat
proszę admina o Off topic
Jak nie znasz znaczenia pojęć, których używasz - to ich nie używaj

ps: no i masz offtopic smile.gif
ps2: a ja od razu mowilem bys uzyl htmlspecialchars(), to prawie to samo co teraz uzyles.
bim2
@nospor
Po przeczytaniu topicu zrozumiałem, że ten user nie wiedział jak to ma wstawić tongue.gif

PS. W pewnym słów znaczeniu chyba maxserwer chciał powiedzieć Zamknąć topic (off topic)
offtopic.gif
nospor
Cytat
W pewnym słów znaczeniu chyba maxserwer chciał powiedzieć Zamknąć topic (off topic)
Taki tepy nie jestem i sie domyslilem ze to mial na mysli. Jednak to pojecie używane jest akurat do czegoś innego tongue.gif

Cytat
Po przeczytaniu topicu zrozumiałem, że ten user nie wiedział jak to ma wstawić
W innym topicu juz mial to wyjasniane. Ile razy mozna to samo tej samej osobie tlumaczyc?
maxserwer
Ej, nie róbcie zemnie wariata, chodziło mi oto żeby zamknął temat admin, bo jest zakączony tongue.gif
kosmowariat
Cytat(maxserwer @ 19.07.2007, 11:21:07 ) *
Ej, nie róbcie zemnie wariata, chodziło mi oto żeby zamknął temat admin, bo jest zakączony tongue.gif

nikt nie robi z Ciebie wariata, ale pytania które zadajesz są ekhm.... btw "zakączony" => "zakończony"
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.