Twoje PC  
Zarejestruj się na Twoje PC
TwojePC.pl | PC | Komputery, nowe technologie, recenzje, testy
B O A R D
   » Board
 » Zadaj pytanie
 » Archiwum
 » Szukaj
 » Stylizacja

 
M E N U
  0
 » Nowości
0
 » Archiwum
0
 » Recenzje / Testy
0
 » Board
0
 » Rejestracja
0
0
 
Szukaj @ TwojePC
 

w Newsach i na Boardzie
 
OBECNI NA TPC
 
 » Shark20 23:47
 » CiAsTeK 23:29
 » Zibi 23:22
 » burz 23:22
 » @GUTEK@ 23:21
 » Bati 23:21
 » Fl@sh 23:13
 » b0b3r 23:08
 » rooter666 23:08
 » past 23:07
 » Piwomir 23:06
 » fiskomp 22:57
 » GLI 22:57
 » Kenny 22:56
 » Wedrowiec 22:54
 » Soulburne 22:53
 » ham_solo 22:45
 » globi-wan 22:45
 » dugi 22:38
 » Curro 22:37

 Dzisiaj przeczytano
 41114 postów,
 wczoraj 25974

 Szybkie ładowanie
 jest:
włączone.

 
ccc
TwojePC.pl © 2001 - 2024
A R C H I W A L N A   W I A D O M O Ś Ć
    

[PHP]:ksiega gosc - analiza stringu , elmo 4/07/07 10:41
Czesc. Dzieki Waszej pomocy napisalem juz prawie cala ksiege gosci.
Ładnie filtruje dane wejsciowe script_tags ALE mam jeszcze jedno pytanie:
Jak moge wyszukiwac slowa w poszczegolnym stringu ? Np:
Nie chce aby w mojej ksiedze ktos pisał o kotach wiec chcialbym sobie zdefiniowac kota jako slowa kluczowe. I jesli slowo/ slowa wystapia gdzies w stringu wejsciowym to wpis nie zostanie dodany do ksiegi gosci.

Chcialem to uzyc do wylapywania takich slow jak www http com @ itp

dzieki pozdrawiam

