Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Problem z warunkiem IF
Forum PHP.pl > Forum > Przedszkole
-Justyna-
Mam problem z warunkiem IF:
  1. $spamerzy = "href";
  2. if( $zmienna !=='%$spamerzy%' ) {echo "..."; }
  3. else {echo" . . . . .";}

powyższy warunek nie działa poprawnie. Chcę, aby skrypt wychwytywał czy w ciągu znaków wpisanych przez internautów/spamerów jest wartość href - i jeśli tak to ma nie dopuścić do dodania treści do bazy danych.
Użyłam znaków % tak jak w zapytaniu SQL ale nie działa. Proszę o pomoc.
bzeebzee
  1. int preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] )


Więcej masz tutaj:
http://www.php.net/manual/en/function.preg-match.php
-Justyna-
Użyłam:
  1. if(preg_match("/^href/", $zmienna))
  2. {...}
  3. else { ten warunek jest cały czas wykonywany }

i za każdym razem pomimo ze nie ma tej wartości w tekście skrypt wykonuje tę samą czynność
by_ikar
A nie prościej potraktować taki tekst strip_tags?

Jak już koniecznie chcesz znaleźć ten href, to jest na to bardzo wiele sposobów:

http://www.php.net/strpos
  1. <?php
  2.  
  3. $str = '<a href="http://example.com">example</a>';
  4. $find = 'href';
  5.  
  6. if(strpos($str, $find))
  7. {
  8. // znaleziony
  9. } else
  10. {
  11. // nie znaleziony
  12. }


http://www.php.net/strstr
  1. <?php
  2.  
  3. $str = '<a href="http://example.com">example</a>';
  4. $find = 'href';
  5.  
  6. if(strstr($str, $find))
  7. {
  8. // znaleziony
  9. } else
  10. {
  11. // nie znaleziony
  12. }


http://www.php.net/strpbrk
  1. <?php
  2.  
  3. $str = '<a href="http://example.com">example</a>';
  4. $find = 'href';
  5.  
  6. if(strpbrk($str, $find))
  7. {
  8. // znaleziony
  9. } else
  10. {
  11. // nie znaleziony
  12. }


http://www.php.net/strrchr
  1. <?php
  2.  
  3. $str = '<a href="http://example.com">example</a>';
  4. $find = 'href';
  5.  
  6. if(strrchr($str, $find))
  7. {
  8. // znaleziony
  9. } else
  10. {
  11. // nie znaleziony
  12. }


http://www.php.net/preg_match
  1. <?php
  2.  
  3. $str = '<a href="http://example.com">example</a>';
  4. $find = 'href';
  5.  
  6. if(preg_match('/'.$find.'/is', $str))
  7. {
  8. // znaleziony
  9. } else
  10. {
  11. // nie znaleziony
  12. }


I pewnie jeszcze kilka sposobów na znalezienie podciągu w ciągu by się znalazło. Te tak na szybko, co mi przyszły do głowy.

Zamiast wyrażenia regularnego (preg_match) zalecam użycie strpos, lub innej funkcji, w zależności od dalszych potrzeb.
markonix
Kod
/href/i

Bez "^" oraz z "/i" czyli bez względu na wielkość liter.

Edit: Zgodnie z tym co napisał poprzednik preg_match w ostateczności (jest wolniejszy).
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.