Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zabezpieczenie adresu e-mail
Forum PHP.pl > Forum > PHP
b2n
Informuje że przeglądałem forum ale nie znalazłem tego co mogło by tu pomóc...


Sprawa wygląda tak... stronka wyświetla jakieś tresci rozmaite... i czasem w treści gdzieś pojawi sie

  1. <a href="mailto:jakiś@adres.pl">jakis@adres.pl</a>


o co chodzi chciałbym aby całość adresu e-mail była kodowana przez tę funkcję

  1. <?php
  2.  
  3. function antispam($str) {
  4. $converted_str = '';
  5. for ($i = 0,$count = strlen($str); $i<$count; $i++) {
  6. $converted_str .= '&#'.ord(substr($str, $i, 1)).';';
  7. }
  8. return $converted_str;
  9. }
  10.  
  11. ?>

zacięgnięta ze strony 4programmers.net

idąc dalej w serwisie wszechobecnie wykorzystywana jest funkcja

  1. <?php
  2.  
  3. function iso($text) {
  4. $text = strtr($text,"ąśźĄŚŹ","ąśĽˇŚŹ");
  5. return $text;
  6. }
  7.  
  8. ?>

która oczywiście nasze polskie znaki zamienia na odpowiednie krzaki...

i pytanko może ktoś mi powiedzieć jak zintegrować te dwie funkcje... aby
nie zamieniało całego tekstu funkcją antispam a jedynie te fragmenty gdzie faktycznie znajduje sie adres e-mail, a reszte tekstu całość zamieniało iso

;-) Z góry dziękuje
kapitan kloss
Możliwe że ppotrzebujesz kodować maila dokładnie w sposób opisany powyżej, ale ja np. radzę sobie znacznie prościej i kompletnie nie mam problemów ze spamem na tym koncie.
Pod adresemznajdziesz więcej informacji jeśli potrzebujesz.
Funkcja zakodowała adres mail@mail.com do postaci:
<a href="mailto:m&#x61;il@m&#x61;&#x69;l&#x2e;&#x63;&#x6f;&#x6d;">link</a>
b2n
Tak to nie jest problem ale powoduje to fakt że każdy meil osobno trzeba sobie zakodować... a właśnie chodzi mi o to żeby się o to nie martwić... i coby było poprostu automatycznie.
snipe
Do zamieniania linkow z calej strony mozesz sprobowac uzyc czegos takiego, tu masz przykadowy kod z manuala php, wystarczy ze go troche przerobisz i bedzie dzialal:

  1. <?php
  2. function callback($buffer) 
  3. {
  4. // replace all the apples with oranges
  5. return (str_replace("apples", "oranges", $buffer));
  6. }
  7.  
  8. ob_start("callback");
  9.  
  10. ?>
  11. <html>
  12. <body>
  13. <p>It's like comparing apples to oranges.</p>
  14. </body>
  15. </html>
  16. <?php
  17.  
  18. ?>
bigZbig
@kapitan kloss - Twoj emil jest nadal rozpoznawalny przez roboty tyle ze w formie zakodowanej. Tak naprawde nie musisz kodowac tresci adresu emila tylko elementy po ktorych email jest jako adres email a nie zwykly ciag znakow. Kluczowe sa tu slowo mailto oraz znak malpy, ktore tez powinny byc zakodowane
Strzałek
generalnie nie ma złotego środka aby zabezpieczyć się przed robotami. Zastąpienie @ na (at) etc. nic nie daje. Jedyne to umieścić adres email na obrazku. Pozdrawiam.
AxZx
powaznie?

a probowal ktos tego?

  1. <?php
  2. function enkoduj_mail($m, $url=true){
  3.  
  4.  
  5. $o='';
  6. if ($url)
  7. {
  8. for($i=0;$i<strlen($m);$i++)
  9. {
  10. $o .= (rand(0,100) > 60 || !ctype_alnum($m{$i}))?sprintf('%%%02x',ord($m{$i})):$m{$i};
  11. }
  12. $m = 'mailto:'.$o; 
  13. $o='';
  14. }
  15. for($i=0;$i<strlen($m);$i++)
  16. {
  17. if (!$url && $i==strlen($m)>>1) $o .= '<!--mailto:eat_my_shorts@microsoft.com-->';
  18. $o .= (rand(0,100) > 40 || $m{$i}=='.')?sprintf((rand(0,100) > 50)?'&#%d;':'&#x%X;',ord($m{$i})):$m{$i};
  19. }
  20. return $o;
  21.  
  22. }#koniec enkoduj_mail
  23. ?>


pozdrowienia i wielkie dzieki dla autore tego kodu
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.