pozdro eLmO
GG:1408264

  1. wędka dla Pana , Grocal 4/07/07 10:50
    [ http://pl.php.net/...al/pl/function.preg-match.php ]
    [ http://pl.php.net/manual/pl/function.strpos.php ]

    Na pewno, na razie, w ogóle...
    Naprawdę, naprzeciwko, stąd...
    Ortografia nie gryzie!

  2. EXTRA , elmo 4/07/07 11:38
    dziekuje za pomoc.
    Gdyby ktos mial podobny problem przy pisaniu wlasnej ksiegi to znalazlem jeszcze inne rozwiazanie
    $warunek = strpos($tresc, 'www');
    if ($warunek === true) {
    exit;
    }
    to tez skutecznie blokuje. A najlepiej to w jakas funkcje wrzucic.

    dziekuje raz jeszcze i pozdrawiam

    pozdro eLmO
    GG:1408264

    1. nie jestem pewien, czy to zadziała , bwana 4/07/07 12:04
      operator tożsamości (===) sprawdza równość operandów I jednocześnie zgodność ich typów. przykładowo:

      '5'==5 --> true
      '5'===5 --> false

      Jako, że funkcja strpos zwraca wartość liczbową, zmienna $warunek nigdy nie będzie tożsamościowo równa true, bo ani true ani false nie należą do typu liczbowego.

      Niezbyt dobrym pomysłem jest też w tym przypadku sprawdzanie spełnialności niechcianego warunku i wyjście (exit) w przypadku jego spełnienia. Lepiej, jak sądzę, jest sprawdzić, czy niepożądany ciąg w treści NIE istnieje i jeżeli NIE istnieje, wykonać jakąś akcję (zapewne - dopisać treść do wpisów księgi gości).

      Ponadto walidacja treści pod kątem słów stopu (czyli zakazanych słów) powinna być funkcją postaci funkcja_sprawdzająca($tresc)-->boolean lub funkcja_sprawdzająca($tresc, $lista_slow_stopu)-->boolean. W takim przypadku warto pamiętać o przekazywaniu dużych argumentów wywołania przez referencję zamiast przez wartość.


      Nawiasem mówiąc, zmienna $warunek jest tu zbędna. Poprawny (uwzględniający uwagi o operatorze === i nadmiarowej zmiennej) zapis mógłby wyglądać tak:

      if (!strpos($tresc, 'www'))
      {
      //akcja, którą wykonujemy gdy treść jest DOPUSZCZONA
      }

      @pachura - założyć należy, że podany kod jest niewrażliwy na sql injection i xsite scripting, a to dlatego, że nie zawiera żadnych operacji wejścia wyjścia. Nie otwiera plików, urli, nie pobiera danych z formularza czy cookies. Ale zagadzam się, poza walorem edukacyjnym samodzielne pisanie tego typu funkcjonalności to wyważanie otwartych drzwi.

      "you don't need your smile when I cut
      your throat"

      1. Hmmm , pachura 4/07/07 12:21
        > Jako, że funkcja strpos zwraca wartość liczbową, zmienna $warunek nigdy nie będzie tożsamościowo równa true, bo ani true ani false nie należą do typu liczbowego.

        Nie, strpos() moze rowniez zwrocic FALSE kiedy substring nie zostal znaleziony. Czyli porownanie === FALSE ma jak najbardziej sens, === TRUE nie. W Twoim "poprawionym" przykladzie, warunek (!strpos($tresc, 'www')) przepusci tekst zaczynajacy sie od "www" (substring znaleziony na pozycji 0).

        1. oczywiście, masz rację , bwana 4/07/07 12:28
          rdzewieję:-)

          "you don't need your smile when I cut
          your throat"

  3. Powodzenia, ale... , pachura 4/07/07 11:45
    ...zawsze mnie to dziwi jak ludzie zabieraja sie za pisanie aplikacji nie wiedzac nawet jak operowac na typach podstawowych w danym jezyku ;) Nie wystawialbym takich skryptow w sieci w obawie przed szybkim shackowaniem (SQL injection, cross-site scripting etc.) Poza tym, dostepnych jest milion wypasionych freeware'owych ksiag gosci, konfigurowalnych, przeszukiwalnych, bekapowalnych, ze skinami, multi language etc. etc.

    1. hmm , Wedrowiec 4/07/07 11:57
      a jak ma się nauczyć korzystając z "wypasionych freeware'owych ksiag gosci, konfigurowalnych, przeszukiwalnych, bekapowalnych, ze skinami, multi language etc. etc."?

      "Widziałem podręczniki
      Gdzie jest czarno na białym
      Że jesteście po**bani"

    2. Jest tylko jedno "ale" , Norton 5/07/07 00:20
      Do kodu źródłowego wypasionych freeware'owych ksiag gosci, konfigurowalnych, przeszukiwalnych, bekapowalnych, ze skinami, multi language etc. etc. ma każdy. Jeśli nie pakujesz własnych skryptów ze względu na zagrożenie włamaniem to jakie wrzucasz? Bazujesz jedynie na tym co znajdziesz w sieci i do czego ma dostęp każdy? Chyba nie tędy droga.

      Zmień swój podpis na Boardzie
      maks 100 znaków, 3 linie,
      zabroniony spam oraz reklama

      1. Z drugiej strony, , pachura 5/07/07 08:21
        wypasione freeware'owe... sa zwykle lepiej przetestowana pod kontem bezpieczenstwa (i przez tworcow, i przez uzytkownikow), niz kod kogos kto ma problemy z wyszukaniem substringa w stringu. Chociaz masz racje, szansa ze komus bedzie sie chcialo hackowac ksiege gosci kolegi Elma, jak zle by nie byla napisana, jest niewielka.

    
All rights reserved ® Copyright and Design 2001-2024, TwojePC.PL