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

Class PDO parse_UrlClass

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

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]

Komentarze  

 
0 #1 Christin 2014-12-15 13:40
Wow, marvelous weblog layout! How lengthy have you been running a blog for?
you make running a blog look easy. The full glance of your web site is fantastic, let alone the content!


Stop by my web site: homepage; Christin:
Cytować
 

Dodaj komentarz


Kod antyspamowy
Odśwież

 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