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

Class PDO router autoload

  • Kategoria: PDO
  • Opublikowano: niedziela, 07, lipiec 2013 11:05
  • Super User
  • Odsłony: 41267

    Router & autoload()

 

    Plik router.php jest odpowiedzialny za automatyczne wczytywanie potrzebnych class do prawidłowego działania całości. Wykorzystałem w nim funkcję __autoload() bardzo dobrze się tutaj sprawdzi. Do tego zrobiłem sprawdzanie poprawności class. Wykorzystanie funkcji __autoload() przyśpieszyło działanie o 0,01 sek. Od tradycyjnego deklarowania class.

Licencja Creative Commons
router.php by Adam Berger is licensed under a Creative Commons Uznanie autorstwa-Użycie niekomercyjne-Bez utworów zależnych 3.0 Unported License.
W oparciu o utwór dostępny pod adresem www.joomla-cms.com.pl

include_once (dirname(__FILE__) . '/template/'.basename('meta.php')); function __autoload($classname) { $filename = dirname(__FILE__) . '/lib/'.basename($classname .".php"); include_once($filename); if(!class_exists($classname, false)) { echo "Unable to load class:".$classname; } } if (class_exists('parse_UrlClass')) { $url = new parse_UrlClass(); // Adres }else{ $error = "błąd class parse_UrlClass";} if (class_exists('registerUserClass')) { $userRejestracja = new registerUserClass(); // Register }else{$error = "błąd class registerUserClass";} if (class_exists('userSesionClass')) { $session = new userSesionClass(); // Sesion }else{$error = "błąd class userSesionClass";} if (class_exists('chatClass')) { $chat = new chatClass(); // Chat }else{$error = "błąd class chatClass";} if (class_exists('userClass')) { $user = new userClass(); // User }else{$error = "błąd class userClass";} if (class_exists('databaseClass')) { $pdo = new databaseClass(); // baza danych }else{$error = "błąd class databaseClass";} if(!empty($error)) { echo $error; }

Class PDO parse_UrlClass

  • Kategoria: PDO
  • Opublikowano: piątek, 03, maj 2013 23:36
  • Super User
  • Odsłony: 10460

Class PDO parse_UrlClass część 5

Obsługi i zarządzaniem adresami WWW

Licencja Creative Commons
parse_UrlClass.php, prk_adres.sql, prk_adreshref.sql by Adam Berger is licensed under a Creative Commons Uznanie autorstwa-Użycie niekomercyjne-Bez utworów zależnych 3.0 Unported License.
W oparciu o utwór dostępny pod adresem www.joomla-cms.com.pl

  Klasę postanowiłem podzielić na dwie części, jedna odpowiedzialna za wysyłanie odpowiedniego pliku do wyświetlania. A druga za wysyłanie odpowiedniego adresu. Adresy przyjazne dla wyszukiwarek.

Pierwsza część

  Metoda url() służy do wybierania odpowiedniego adresu aktualnie wyświetlanego w pasku adresu z bazy danych, tak jak poprzednio użyłem biblioteki PDO. Następnie po wybraniu z bazy odpowiedniego pliku przesyłamy go do przeglądarki. Wcześniej adres czyścimy w metodzie skruc($url).

 

Druga część

  W drugiej części dostajemy adres z menu w postaci cyfr, w metodzie adres($adres).  Następnie jest czyszczony w skrucadres($url1) czy aby na pewno, są to liczby. Jeżeli tak to zostaje sprawdzony w bazie danych i czy znajduje się tam taki adres. Jeżeli znajdzie to zwraca ścieżkę do wyświetlenia w pasku adresu przeglądarki. Bardzo ciekawe rozwiązanie z mojego punktu widzenia. Adresy jak i nazwy prawdziwych plików zapisujemy do bazy danych w dwóch tabelach. Do tego będzie służył wpis w panelu administratora, który w późniejszym terminie wykonam. Żeby całość prawidłowo działała potrzebujemy jeszcze pliku .htaccess,   w którym umożliwimy używanie tak przygotowanych adresów. To co wykonałem, na tym etapie powinno wystarczyć.

 

parse_UrlClass.php

 

include_once basename('databaseClass.php');
class Url 
{
   private   $_url;
   private   $_url1;
   private   $akcja;
   private   $adres;
   private   $page;
   protected $l;

     public function __construct()           {            $this->db   = new DBBER();  // połączenie z bazą           }  public function url()   {    try{        if(isset($_GET['akcja']))           $this->akcja = base64_decode($this->skruc($_GET['akcja'])); /// adres                   $this->db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);                  $stmt = $this->db->prepare('SELECT u_adres, u_adrespage FROM `'.$this->db->dbprefix().'adres` WHERE u_adres=:u_adres');                   $stmt->bindParam(':u_adres', $this->akcja, PDO::PARAM_STR);                  $stmt->execute();              foreach($stmt as $row1)                     {                            if($row1['u_adres'] == $this->akcja)                         {                                $this->page = $row1['u_adrespage'];                         }else{                                $this->page = '404';                           }                            }

               if(file_exists('pliki/'.basename($this->page.'.php')))                   {                     return 'pliki/'.basename($this->page.'.php');                   }else{                     return 'pliki/'.basename('404.php');                              }                   $stmt->closeCursor();                 }catch(PDOException $e){                      echo 'Połączenie url nie mogło zostać utw.<br />'.$e;                     }           }   ###################################  czyści get adresu ###########################     protected function skruc($url)     {                       $copl   = array('ą','ę','ć','ł','ń','ó','ś','ź','ż');                       $CoPL1  = array('Ą','Ę','Ć','Ł','Ń','Ó','Ś','Ź','Ż');                       $co     = array('a','e','c','l','n','o','s','z','z');                                            $this->_url  = $url;                       $this->_url  = trim(str_replace('//','/',$this->_url));                       $this->_url  = str_replace($copl,$co,$this->_url); /// zamienia litery                       $this->_url  = str_replace($CoPL1,$co,$this->_url); /// zamienia litery                       $this->_url  = strtolower($this->_url);                       $this->_url  = preg_replace('/[^a-z0-9\.]+/si','',$this->_url);                                    return base64_encode($this->_url); /// dekoduj w pliku wykonawczym        }     protected function skrucadres($url1)     {                         $this->_url1  = (int)$url1;                         $this->_url1  = htmlentities(addslashes($this->_url1),ENT_QUOTES,'UTF-8');                      if(is_numeric($this->_url1))                             {                               $this->_url1;                             }else{                               $this->_url1=1;                               }             return $this->_url1;          }        ############################  przypisane do menu href= ###########################     public function adres($adres)     {          try{              if(isset($adres))               {               $this->adres = $this->skrucadres($adres);               }                            $this->db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);                   $stmt = $this->db->prepare('SELECT u_id,u_urlhref FROM `'.$this->db->dbprefix().'adreshref` WHERE u_id=:u_id');                   $stmt->bindParam(':u_id', $this->adres, PDO::PARAM_STR);                   $stmt->execute();                               foreach($stmt as $ro)                     {                            if(isset($ro['u_urlhref']))                         {                          $this->l = $ro['u_urlhref'];                         }                              }  

                 return $this->l; // zwraca adres             }catch(PDOException $e){                      echo 'Połączenie adres nie mogło zostać utw.<br />'.$e;                     }          }  }

 CREATE TABLE IF NOT EXISTS `prk_adres` (
  `u_id` int(11) NOT NULL AUTO_INCREMENT,
  `u_adres` text NOT NULL,
  `u_adrespage` text NOT NULL,
  PRIMARY KEY (`u_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1; 
 CREATE TABLE IF NOT EXISTS `prk_adreshref` (
  `u_id` int(11) NOT NULL,
  `u_urlhref` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

.htaccess 

RewriteEngine On
Options FollowSymLinks RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-l RewriteRule ^(.+)$ index.php?akcja=$1 [L]

Class PDO classChat

  • Kategoria: PDO
  • Opublikowano: niedziela, 30, czerwiec 2013 11:34
  • Super User
  • Odsłony: 10137

ClassChat jest zrobiona tak jak pozostałe w PDO. Postanowiłem w metodzie protect_chat($p) filtrować wszystko co zostanie wpisane w polu textera, plus dodatkowo zrobiłem cenzurę słów polskich jak i angielskich. Następnie metoda usun() będzie odpowiadać, za usuwanie nadmiernej ilości wpisów np. 50 w późniejszym etapie określę ile. Metoda pisz($text, $user, $pokoj=null, $key=null ) będzie odpowiadać za zapis danych do pliku tekstowego, który będzie wyświetlany w pliku z chatem. Bardzo prosta klasa, lecz na początek będzie użyteczna.

Czytaj więcej: Class PDO classChat

Class PDO register

  • Kategoria: PDO
  • Opublikowano: środa, 01, maj 2013 13:36
  • Super User
  • Odsłony: 42800

  PDO registerClass część 4

  Rejestracja Użytkownika

 

     Następną klasą, którą należało by zrobić, to rejestrację użytkowników. Tak jak poprzednio oczywiście PDO. Metodę w której będziemy sprawdzać dane przesłane z formularza w tablicy $_POST. Do tego jakaś walidacja danych i parę istotnych danych które mogą nam się przydać do weryfikacji użytkowników np. ip, referer, ogólne dane, protokół . Samą walidację wykorzystam z klasy user , żeby nie powielać już istniejących metod. Do uzyskania danych ogólnych posłużyłem się $_SERVER['HTTP_USER_AGENT'], z którego możemy w późniejszym czasie wyciągnąć interesujące nas dane. Następną informacją jaka może nam się przydać to, protokół z którego nastąpiła rejestracja. Pozostał jeszcze rerferer i ip. Te informacje na początek powinny nam wystarczyć. Do samej rejestracji postanowiłem użyć trzech podstawowych danych takich jak login, password i e-mail. Zrobiłem też sprawdzanie czy dany użytkownik już istnieje, poprzez sprawdzenie loginu oraz e-mail. Myślę że taka rejestracja powinna się sprawdzić. Jeżeli nie to możemy w łatwy sposób w późniejszym terminie dodać to co nas interesuje.

Licencja Creative Commons
registerUserClass.php by Adam Berger is licensed under a Creative Commons Uznanie autorstwa-Użycie niekomercyjne-Bez utworów zależnych 3.0 Unported License.
W oparciu o utwór dostępny pod adresem www.joomla-cms.com.pl

 

registerClass.php

include_once basename('databaseClass.php');
require_once basename('userClass.php');
class Register 
{
                  private $nameus;
                  private $passwordus;
                  private $email;
                  private $user;
                  public  $error;
                  private $db;
   
                
                public function __construct() 
          { 
                     $this->db    = new DBBER();
                     $this->user  = new User();
           ///parent::__construct(); 
                  }
                 
                  ############################ Rejestracja #####################################
    public function rejestracja($nameus, $passwordus, $email)
        {
          try{
        $this->nameus     = $this->user->czyscpost($nameus);   /// validacja @ _ - . z class user
        $this->passwordus = $this->user->czyscpost(md5($passwordus));   /// validacja @ _ - .z class user
        $this->email      = $this->user->czyscpost($email);   /// validacja @ _ - . z class user
                     
                      if(!empty($this->nameus) && !empty($this->passwordus) && !empty($this->email))
                         {     
               $this->db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
                           $stmt = $this->db->prepare('SELECT `u_login` FROM `'.$this->db->dbprefix().'user` WHERE `u_login`=:nameus or `u_email`=:email');
               $stmt->bindValue(':nameus', $this->nameus, PDO::PARAM_STR); 
               $stmt->bindValue(':email', $this->email, PDO::PARAM_STR);
                           $stmt->execute();       
                     if($stmt->fetch() > 0)
                    {
              echo  $this->error = "<div style='color: red;'>User już istnieje</div>";
                    }else{
 $stmt = $this->db->prepare('INSERT INTO `'.$this->db->dbprefix().'user` (`u_login`, `u_email`, `u_haslo`, `u_data`, `u_referer`, `u_sesion`, `u_ip`, `u_protokul`, `u_agent`) VALUES (
                                                                :nameus,
                                                                :email,
                                :passwordus,
                                                                 NOW(),
                                :u_referer,
                                                                :u_sesion,
                                :u_ip,
                                :u_protokul,
                                                                :u_agent)');  
 
                        $stmt->bindValue(':nameus', $this->nameus, PDO::PARAM_STR); 
                        $stmt->bindValue(':passwordus', $this->passwordus, PDO::PARAM_STR);
                        $stmt->bindValue(':email', $this->email, PDO::PARAM_STR); 
            $stmt->bindValue(':u_referer', $this->referer(), PDO::PARAM_STR);
                        $stmt->bindValue(':u_sesion', 1, PDO::PARAM_INT);
            $stmt->bindValue(':u_ip', $this->user->ip(), PDO::PARAM_STR); 
            $stmt->bindValue(':u_protokul', $this->protokol(), PDO::PARAM_STR); 
                        $stmt->bindValue(':u_agent', $this->useragent(), PDO::PARAM_STR);
               $ilosc = $stmt->execute();
                        $stmt->closeCursor();    
                        if($ilosc > 0)
                        {
                             echo $this->error = '<div style="color: red;">Rejestracja dodano '.$ilosc.' rekord </div>';
                        }else{
                            echo $this->error = "<div style='color: red;'>Wystapil blad podczas Rejestracji! </div>";
                        }
        }    
                       }else{     
                            echo $this->error = "<div style='color: red;'> Wprowadź Dane </div>";
                                }
              return $this->error;
              }catch(PDOException $e){
               return 'Połączenie rejestracja nie utworzone.<br />'.$e;
                    }                         
         }
              ############################ Z kąd #####################################
      protected function referer()
        {
           if(!isset($refer))
                      {
                     $refer = $_SERVER['HTTP_REFERER'];
                      }else{
                     $refer = "Proxy";
                      }
          return $refer;
        }
             ############################ Protokół #####################################
       protected function protokol()
     {
        if(!isset($protokol))
                {
                  $protokol = $_SERVER['SERVER_PROTOCOL'];
                }else{
                  $protokol = "N/A"; 
                }
         return $protokol;
    }
        
     protected function useragent()
       { 
         if(!isset($agent))
           {
                $agent = $_SERVER['HTTP_USER_AGENT'];
           }
            return $agent;
       }
}

 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