Class PDO

Class PDO część 1

  Połączenie z bazą danych

Licencja Creative Commons
Class DBBER databaseClass.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

   Z racji tego że coraz bardziej popularna staje się biblioteka PDO postanowiłem zademonstrować jej działanie, a przy okazji poszerzyć swoją wiedzę na temat działania PDO. Nie będę was zanudzał regułkami choć dobrze je znać, po więcej odsyłam na Wikibooks  http://pl.wikibooks.org/wiki/PHP/Biblioteka_PDO.

 

Czytaj więcej: Class PDO

Class PDO (2)

Class PDO część 1

  Połączenie z bazą danych

Licencja Creative Commons
Class DBBER databaseClass.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

   Z racji tego że coraz bardziej popularna staje się biblioteka PDO postanowiłem zademonstrować jej działanie, a przy okazji poszerzyć swoją wiedzę na temat działania PDO. Nie będę was zanudzał regułkami choć dobrze je znać, po więcej odsyłam na Wikibooks  http://pl.wikibooks.org/wiki/PHP/Biblioteka_PDO.

 

Czytaj więcej: Class PDO (2)

Class PDO session

   Class PDO session

 część 2

 

Licencja Creative Commons
class Session userSesionClass.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

   Na przykładzie klasy sesji pokaże jak chcę przekazywać dane pomiędzy klasami w samym konstruktorze, a nie przez dziedziczenie. Same dziedziczenie jest potrzebną rzeczą, lecz mnie interesuje czy takie połączenie jest szybsze.   Klasę sesji postanowiłem zrobić właśnie w taki sposób. Sama klasa sesji nie powinna być skomplikowana przyjąłem, że powinna składać się z numeru, jakoś zakodowanego np. przez sha1(), plus sprawdzenie poprawności samej sesji i na koniec dla zwiększenia bezpieczeństwa, np. co godzinę zmiana id sesji plus kodowanie danych usera. Zwróćcie uwagę na sam konstruktor tam będę sprawdzał poprawność sesji i nawiązywał połączenie z bazą danych. Oczywiście jak w pierwszej części tak i w drugiej, będę używał biblioteki PDO.

Piszcie co o tym sądzicie czy to aby na pewno szybsze.

userSesionClass.php

 include_once basename('databaseClass.php');
class Session 
      {
             private $sesion_id; // id sesji
             private $isSesion = false; // czy jest sesja
             private $db;      /// przypisanie połączenia z PDO przez konstruktor
             
        public function __construct() 
      { 
            $this->db   = new DBBER();
               ############################ Sprawdź Sesję #####################################
             if($this->sprawdzsesje() == true)
                    {
                      $this->czas_sesji();
                    }else{
                         session_unset();
                    }     
          }
        
          public function przypiszsesje($user)
          {
                       $_SESSION['u_login']        = $this->koduj($user);
                       $_SESSION['session_id']    =  sha1(session_id());
                       $_SESSION['start_sesion'] = date("Y-m-d H:i:s");
                       return;
          } private function sesja()
         {  
                    try{
                        ############### SESJA ###############################
        if($this->idsesion() && isset($_SESSION['u_login']))
                   {
                   $this->db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
 
               $stmt = $this->db->prepare('SELECT u_sesion FROM `'. $this->db->dbprefix().'user` WHERE u_login=:u_login and u_sesion=:u_sesion');
                               $stmt->bindValue(':u_login', $this->dekoduj($_SESSION['u_login']), PDO::PARAM_STR);
                   $stmt->bindValue(':u_sesion', $this->idsesion(), PDO::PARAM_INT);
            $stmt->execute();
                   foreach($stmt as $row)
                 {                 
           if($row['u_sesion'] != 1 && isset($row['u_sesion']))
             {
                 $this->isSesion = true;
                    }else{
                 $this->isSesion = false;
             }
                }
                   }
         
             }catch(PDOException $e){
                     echo 'Połączenie w sesji nie mogło zostać utw.<br />'.$e;
                     $this->isSesion = false;
                  } 
               return $this->isSesion;      
         } 
         
      public function idsesion()
           {
          if(isset($_SESSION['session_id']))
            {
             $this->sesion_id = $_SESSION['session_id'];
            }
               return $this->sesion_id;   
           }
           
      protected function koduj($koduj)
           {
             return base64_encode($koduj);  
           }
      protected function dekoduj($koduj)
           {
             return base64_decode($koduj);  
           }
     public function sprawdzsesje()
          {
             return $this->sesja();
          }
 private function czas_sesji()
         {
           try{
                               $cz        = date($_SESSION['start_sesion']);
                               $basedate  = strtotime($cz);
                               $date1     = strtotime("1 hours", $basedate);
                               $this->czas_za_godzine = date("Y-m-d H:i:s", $date1);
                               
                   if(date("Y-m-d H:i:s") > $this->czas_za_godzine && $this->idsesion() != 1)
                       {
                         $_SESSION['start_sesion'] = date("Y-m-d H:i:s");
                        session_regenerate_id(); 
                    $this->db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
                    $stmt =  $this->db->prepare('UPDATE `'. $this->db->dbprefix().'user` SET u_sesion=:u_sesion, u_online=:u_online, u_zalogowany=:u_zalogowany WHERE u_login=:u_login');
            $stmt->bindValue(':u_online', $_SESSION['start_sesion'], PDO::PARAM_STR);
                    $stmt->bindValue(':u_sesion', $this->idsesion(), PDO::PARAM_INT);
                    $stmt->bindValue(':u_zalogowany', 1, PDO::PARAM_INT);
                    $stmt->bindValue(':u_login', $this->dekoduj($_SESSION['u_login']), PDO::PARAM_STR);
                $stmt->execute();
                    $stmt->closeCursor();  
                         }
           }catch(PDOException $e){
                     echo 'Połączenie w czas sesji nie mogło zostać utw.<br />'.$e;
                    } 
              return;   
         }/* */
 }

