fundacja tvn joomla-cms.com.pl
A+ A A-

Simple Captchta

  • Kategoria: Class
  • Opublikowano: piątek, 03, styczeń 2014 13:31
  • Super User
  • Odsłony: 35676

Simple Captchta

 

Przy tworzeniu nowego projektu postanowiłem ułatwić sobie pracę przy zabezpieczeniu formularza captchtą.

Zrobiłem klasę obsługującą popularną captchte, która znajduje się pod adresem http://www.captcha.net/.

Przeprowadzamy rejestracje i pobieramy odpowiednie kody potrzebne do prawidłowego działania.

Importujemy pobraną bibliotekę do klasy

Klasa ułatwia wdrożenie owej captchty plus dodatkowe zabezpieczenie dla wścibskich.

Prościutkie wdrożenie dla wielu formularzy jak i jednego.

Efekt mojej pracy chciałem wam przedstawić.




class_simple_captcha.php

 
  /*
 *  @version class_simple_captchta v1.0
 *  @autor Adam Berger$ 
 *  Copyright 2014 Simple Captchta
 *  <ber34#o2.pl-->
 *  Licensed under the Apache License v2.0
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License. 
 */
 
 require_once('recaptchalib.php');  // biblioteka recaptchalib
 
class class_simple_captcha{
 
   const PUBLIC_KEY  ="6L"; // klucz otrzymany podczas rejestracji
   const PRIVATE_KEY ="6L-z"; // klucz otrzymany podczas rejestracji
 
   private $post;
   private $post1;
   private $ip;
 
    public function __construct(){ 
 
      }
        // show
    public function wyswietl_captcha_public(){
 
          return recaptcha_get_html(self::PUBLIC_KEY); 
    }
 
    protected function ip(){
                   if(@$_SERVER['HTTP_X_FORWARDED_FOR']){ 
                         $this->ip = htmlspecialchars($_SERVER["REMOTE_ADDR"]); 
               }else{
                         $this->ip  = htmlspecialchars($_SERVER['REMOTE_ADDR']);
                    }
                    return $this->ip;
       }
 
    protected function validate_post($post){
                       /* czyścimy $_POST[] */
              $this->post = $post;
                          $this->post = trim($this->post);
                          $this->post = strip_tags($this->post);
                          $this->post = htmlspecialchars($this->post, ENT_QUOTES, 'UTF-8');
                          $this->post = htmlentities($this->post, ENT_QUOTES, 'UTF-8');
                          $this->post = stripslashes($this->post); 
            if(preg_match('/^[a-zA-Z0-9\@\_\-\.\ \/]+$/', $this->post, $this->post1) ){
                         return $this->post1['0'];
                        }else{
                         return null;   
                        }
            }
            // show
   public function wyswietl_captcha_private(){
 
       $r = recaptcha_check_answer(self::PRIVATE_KEY,
          $this->ip(),
          $this->validate_post($_POST["recaptcha_challenge_field"]),
          $this->validate_post($_POST["recaptcha_response_field"]));
 
  if (empty($r->is_valid)) {
     return false;
  } else {
    return true; 
  }
 }
}
 



index.php
formularz
 
/* Pobranie odpowiednich bibliotek */
 
include_once (dirname(__FILE__) . '/'.basename('class_captcha.php')); // Klasa Simple Captchta
                /* Implementacja klasy */
     $captcha = new class_simple_captcha();
 
 
