Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Blokada adresu email *@mail.ru
Malinaa
post 14.01.2009, 17:03:15
Post #1





Grupa: Zarejestrowani
Postów: 573
Pomógł: 6
Dołączył: 21.07.2008

Ostrzeżenie: (0%)
-----


Witam, szukam sposobu na blokowanie adresu email użytkowników, którzy Spamują strone, wysyłają tekst i foty porn.

Mam coś takiego:
- rekordy do zablokowania
$emaile = 'email[at]mail.ru';
$emaile = '*[at]mail.ru';
$emaile = '*.ru';

Blokowanie całego adresu już mam.
Potrzeba jest jednak, aby skrypt blokował i pozostałe adresy z gwiazdką.

Co jest potrzebne jakiego kodu, funkcji użyć, aby blokować (odczytać, rozpoznać) jeżeli jest z przodu gwiazdka.
Gwiazdka ma oznaczać: blokuj wszystkie adresy, które po znaku gwiazdki posiadają dany ciąg znaków.

Jak to zrobić?


--------------------
I welcome you on the Internet >>> Design by Malina
Go to the top of the page
+Quote Post
phpion
post 14.01.2009, 17:06:04
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Cytat(Malinaa @ 14.01.2009, 19:03:15 ) *
Co jest potrzebne jakiego kodu, funkcji użyć, aby blokować (odczytać, rozpoznać) jeżeli jest z przodu gwiazdka.
Gwiazdka ma oznaczać: blokuj wszystkie adresy, które po znaku gwiazdki posiadają dany ciąg znaków.

Wyrażenia regularne czyli wszelkiej maści preg_match.
Go to the top of the page
+Quote Post
erix
post 14.01.2009, 17:45:26
Post #3





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Gwiazdka ma oznaczać: blokuj wszystkie adresy, które po znaku gwiazdki posiadają dany ciąg znaków.

Cytat
Wyrażenia regularne czyli wszelkiej maści preg_match.

Skoro poszukuje tylko jednego, skrajnego wzorca, to wystarczyłoby strpos" title="Zobacz w manualu PHP" target="_manual/strrpos" title="Zobacz w manualu PHP" target="_manual. winksmiley.jpg


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Malinaa
post 14.01.2009, 18:10:39
Post #4





Grupa: Zarejestrowani
Postów: 573
Pomógł: 6
Dołączył: 21.07.2008

Ostrzeżenie: (0%)
-----


Napisałem coś takiego, prosiłbym o ewentualne poprawki, nie mam przekonania, że jest OK?

  1. <?php
  2. $blokada_email = 'email[at]mail.ru,*@mail.ru,*.ru';
  3. $email_form = 'aaaemai[at]aaamail.ru';
  4.  
  5. $tablica_email = explode(",", $blokada_email);
  6. $ile_email = count($tablica_email);
  7.  
  8. for($i=0; $i<$ile_email; $i++) {
  9.  $email_blokuj = str_replace('*', '', $tablica_email[$i]);
  10.  $sprawdz = preg_match("/$email_blokuj/i", $email_form);
  11. }
  12.  
  13. if ($sprawdz <> '') {
  14.  $wynik_match = "Adres email jest blokowany!";
  15. }
  16. else {
  17.  $wynik_match = "Adres email nie jest blokowany!";
  18. }
  19. ?>


Thank's


--------------------
I welcome you on the Internet >>> Design by Malina
Go to the top of the page
+Quote Post
erix
post 14.01.2009, 18:26:59
Post #5





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
nie mam przekonania, że jest OK?

Nie wywalaj gwiazdki. W tej chwili jej wklepywanie, to tylko zbędne męczenie parsera.

Poza tym, Twoje sprawdzanie zweryfikuje tylko ostatni e-mail z listy (co krok nadpisujesz $sprawdz).


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Malinaa
post 14.01.2009, 20:37:13
Post #6





Grupa: Zarejestrowani
Postów: 573
Pomógł: 6
Dołączył: 21.07.2008

Ostrzeżenie: (0%)
-----