Class PDO login user

Class PDO

userClass część 3

 

Licencja Creative Commons
userClass.php, prk_user.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ę użytkownika postanowiłem zrobić tak jak session, przypisanie połączenia z PDO przez konstruktor. Do tego trzeba było się zastanowić co będzie potrzebne do działania całości. Doszedłem do wniosku, że na początek, zrobię metodę odpowiedzialną za sam proces logowania, do której potem będę się odwoływał w pliku index.php w głównym katalogu. Następnie wykonam mniej istotne rzeczy z mojego punktu widzenia. Do metody trzeba zaimportować id sesji z klasy userSesionClass. Do logowanie jeszcze będę potrzebował ip, datę. Do pobrania ip posłużyłem się metodą, która dodatkowo sprawdza, czy user łączy się przy pomocy proksy (teoretycznie). Do czyszczenia danych przychodzących z post, też najlepiej było zrobić osobną metodę, która efektywnie będzie wykonywać powierzone zadanie. Następną sprawą to wylogowanie. To na sam początek powinno wystarczyć do prawidłowego działania.

userClass.php

include_once basename('databaseClass.php'); require_once basename('userSesionClass.php'); class User {                   private $name; // dane z tablicy $_POST                   private $password; // dane z tablicy $_POST                   private $name_user; /// kto zalogowany                   private $sesion; /// przypisanie classy sesji                   public  $error; // czy poprawna                   private $post; // czyść post                   private $post1 = array(); // czyść post                   private $db;  /// przypisanie połączenia z PDO przez konstruktor                             public function __construct()           {              //parent::__construct();                       $this->db               = new DBBER();  // połączenie z bazą                       $this->sesion           = new Session(); // session                   }

           ############################ Zaloguj #####################################      public function zaloguj($name, $password)        {                     $this->name     = $this->czyscpost($name);                 $this->password = $this->czyscpost(md5($password));         try{                   if(isset($this->name))           {         $this->db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);        $stmt = $this->db->prepare('SELECT u_login, u_haslo, u_email  FROM `'.$this->db->dbprefix().'user` WHERE `u_login`=:username && `u_haslo`=:password && `u_aktywny`=:u_aktywny && u_zalogowany=:u_zalogowany');

       $stmt->bindValue(':username', $this->name, PDO::PARAM_STR);        $stmt->bindValue(':password', $this->password, PDO::PARAM_STR);        $stmt->bindValue(':u_aktywny', '1', PDO::PARAM_INT);            $stmt->bindValue(':u_zalogowany', '0', PDO::PARAM_INT);                $stmt->execute();         if($de = $stmt->fetch())                         {                          $this->sesion->przypiszsesje($this->name); /// przypisanie sesji                                           $this->db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);                    $stmt = $this->db->prepare('UPDATE `'.$this->db->dbprefix().'user` SET u_sesion=:u_sesion, u_online=NOW(), u_ip=:u_ip, u_zalogowany=:u_zalogowany WHERE `u_login`=:username and `u_haslo`=:password');                      $stmt->bindValue(':username', $this->name, PDO::PARAM_STR);                                  $stmt->bindValue(':password', $this->password, PDO::PARAM_STR);                      $stmt->bindValue(':u_sesion', $this->sesion->idsesion(), PDO::PARAM_STR); /// przypisanie sesji do bazy danych                                      $stmt->bindValue(':u_ip', $this->ip(), PDO::PARAM_STR);                                      $stmt->bindValue(':u_zalogowany', 1, PDO::PARAM_INT);                      $stmt->execute();              }elseif($this->name != $de['u_login'] and $this->password != $de['u_haslo']){                 echo $this->error = '<hr/><div align="center"><p>Błędne Login lub hasło!</p></div><hr/>';                          }else{                                   $this->wyloguj();                                  echo $this->error = '<hr/><div align="center"><p>Przepraszamy, podany rekord nie istnieje lub został zablokowany!</p></div><hr/>'; ///                                     }                         $stmt->closeCursor();                     }                          }catch(PDOException $e){                      echo 'Połączenie loguj nie mogło zostać utw.<br />'.$e;                     }                    return  $this->error;                                   }                               ############################ Sprawdź Admin #####################################         public function admin()             {               try{                $ad = false;                    $this->db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);                  $stmt = $this->db->prepare('SELECT u_admin  FROM `'.$this->db->dbprefix().'user` WHERE `u_login`=:username && `u_admin`=:u_admin');                     @$stmt->bindValue(':username',  $this->user(), PDO::PARAM_STR);                     $stmt->bindValue(':u_admin', 1, PDO::PARAM_INT);                         $stmt->execute();         foreach($stmt as $row)                     {             if($row['u_admin'] == 1)                                {$ad = true;}else{$ad = false;}             }             $stmt->closeCursor();                                       }catch(PDOException $e){                      echo 'Połączenie nie mogło zostać utw.<br />'.$e;                     }               return $ad;             }

                   ############################ Sprawdź User #####################################         public function user()           {          try{

                 $this->db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);                  $stmt = $this->db->prepare('SELECT u_login FROM `'.$this->db->dbprefix().'user` WHERE `u_sesion`=:u_sesion');                     @$stmt->bindValue(':u_sesion', $this->sesion->idsesion(), PDO::PARAM_STR);                          $stmt->execute();         foreach($stmt as $row)                     {             if(isset($row['u_login']))                                {$this->name_user = $row['u_login'];}             }             $stmt->closeCursor();                              }catch(PDOException $e){                      echo 'Połączenie nie mogło zostać utw.<br />'.$e;                     }               return $this->name_user;             }                   ############################ Czy proxy ip #####################################   public function ip()        {               if(isset($_SERVER["HTTP_X_FORWARDED_FOR"])) // wartość superglobalnych                {                           $ip     = $_SERVER["HTTP_X_FORWARDED_FOR"];  /// ip potencjalnie niebezpieczny                           $tt     = $_SERVER["REMOTE_ADDR"]." proksy"; /// ip proxy                }else{                           $tt = $_SERVER['REMOTE_ADDR'];                     }                return $tt; // ." ".$tt_g        }                           ############################# czyść post ################################    public function czyscpost($post)             {               $this->post = $post;                           $this->post = trim($this->post);                           $this->post = strip_tags($this->post);                           $this->post = htmlspecialchars($this->post);                           $this->post = htmlentities($this->post, ENT_QUOTES,'UTF-8');                           $this->post = stripslashes($this->post);                           $this->post = stripcslashes($this->post);                        preg_match('/^[a-zA-ZąęćłńóśźżĄĆĘŁŃÓŚŹŻ0-9\@\_\-\.]+$/', $this->post, $this->post1);                   return $this->post1[0];             }                    public function wyloguj()          {                        try{                    $this->db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);                    $stmt = $this->db->prepare('UPDATE `'.$this->db->dbprefix().'user` SET `u_sesion`=:u_sesion, u_ip=:u_ip, u_zalogowany=:u_zalogowany WHERE `u_login`=:username');            $stmt->bindValue(':username', $this->user(), PDO::PARAM_STR);                    $stmt->bindValue(':u_ip', $this->ip(), PDO::PARAM_STR);            $stmt->bindValue(':u_sesion', 1, PDO::PARAM_INT);                    $stmt->bindValue(':u_zalogowany', 0, PDO::PARAM_INT);             $stmt->execute();                                                             echo  $this->error = '<hr/><div align="center"><p>Zostałeś Wylogowany!</p></div><hr/>';;                           session_unset();                                }catch(PDOException $e){                      echo 'Połączenie wyloguj nie mogło zostać utw.<br />'.$e;                     }           return $this->error;                         }  

}

Tabela do bazy danych

prk_user.sql

CREATE TABLE IF NOT EXISTS `(tutaj nasz prefiks)user` (
  `u_id` int(11) NOT NULL AUTO_INCREMENT,
  `u_login` varchar(55) NOT NULL,
  `u_email` varchar(120) NOT NULL,
  `u_haslo` varchar(255) NOT NULL,
  `u_aktywny` int(11) NOT NULL DEFAULT '1',
  `u_data` varchar(20) NOT NULL,
  `u_referer` varchar(255) NOT NULL,
  `u_sesion` varchar(255) NOT NULL,
  `u_online` varchar(25) NOT NULL,
  `u_ip` varchar(255) NOT NULL,
  `u_protokul` varchar(55) NOT NULL,
  `u_admin` int(11) NOT NULL DEFAULT '0',
  `u_zalogowany` int(11) NOT NULL DEFAULT '0',
 `u_agent` varchar(255) NOT NULL,
  PRIMARY KEY (`u_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;

Class PDO register

  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;
       }
}

Class PDO parse_UrlClass

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]

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