if(!empty($_POST['user_kontakt'])){
        if($captcha->wyswietl_captcha_private()){  /// 
                  /* Sukcesfuul */
               echo "<aside class="alert alert-sukces" style="width:300px;">Wiadomość wysłana.</aside>";
        }else{
                  /* error */      
               echo "<aside class="alert alert-error" style="width:300px;">Podaj prawidłowy kod capchta.</aside>";
             }
}else{    
    $html='';
    $html.='<section class="well well-large">';
    $html.='<form class="form-horizontal" action="example.php" method="post">';
    $html.='<fieldset>';
    $html.='<legend style="color: red;">Kontakt:</legend>';
    $html.='<div class="control-group">';
    $html.='<label class="control-label" for="inputEmail">Email</label>';
    $html.='<div class="controls">';
    $html.='<input type="email" name="user_kontakt" id="inputEmail" placeholder="Email" required="">';
    $html.='</div></div>';
    $html.='<div class="control-group">';
    $html.='<label class="control-label" for="input">Treść Listu</label>';
    $html.='<div class="controls">';
    $html.='<textarea rows="3" name="wiadomosc"></textarea>';
    $html.='</div></div>';
    $html.='<div class="control-group">';
    $html.='<label class="control-label" for="inputCaptcha">'.$captcha->wyswietl_captcha_public().'</label>';
    $html.='</div>';  
    $html.='<div class="control-group">';
    $html.='<div class="controls">';
    $html.='<button type="submit" class="btn btn-warning">Wyslij</button>';
    $html.='</div></div>';
    $html.='</fieldset>';
    $html.='</form>';
    $html.='</section>';
           echo $html;
           }
 
 Pozycjonowanie-Joomla, seo-joomla Tworzenie-Sitemap-joomla, TG-Chmura-Tagów, rs-rules-security Admin-Login-Security, joomla Licencja-Drupal, Licencja-ZenCart, Licencja-GPL2, Licencja-GPL3 Creative-Commons-License, joomla-2.5.x Kalendarz-Celtycki data-zodiak-data-majowie, moduł-GA-Gadu-gg, Moduł-Lotto-joomla K2-joomla Moduł-Kodownik-joomla kontakt-admin-3-pl Moduł-miłość-joomla Moduł-minutnik-joomla Google-Gadżet-strona-www Moduł-Multi-AnalogClock-joomla Grafika-Wektorowa-joomla Pascal-podstawy Pascal-instrukcja-if Pascal-pętla-for Pascal-Pętla-white-Repet Pascal-Instrukcja-Case Pascal Pascal-record Pascal-Tablice-(Macierze) Kolory-w-Pascalu Systemy-Liczbowe-10-16-8 Pak-top10-głosowanych-jQuery Waga-Bmi BF-Bear-Form Joomla+2.5+captcha+google BSD joomla, MP3 Creating, SEO, Admin tg RS BF The Celtic Forever Création Erstellen Toujours Immer Multi Contact-Admin-3-EN Contact-Admin-3-fr Contact-Admin-3-DE Open-Software-License-v.3.0-(OSL-3.0) System Interfejsy Mozilla joomla-metadane, seo-katalogi, wymiana Slider aukcjoner, Informator Osiemnaście CiastkoPl sem, Class Class-PDO-session login, registerUserClass, index PHP PDO, Class-ResponsiveCss zarabiarka-allegro Pogodynka Pogodynka Praca-Programisty Praca Funkcja-if Special+Arguments Simple-Captchta Jquery, Od 2 Konfiguracja 4.Instalacja 5.Konfiguracja 6.Instalacja 7.Konfiguracja 8.Metadane 9.Optymalizacja 10.Ciasteczka 11.System 12.Diagnostyka 13.Sesja Klasa Książka responsive Uniwersal Dodatek GoogAd.v1.4-polish-utf-8 Error Cooki Funkcje Linki Google Kompresja pdf, Dynamiczne template wycena Twoja Separation reklama ssd, bezpieczeństwo wzorce rekrutacja Zastosowanie Urządzenia Portale chat, dyski Platformy QUIZ 

Używamy cookies i podobnych technologii m.in. w celach: świadczenia usług, reklamy, statystyk. Korzystanie z witryny bez zmiany ustawień Twojej przeglądarki oznacza, że będą one umieszczane w Twoim urządzeniu końcowym. Pamiętaj, że zawsze możesz zmienić te ustawienia. To find out more about the cookies we use and how to delete them, see our privacy policy.

I accept cookies from this site.

EU Cookie Directive Module Information