Ten skrypt będę chciał użyć przy rejestracji jest więc istotne, aby działał dobrze.
Proszę o poprawienie jeśli coś jest nie tak.

  1. <?php
  2. $blokada_email = 'email[at]mail.ru,@mail.ru,.ru,.us,.com,@com.ru';
  3. $email_form = 'abcmail[at]email.ru';
  4.  
  5. $tablica_email = explode(",", $blokada_email);
  6. $ile_email = count($tablica_email);
  7.  
  8. for($i=0; $i<$ile_email; $i++) {
  9.  $email_blokuj = $tablica_email[$i];
  10.  if (preg_match("/$email_blokuj/i", $email_form)) $sprawdz = 1;
  11.  else $sprawdz = '';
  12.  $wynik_sprawdz = $wynik_sprawdz . $sprawdz; // $wynik_sprawdz - Można inaczej?
  13. }
  14.  
  15. if ($wynik_sprawdz <> '') {
  16.  $wynik_match = "Adres email jest blokowany!";
  17. }
  18. else {
  19.  $wynik_match = "Adres email nie jest blokowany!";
  20. }
  21. ?>


--------------------
I welcome you on the Internet >>> Design by Malina
Go to the top of the page
+Quote Post
erix
post 14.01.2009, 21:15:16
Post #7





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Widzę, że dalej nie zrozumiałeś... (edit: masz mylący nick, "aś", czy "eś"? tongue.gif)
  1. <?php
  2. for($i=0; $i<$ile_email; $i++) {
  3. $email_blokuj = $tablica_email[$i];
  4. if (preg_match("/$email_blokuj/i", $email_form)) $sprawdz = 1;
  5. else $sprawdz = '';
  6. $wynik_sprawdz = $wynik_sprawdz . $sprawdz; // $wynik_sprawdz - Można inaczej?
  7. }
  8. ?>


Ja bym to widział tak:
  1. <?php
  2. try{
  3.    for($i=0; $i<$ile_email; $i++) {
  4.        $email_blokuj = $tablica_email[$i];
  5.        if(stripos($email_form, $email_blokuj)!==false){
  6.            throw new Exception();
  7.        }
  8.    }
  9.    
  10.    echo 'mail nie jest zablokowany';
  11. }catch(Exception $ex){
  12.    echo 'mail jest zablokowany';
  13. }
  14. ?>


Ten post edytował erix 14.01.2009, 21:16:02


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Malinaa
post 14.01.2009, 21:50:56
Post #8





Grupa: Zarejestrowani
Postów: 573
Pomógł: 6
Dołączył: 21.07.2008

Ostrzeżenie: (0%)
-----


Tak, jeśli zamienimy

echo 'mail nie jest zablokowany'; na echo 'mail jest zablokowany'; i odwrotnie jest OK.

Kłopotliwe i nie zręcznie mówić, ale nie wiem co to są: try, cacht, throw, Exception. I jak to działa?

... eś, a nie widać!


--------------------
I welcome you on the Internet >>> Design by Malina
Go to the top of the page
+Quote Post
erix
post 14.01.2009, 21:59:59
Post #9





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
echo 'mail nie jest zablokowany'; na echo 'mail jest zablokowany'; i odwrotnie jest OK.

Ale Twój kod sprawdza TYLKO ostatni wpis z tablicy...

Cytat
Kłopotliwe i nie zręcznie mówić, ale nie wiem co to są: try, cacht, throw, Exception. I jak to działa?

A do manuala zaglądał? snitch.gif W skrócie, jest to blok instrukcji (try{ ... }), którego wykonywanie można przerwać wypluwając wyjątek. To jest tylko bardzo pierwotne użycie, bo można jeszcze przekazywać komunikaty, własne parametry, z których można skorzystać w catch, ale tu już odsyłam do manuala. winksmiley.jpg

Cytat
... eś, a nie widać!

Rzeczownik z końcówką -a nie jest raczej rodzaju męskiego (bez urazy, mam na myśli tylko językowo).


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 15.07.2025 - 20:08