Statystyki |
» Użytkownicy: 1
» Najnowszy użytkownik: Admin
» Wątków na forum: 67
» Postów na forum: 67
Pełne statystyki
|
Użytkownicy online |
Aktualnie jest 2 użytkowników online. » 0 Użytkownik(ów) | 1 Gość(i) Google
|
Ostatnie wątki |
Plik z indeksem strony
Forum: Plik z indeksem strony
Ostatni post: Admin
05-16-2025, 10:52 PM
» Odpowiedzi: 0
» Wyświetleń: 31
|
Plik z konfiguracją syste...
Forum: Plik z konfiguracją systemu
Ostatni post: Admin
05-16-2025, 10:06 PM
» Odpowiedzi: 0
» Wyświetleń: 14
|
Silnik systemu
Forum: Silnik systemu
Ostatni post: Admin
05-16-2025, 06:50 PM
» Odpowiedzi: 0
» Wyświetleń: 10
|
Interfejs połączenia z ba...
Forum: Interfejs połączenia z bazą danych MySQL
Ostatni post: Admin
05-16-2025, 03:23 PM
» Odpowiedzi: 0
» Wyświetleń: 6
|
Tabela z artykułami
Forum: Tabela z artykułami
Ostatni post: Admin
05-16-2025, 03:00 PM
» Odpowiedzi: 0
» Wyświetleń: 4
|
Tabela z danymi kontaktow...
Forum: Tabela z danymi kontaktowymi
Ostatni post: Admin
05-16-2025, 02:52 PM
» Odpowiedzi: 0
» Wyświetleń: 6
|
Tabela modułu pobierania ...
Forum: Tabela modułu pobierania plików
Ostatni post: Admin
05-16-2025, 02:35 PM
» Odpowiedzi: 0
» Wyświetleń: 6
|
Tabela zawierająca koment...
Forum: Tabela zawierająca komentarze
Ostatni post: Admin
05-16-2025, 02:20 PM
» Odpowiedzi: 0
» Wyświetleń: 4
|
Tabela z kategoriami blog...
Forum: Tabela z kategoriami bloga
Ostatni post: Admin
05-16-2025, 02:05 PM
» Odpowiedzi: 0
» Wyświetleń: 9
|
Tabela ze wpisami do blog...
Forum: Tabela ze wpisami do bloga
Ostatni post: Admin
05-16-2025, 01:52 PM
» Odpowiedzi: 0
» Wyświetleń: 4
|
|
|
Plik z indeksem strony |
Napisane przez: Admin - 05-16-2025, 10:52 PM - Forum: Plik z indeksem strony
- Brak odpowiedzi
|
 |
Zaczynamy od znacznika otwierającego skrypt i przepisania zmiennych GET, POST i COOKIE.
Kod PHP: <?php if(is_array($HTTP_GET_VARS)) { while(list($k, $v) = each($HTTP_GET_VARS)) { if(is_array($HTTP_GET_VARS[$k])) { while( list($k2, $v2) = each($HTTP_GET_VARS[$k])) { $$k[$k2] = $v2; } @reset($HTTP_GET_VARS[$k]); } else { $$k = $v; } } @reset($HTTP_GET_VARS); } if(is_array($HTTP_P0ST_VARS)) { while(list($k, $v) = each($HTTP_P0ST_VARS)) { if(is_array($HTTP_P0ST_VARS[$k])) { while(list($k2, $v2) = each($HTTP_P0ST_VARS[$k])) { $$k[$k2] = $v2; } @reset($HTTP_POST_VARS[$k]); } else { $$k = $v; } } @reset($HTTP_POST_VARS); } if(is_array($HTTP_COOKIE_VARS)) { while(list($k, $v) = each($HTTP_COOKIE_VARS)) { if(is_array($HTTP_COOKIE_VARS[$k])) { while(list($k2, $v2) = each($HTTP_COOKIE_VARS[$k])) { $$k[$k2] = $v2; } @reset($HTTP_COOKIE_VARS[$k]); } else { $$k = $v; } } @reset($HTTP_COOKIE_VARS); } if(is_array($_GET)) { while(list($k, $v) = each($_GET)) { if(is_array($_GET[$k])) { while(list($k2, $v2) = each($_GET[$k])) { $$k[$k2] = $v2; } @reset($_GET[$k]); } else { $$k = $v; } } @reset($ GET); } if(is_array($_POST)) { while(list($k, $v) = each($_POST)) { if(is_array($_POST[$k])) { while(list($k2, $v2) = each($_POST[$k]) { $$k[$k2] = $v2; } @reset($_POST[$k]); } else { $$k = $v; } } @reset($_POST); } if(is_array($_COOKIE)) { while(list($k, $v) = each($_COOKIE)) { if(is_array($_COOKIE[$k])) { while(list($k2, $v2) = each($_COOKIE[$k])) { $$k[$k2] = $v2; } @reset($_COOKIE[$k]); } else { $$k = $v; } } @reset($_COOKIE); }
Następnie, w odpowiedniej zmiennej deklamjmy nazwę modułu.
Włączamy do pliku silnik systemu za pomocą instrukcji require().
Kod PHP: require('./engine/engine.php');
Następnie pobieramy wartość ze zmiennej konfiguracji SConfigurationOf Site['mstgr] i rozdzielamy ją na dwie części za pomocą funkcji explode() i ciągu znaków „_". Wynik zapisujemy do zmiennej $ModuleToSet
Kod PHP: $ModuleToSet = explode(,$ConfigurationOfSite['mstgl']);
Teraz sprawdzamy, czy pozycja o indeksie zero z tej tablicy jest równa ,, s". Jeśli tak, wówczas przekierowujemy użytkownika do pliku, którego nazwa jest zawarta w drugim elemencie tablicy. Przekierowanie wykonujemy za pomocą instrukcji Header , która wysyła nagłówki.
Kod PHP: if($ModuleToSet[0] == 's')
Header("Location: {$ModuleToSet[1]}.php"); }
Następnie sprawdzamy, czy pozycja o indeksie zero z tej tablicy jest równa m". Jeśli tak, wówczas przekierowujemy użytkownika do pliku, którego nazwa jest zawarta w drugim elemencie tablicy. Przekierowania dokonujemy za pomocą instrukcji Header, która wysyła nagłówki.
Kod PHP: elseif($ModuleToSet[0] == 'm') { Header("Location: {$ModuleToSet[1]}.php"); }
Następnie sprawdzamy, czy pozycja o indeksie zero z tej tablicy jest równa „strona". Jeśli tak, wówczas przekierowujemy użytkownika do pliku page.php wraz z wartością zmiennej id_pages, której nazwa jest zawarta w drugim elemencie tablicy. Przekierowania dokonujemy za pomocą instrukcji Header, która wysyła nagłówki.
Kod PHP: elseif($ModuleToSet[0] == 'page') { Header("Location: page.php?id_pages={$ModuleToSet[1]}"); }
Kończymy skrypt PHP.
|
|
|
Plik z konfiguracją systemu |
Napisane przez: Admin - 05-16-2025, 10:06 PM - Forum: Plik z konfiguracją systemu
- Brak odpowiedzi
|
 |
Rozpoczynamy od znacznika otwierającego skrypt PHP.
Następnie deklarujemy zmienną, w której będzie przechowywana baza danych używana do połączenia.
W kolejnej zmiennej deklarujemy nazwę serwera z bazą danych.
Następna linijka to zadeklarowana zmienna wraz z nazwą użytkownika mającego dostęp do bazy danych.
Kolejnym elementem, który należy zadeklarować, jest hasło użytkownika do bazy danych.
Deklarujemy zmienną zawierającą nazwę bazy danych, do której mamy zamiar się odwołać
Kod PHP: $DBName = 'cemesik_blog';
W ostatniej zmiennej wpisujemy prefiks do tabelek umieszczonych w bazie danych. Po zmianie prefiksu w tym pliku będzie można używać innych nazw tabel w bazie danych.
Kod PHP: $TablePrefix = 'bloglm_';
Zamykamy skrypt PHP.
Dane w tym pliku to jedyne dane, które będą wymagały edycji. W razie zainstalowania skryptu na jakimkolwiek serwerze wystarczy wpisać dane konfiguracyjne tylko w tym miejscu. Specjalnie wydzielony plik z danymi potrzebnymi do połączenia znacznie ułatwi nam pracę w wypadku jakichkolwiek zmian w konfiguracji.
|
|
|
Silnik systemu |
Napisane przez: Admin - 05-16-2025, 06:50 PM - Forum: Silnik systemu
- Brak odpowiedzi
|
 |
Lokalizacja pliku: /engine/engine.php
Silnik systemu jest najważniejszym plikiem, który należy napisać dla błoga. Będzie on zawierał najbardziej popularne funkcje używane w całym systemie oraz definicje podstawowych zmiennych.
Rozpoczynamy skrypt PHP znacznikiem otwierającym:
Następnie ustawiamy set_magic_quotes_runtime na wartość zero, aby wszystkie zmienne przychodziły do skryptu w takiej formie, w jakiej zostały przesłane (za pomocą metody GET lub POST). Musimy pamiętać o tym, aby takie zmienne odpowiednio zabezpieczać
Kod PHP: set_magic_quotes_runtime(0);
Rozpoczynamy sesję użytkownika. Sesję trzeba rozpocząć na samym początku skryptu, przed wysłaniem jakichkolwiek nagłówków do przeglądarki.
Teraz zarejestrujemy zmienne w sesji użytkownika. Będą to między innymi:
usr_id - zawierająca ID użytkownika,
usr_name - zawierająca nazwę użytkownika,
usr_email - zawierająca adres e-mail użytkownika,
usr_template - zawierająca szablon użytkownika,
usr_language - zawierająca język użytkownika,
usr_admin - zawierająca informację o tym, czy użytkownik jest administratorem serwisu,
uzy_login - zawierająca informację o tym, czy użytkownik jest zalogowany na swoim koncie w serwisie
Kod PHP: session_register('usr_id'); session_register('urs_name'); session_register('usr_email'); session_register('usr_template'); session_register('usr_language'); session_register('usr_admin'); session_register('usr_login');
Następnie, za pomocą instrukcji reąuire, dołączamy plik z konfiguracją bazy danych MySQL lub jakiejkolwiek innej bazy. Zawiera on podstawowe dane potrzebne do połączenia.
Wykrywamy, na jaką wartość jest ustawiona zmienna $DBIs. Jeżeli jest ustawiona na wartość mysąl, wówczas dołączamy za pomocą funkcji include sterownik do bazy danych.
Kod PHP: if($DBIs == 'mysql')
include('./engine/mysql_drv.php');
}
Gdy sterownik bazy danych jest już podłączony, możemy uruchomić połączenie z tą bazą. Wykorzystujemy tutaj funkcję ze sterownika, przypisując ją do zmiennej SConnection. Wewnątrz funkcji podajemy dane potrzebne do nawiązania połączenia z serwerem baz danych.
Kod PHP: $Connection = ConnectToDB( $HostToDB, $UserLogin, $UserPassword);
Następnie sprawdzamy, czy połączenie zostało nawiązane, porównując zmienną $Connection z wartością FALSE.
Kod PHP: if($Connection == FALSE) {
Jeżeli zmienna ma wartość FALSE, wówczas wyświetlamy błąd
Kod PHP: echo 'It is no ability to connect with the database.';
Następnie za pomocą funkcji exit() kończymy działanie skryptu.
Jeżeli połączenie zostało nawiązane, możemy wybrać bazę danych. Wybieramy ją za pomocą funkcji ze sterownika bazy danych. Wynik funkcji przypisujemy do zmiennej SSelectingDB.
Kod PHP: $SelectingDB = SelectDB($DBName);
Następnie sprawdzamy, czy baza danych została wybrana prawidłowo. Możemy to ustalić za pomocą instrukcji if, która sprawdza, czy zmienna, w której jest przechowywany wynik wybierania bazy danych, równa jest FALSE.
Kod PHP: if ($SelectingDB == FALSE) {
Jeśli zmienna jest równa FALSE, oznacza to, że wybranie tej bazy danych nie powiodło się. Wówczas wywołujemy odpowiedni komunikat.
Kod PHP: echo 'It is no ability to select the database in the server.';
Kończymy wykonywanie skryptu za pomocą instrukcji exit().
Zadeklarujemy teraz funkcję, która wyświetli informację o błędzie, jeśli wystąpił podczas wykonywania zapytania do bazy danych. W parametrach będzie przyjmowała nazwę pliku, linię, w której został popełniony błąd oraz źle sformułowane zapytanie SQL.
Kod PHP: function DBShowError($Message,$ErrorFhow_many,$ErrorLine,$ErrorSQLQuery) {
Wyświetlamy informację o błędzie w zapytaniu do bazy danych wraz z zapytaniem SQL, w którym błąd wystąpił.
Kod PHP: echo 'Error in DB' ; echo '<br />'; echo 'In file: '.$ErrorFhow many; echo '<br />'; echo 'On line: '.$ErrorLine; echo 1<br />'; echo 'In Query: '.$ErrorSQLQuery; echo '<br />';
W celu lepszej identyfikacji błędu możemy pobrać informacje zwrócone przez serwer bazy danych z funkcji ShowErrorOfDB().
Kod PHP: echo 'Information from DB:'; echo ShowErrorOfDB(); }
Następnym etapem będzie pobranie tablicy konfiguracyjnej z systemu. Najpierw musimy sprawdzić, jaki interfejs bazy danych jest włączony do pliku.
Deklarujemy zapytanie SELECT, które wybierze wszystkie dane z tabeli konfiguracyjnej.
Kod PHP: $QueryConfig = 'SELECT config_name, config_value FROM '.$TablePrefix.'config';
}
Sprawdzamy, czy zapytanie zostało wykonane poprawnie. Jeśli wystąpił błąd, odwołujemy się do funkcji wyświetlającej informacje o błędzie.
Kod PHP: if(!MakeQuery($QueryConfig)) {
Do funkcji przekazujemy informację o błędzie w zapytaniu, plik, w którym on nastąpił, za pomocą _FILE_ , linie za pomocą _LINE_ i samo zapytanie do bazy danych, aby mogło zostać wyświetlone.
Kod PHP: DBShowError('Error in Query',_FILE_,_LINE_,$QueryConfig);
}
Jeżeli zapytanie, które wpisaliśmy, było poprawne, wówczas pobieramy wynik do zmiennej $Result i liczbę rekordów do zmiennej $Rows.
Kod PHP: $Result = GetResult(); $Rows = GetHowMany();
Następnie za pomocą pętli for przekształcamy uzyskaną z zapytania tablicę w tabelę asosjacyjną , w której kluczami będą wartości w polu config_name , natomiast wartościami dane wprowadzone do pola config_value.
Kod PHP: for($i=0;$i<$Rows;$i++) { $KeyResult = $Result[$i]['config_name']; $ConfigurationOfSite[$KeyResult] = $Result[$i]['config_value']; }
Sprawdzamy, czy użytkownik jest załogowany na swoje konto w systemie. Korzystamy z funkcji empty, za pomocą której sprawdzamy, czy zmienna $_SESSION[tuzy_id'] zawiera jakąś wartość Jeżeli brak w niej wartości, wówczas definiujemy zmienne sesji jako puste.
Kod PHP: if(empty($_SESSION['usr_id'])) { $_SESSI0N['usr_id'] = ''; $_SESSI0N['urs_name'] = ''; $_SESSI0N['usr_email'] = '';
Przy zmiennych $_SESSION['usr_template'] i $_SESSION['usr_language'] wpisujemy wartości z tablicy konfiguracyjnej, którą przed chwilą uzyskaliśmy . Dzięki temu dla użytkownika niezalogowanego zostanie ustalony domyślny szablon i język strony.
Kod PHP: $_SESSI0N['usr_template'] = $ConfigurationOfSite['dt']; $_SESSI0N['usr_language'] = $ConfigurationOfSite['dl']; $_SESSI0N['usr_admin'] = ''; $_SESSI0N['usr_login'] = '';
}
Teraz możemy przejść do blokowania użytkowników o określonym adresie IP. Na początek musimy sprawdzić, czy opcja ta została włączona za pomocą panelu administratora.
Kod PHP: if($ConfigurationOfSite['blip'] == 'yes'){
Jeżeli opcja została włączona, wówczas wykonujemy zapytanie, aby pobrać wszystkie numery IP, z których dostęp jest zabroniony.
Kod PHP: if($DBIs == 'mysql') { $QueryIP = 'SELECT ip_number FR0M '.$TablePrefix.'baningip'; }
Sprawdzamy, czy zapytanie zostało wykonane poprawnie.
Kod PHP: if(!MakeQuery($QueryIP)) { DBShowError('Error in Query',_FILE_,_LINE_,$QueryIP); }
Pobieramy wyniki zapytania do zmiennych zawierających wynik oraz ich liczbę.
Kod PHP: $Result = GetResult(); $Rows = GetHowMany();
Za pomocą pętli for sprawdzamy, czy którykolwiek z wyników pasuje do IP obecnego użytkownika zapisanego w zmiennej $_SERVER['REMOTE_ADDR'].
Kod PHP: for($i=0;$i<$Rows;$i++) { if($Result[$i]['ip_number'] == $_SERVER['REM0TE_ADDR']) {
Jeżeli wynik pasuje do obecnego adresu IP użytkownika, możemy mu wyświetlić stronę z informacją, że nie ma dostępu do strony. W tym celu włączymy odpowiedni plik.
Kod PHP: include('./html_page/'.addslashes($_SESSI0N['usr_language']).'/ban_ip.html');
Następnie kończymy wykonywanie skryptu PHP za pomocą instrukcji exit().
Teraz należy włączyć zapisany w pliku określony język dla strony. Wpisujemy odpowiednią wartość w instrukcji if, aby sprawdzić, czy język został włączony.
Kod PHP: if(!include('./language/'.addslashes($_SESSI0N['usr_language']).'/language.php')) {
Jeśli określony język dla strony nie został włączony, wyświetlamy odpowiedni komunikat.
Kod PHP: echo 'No language file found: '.addslashes($_SESSI0N U['usr_language']);
Następnie kończymy pracę skryptu za pomocą instrukcji exit().
Teraz możemy wyświetlić szablon strony. Deklarujemy odpowiednią funkcję.
Kod PHP: function PrintThemOfSite() {
Wewnątrz funkcji musimy zadeklarować zmienne jako globalne, ponieważ są to zmienne ustawione poza funkcją i nie byłoby ich widać wewnątrz niej.
Kod PHP: global $CMSModule; global $SiteTitle; global $SiteKeywords; global $Brief0fPage;
Następnie sprawdzamy za pomocą instrukcji if, czy można włączyć szablon użytkownika.
Kod PHP: if(!include('./themes/'.addslashes($_SESSI0N['usr_template']).'/theme.php')) {
Jeżeli nie można go włączyć do pliku, wówczas wyświetlamy odpowiedni komunikat.
Kod PHP: echo 'File not found: '.addslashes($_SESSI0N['usr_template']);
Wywołujemy także instrukcję exit() w celu zakończenia przetwarzania skryptu.
Funkcją, która będzie nam potrzebna, jest funkcja do deklaracji nagłówka strony. Przyjmuje ona argumenty :
- $SiteTitle - zawierający tytuł obecnej strony,
- $Keywords - zawierający słowa kluczowe, które zostaną umieszczone w sekcji .
META strony oraz $BriefOfPage - zawierający opis strony, który także zostanie umieszczone w sekcji META.
Kod PHP: function PrintHeader($SiteTitle,$Keywords,$BriefOfPage) {
Na początek deklarujemy zmienne jako globalne, gdyż zostały one zadeklarowane na zewnątrz funkcji i daltego nie byłoby ich widać
Kod PHP: global $ConfigurationOfSite; global $PageLanguage;
Deklarujemy elementy języka XHTML odpowiedzialne za utworzenie nagłówka strony.
Kod PHP: echo '<?xml version="l.0" encoding='".$PageLanguage['coding'].'"?>'; echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"'; echo '"http://localhost/dtd/xhtmlll.dtd">'; echo '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="'.$PageLanguage['lang'].'">'; echo '<head>'; echo '<meta http-equiv="Content-Type" content="text/html; charset='.$PageLanguage['coding'].'" />'; echo '<meta http-equiv="Content-language" content="'.$PageLanguage['lang_config'].'" />'; echo 'cmeta name="copyright" content="Cemesik CMS" />';
W miejscu, gdzie znacznik META przyjmuje parametr description, wpisujemy zmienną odpowiedzialną za opis strony.
Kod PHP: echo '<meta name="description" content="'.$BriefOfPage.'" />';
Natomiast w miejscu, gdzie znacznik META przyjmuje parametr keywords, wpisujemy zmienną odpowiedzialną za słowa kluczowe dla danej strony.
Kod PHP: echo '<meta name="keywords" content="'.$Keywords.'" />'; echo '<meta name="robots" content="all" />'; echo '<meta name="rating" content="general" />'; echo '<meta name="reso-urce-type" content="document" />'; echo '<meta name="generator" content="Cemesik Blog" /> ';
Następnie włączamy plik ze stylami CSS, za pomocą których będzie sformatowana nasza strona.
Kod PHP: echo '<link rel="stylesheet" type="text/css" href="themes/'.addslashes($_SESSION['usr_template']).'/style.css" />';
W znaczniku title, czyli w tytule strony, wpisujemy zawartość zmiennej SSiteTitle, a następnie nazwę systemową strony WWW SConfigurationOfSite ['name'].
Kod PHP: echo '<title>'.$SiteTitle.''.$ConfigurationOfSite['name'].'</title>'; echo '</head>'; echo '<body>';
Teraz deklarujemy tabelę, w której będzie zawarte logo naszej strony. Przypisujemy tabeli i komórce odpowiednie nazwy stylów, które później zadeklarujemy w arkuszu stylów CSS.
Kod PHP: echo '<table class="table_logo">'; echo '<tr>'; echo '<td class="row_logo"></td>'; echo '</tr>'; echo '</table>'; }
Następnie wprowadzamy funkcję, która wyświetli ścieżkę dostępu do strony, na której obecnie się znajdujemy.
Deklarujemy zmienną $URIForModule jako globalną, gdyż jest ona zdefiniowana poza funkcją.
Następnie wyświetlamy ścieżkę za pomocą instrukcji echo.
Deklarujemy funkcję wyświetlającą bloki po lewej stronie naszej witryny.
Kod PHP: function PrintLeftMenu() {
Definiujemy wartości pobieranych zmiennych jako zmienne globalne, gdyż są zadeklarowane poza funkcją i nie byłyby widoczne.
Kod PHP: global $DBIs; global $TablePrefix;
Następnie sprawdzamy, jaka baza danych jest włączona, i deklarujemy odpowiednie zapytanie.
Kod PHP: if($DBIs == 'mysql') { $QueryBlock= ' SELECT * FROM '.$TablePrefix.'blocks WHERE block_side = "1" AND block_active = "t" ORDER BY block_poz ASC'; }
Za pomocą interfejsu wykonujemy zapytanie do bazy danych.
Kod PHP: if(!MakeQuery($QueryBlock)) { DBShowError('Error in Query',_FILE_,_LINE_,$QueryBlock); }
Pobieramy wyniki zapytania i umieszczamy je w zmiennych.
Kod PHP: $Result = GetResult(); $Rows = GetHowMany();
Deklarujemy tabelę w języku XHTML wraz z przypisaną do niej klasą, za pomocą której będziemy mogli ją później sformatować w arkuszu stylów CSS.
Kod PHP: echo '<table class="l_menu" cellpadding="0" cellspacing="0">';
Rozpoczynamy pętlę for w celu wyświetlenia wszystkich bloków ustawionych po tej stronie witryny.
Kod PHP: for($i=0;$i<$Rows;$i++) {
Wyświetlamy nagłówek bloku wraz z jego nazwą pobraną z bazy danych.
Kod PHP: echo '<tr>'; echo '<td class="1_1">'.stripslashes($Result[$i]['block_show']).'</td>'; echo '</tr>'; echo '<tr>'; echo '<td class="1_2">';
Następnie, za pomocą instrukcji include(), włączamy plik zawierający dany blok, w celu jego wyświetlenia.
Kod PHP: include('./blocks/'.$Result[$i]['block_name'].'/'.$Result [$i]['block_name'].'.php'); echo '</td>'; echo '</tr>'; echo '<tr>'; echo '<td class="1_3"></td>'; echo '</tr>'; }
Zamykamy całą tabelę bloków po lewej stronie.
Teraz deklarujemy funkcję wyświetlającą bloki po prawej stronie naszej witryny.
Kod PHP: function PrintRightMenu() {
Definiujemy wartości zmiennych pobieranych jako zmienne globalne gdyż są zadeklarowane poza funkcją i nie byłyby widoczne.
Kod PHP: global $DBIs; global $TablePrefix;
Następnie sprawdzamy, jaka baza danych jest włączona i deklarujemy odpowiednie zapytanie.
Kod PHP: if($DBIs == 'mysql') { $QueryBlock= 1 SELECT * FR0M '.$TablePrefix.'blocks WHERE block_side = "p" AND block_active = "t" ORDER BY block_poz ASC'; }
Za pomocą interfejsu wykonujemy zapytanie do bazy danych.
Kod PHP: if(!MakeQuery($QueryBlock)) { DBShowError('Error in Query',_FILE_,_LINE_, $QueryBlock); }
Pobieramy wyniki zapytania i umieszczamy je w zmiennych.
Kod PHP: $Result = GetResult(); $Rows = GetHowMany();
Deklarujemy tabelę w języku XHTML wraz z przypisaną do niej klasą, za pomocą której będziemy mogli ją później sformatować w arkuszu stylów CSS.
Kod PHP: echo '<table class="p_menu" cellpadding="0" cellspacing="0">';
Rozpoczynamy pętlę for w celu wyświetlenia wszystkich bloków ustawionych po tej stronie witryny.
Kod PHP: for ($i=0;$i<$Rows;$i++) {
Wyświetlamy nagłówek bloku wraz z jego nazwą pobraną z bazy danych.
Kod PHP: echo '<tr>'; echo '<td class="p_l">'.stripslashes($Result[$i]['block_show']).'</td>'; echo '</tr>'; echo '<tr>'; echo '<td class="p_2">';
Następnie, za pomocą instrukcji include(), włączamy plik zawierający dany blok, w celu jego wyświetlenia.
Kod PHP: include('./blocks/'.$Result[$i]['block_name'].'/'.$Result[$i]['block_name'].'.php'); echo '</td>'; echo '</tr>'; echo '<tr>'; echo '<td class="p_3"></td>'; echo '</tr>'; }
Zamykamy całą tabelę bloków po prawej stronie.
Deklarujemy funkcję, która wyświetli nam stopkę strony wraz z napisem Copyright.
Elementy w stopce umieszczamy na warstwie, która dzięki przypisaniu do niej klasy zostanie później odpowiednio sformatowana w stylach CSS.
Kod PHP: echo '<div class="foot">'; echo 'Copyright © 2004-2025 <a href="http://cemesik.7m.pl">Cemesik Blog</a>'; echo '</div>'; echo '</body>'; echo '</html>'; }
Następnie możemy zadeklarować funkcję, która wyświetli nam błąd, jeśli taki wystąpi. Funkcja ma jeden argument $lnformationContent, zawierający informacje o błędzie.
Kod PHP: function PrintError($InformationContent)
global $PageLanguage;
echo '<div class="badstyle">'; echo $InformationContent; echo '<br />'; echo $PageLanguage['back_error']; echo '</div>'; }
Potrzebna będzie także funkcja, która poinformuje użytkownika o pomyślnym zakończeniu akcji. Będzie ona przyjmowała jeden argument $lnformationContent, zawierający informację o działaniach, które udało się wykonać
Kod PHP: function PrintOK($InformationContent) {
global $PageLanguage;
echo '<div class="isok">'; echo $InformationContent; echo '<br />'; echo $PageLanguage['good_go_next']; echo '</div>';
}
Należy także zdefiniować funkcję do logowania się na konto administratora, aby przy bezpośrednim wejściu do panelu użytkownik mógł się od razu zalogować
Kod PHP: function ShowLoginForm() {
global $AdminLang;
?>
Deklarujemy formularz, który zostanie wysłany do pliku login.php ze skryptem do logowania w serwisie. W formularzu umieścimy dwa pola. Pierwsze będzie przeznaczone na login, drugie na hasło do konta.
Kod PHP: <form method="post" action="login.php"> <table> <tr> <td><?php echo $AdminLang['account_name'];?></td> <td><input type="text" name="account_login"></td> </tr> <tr> <td><?php echo $AdminLang['password_access'];?></td> <td><input type="password" name="account_pwd"></td> </tr> <tr> <td></td> <td><input type="hidden" name="login" value="yes"><input type="submit" value="<?php echo $AdminLang['login_me'];?>"></td> </tr> </table> </form> <?php
}
?>
|
|
|
Interfejs połączenia z bazą danych MySQL |
Napisane przez: Admin - 05-16-2025, 03:23 PM - Forum: Interfejs połączenia z bazą danych MySQL
- Brak odpowiedzi
|
 |
Lokalizacja pliku: /engine/mysql_drv.php.
Aby ułatwić sobie pracę i umożliwić przeniesienie platformy błoga na inną bazę danych bez konieczności poprawiania całego systemu, powinniśmy utworzyć funkcje zawierające instrukcje dostępu do danej bazy i pozwalające się z nią łączyć W tym celu należy utworzyć i włączyć odpowiedni plik do systemu. Taki plik, czyli interfejs utworzony do połączenia z bazą danych MySQL, może zostać przekształcony w każdą inną bazę danych.
Rozpoczynamy od utworzenia pliku mysql_drv.php w katalogu engine. W pliku znajdą się funkcje napisane w języku PHP, a więc kod rozpoczynamy znacznikiem:
Następnie deklarujemy funkcję do połączenia z bazą danych, która przyjmuje trzy argumenty: $HostToDB - nazwa hosta, na którym działa serwer z bazą danych, $UserLogin - login użytkownika, który ma prawo dostępu do tej bazy danych oraz $UserPassword - hasło użytkownika do bazy danych.
Kod PHP: function ConnectToDB( $HostToDB, $UserLogin, $UserPassword) {
Wewnątrz funkcji wykorzystujemy polecenie mysql_connect, które ustanawia połączenie z bazą danych MySQL. Podajemy w nim parametry przekazane do funkcji. Polecenie deklarujemy wewnątrz warunku dla instrukcji if.
Kod PHP: if (mysql_connect( $HostToDB, $UserLogin, $UserPassword ) )
Jeżeli udało się nawiązać połączenie z bazą danych, zwracamy za pomocą instrukcji return wartość TRUE.
Jeżeli nie udało się nawiązać połączenia z bazą danych, zwracamy za pomocą instrukcji return wartość FALSE.
Kolejnym krokiem jest wybór bazy danych dla naszego systemu. Deklarujemy funkcję, która wybierze bazę danych. Przyjmuje ona jeden argument, którym jest $DBName - zmienna zawierająca nazwę bazy danych.
Kod PHP: function SelectDB($DBName) {
Wykonujemy polecenie mysql_select_db, dla którego w parametrze podajemy nazwę bazy danych. Polecenie to umieszczamy wewnątrz instrukcji if.
Kod PHP: if (mysql_select_db ($DBName) ) {
Jeżeli udało się nawiązać połączenie z bazą danych, zwracamy za pomocą instrukcji return wartość TRUE.
Jeśli nie uda się wybrać wskazanej przez nas bazy danych, zwracamy wartość FALSE za pomocą instrukcji return.
Następnie zadeklarujemy funkcję do wykonywania zapytań do bazy danych MySQL. Będzie ona przyjmowała jeden argument $QueryToDB, w którym będzie się znajdowało zapytanie w języku SQL.
Kod PHP: function MakeQuery($QueryToDB) {
Zmienną $ResultQuery deklarujemy jako zmienną globalną, aby była widoczna wewnątrz funkcji.
Wykonujemy zapytanie do bazy danych za pomocą funkcji mysql_query. W parametrze tej funkcji podajemy zmienną dla zapytania SQL Wynik zapytania zostanie zwrócony do zmiennej $ResultQuery.
Kod PHP: $ResultQuery = mysql_query($QueryToDB);
Następnie sprawdzamy poprzez instrukcję if, czy w wyniku znajdują się jakieś wartości.
Jeżeli w wyniku znajdują się jakieś wartości, wówczas zwracamy za pomocą instrukcji return wartość TRUE.
Jeżeli w zmiennej $ResultQuery nie ma żadnych wartości, zwracamy za pomocą instrukcji return wartość FALSE.
Teraz zadeklarujemy funkcję, która zwróci nam błąd, jeśli wystąpił w bazie danych podczas wykonywania naszego zapytania.
Kod PHP: function ShowErrorOfDB() {
Deklarujemy dwie zmienne i przypisujemy do nich wartości z funkcji MySQL Funkcja mysql_error() zwraca opis błędu, natomiast funkcja mysql_errno() zwraca numer błędu.
Kod PHP: $Error['text'] = mysql_error(); $Error['number'] = mysql_errno();
Następnie łączymy zmienne z ich opisem i wpisujemy je do zmiennej $lnformationOnError.
Kod PHP: $InformationOnError = 'Name: '.$Error['text'] .'Number: '.$Error['number'];
Opis błędu zostanie nam zwrócony za pomocą instrukcji return.
Kod PHP: return $InformationOnError; }
Kolejna funkcja, którą utworzymy, będzie służyła do pobierania wyniku zapytania z bazy danych.
Zmienną $ResultQuery uzyskaną w funkcji MakeQuery() deklarujemy jako zmienną globalną, aby była widoczna wewnątrz funkcji.
Następnie za pomocą pętli while przepisujemy wszystkie wyniki do tablicy $ResultFromQuery[]. Pętla będzie wykonywana tak długo, aż nie zostaną wypisane wszystkie wyniki z bazy MySQL. Za wyniki odpowiada funkcja mysql_fetch_array($ResultQuery,MYSQL_ASSOC), w której pierwszym argumentem jest zmienna z wynikiem zapytania. Drugi argument jest opcjonalny. Możemy tu zdecydować, jaką tabelę chcemy uzyskać ponumerowaną czy asocjacyjną. Jeśli nie podamy argumentu, zostaną zwrócone dwie tabele. My użyjemy parametru MYSQL_ASSOC, aby została zwrócona tablica asocjacyjna.
Kod PHP: while ($row = mysql_fetch_array ($ResultQuery,MYSQL_ASSOC)) { $ResultFromQuery[] = $row; }
Po zakończeniu pętli należy zwrócić wynik do zmiennej, do której przypisaliśmy wywołanie funkcji.
Kod PHP: return $ResultFromQuery;
}
Przyda się nam jeszcze funkcja, która pobierze informację o ilości rekordów uzyskanych w wyniku zapytania.
Na początek deklarujemy zmienną z wynikiem zapytania jako globalną.
Aby pobrać do zmiennej $HowManyRecords liczbę wyników zapytania, odwołujemy się funkcji mysql_num_rows z podaniem w jej argumencie zmiennej z wynikami zapytania.
Kod PHP: $HowManyRecords = mysql_num_rows($ResultQuery);
W kolejnym kroku zwracamy wynik za pomocą instrukcji return.
Kończymy skrypt znakiem:
Zapisujemy i zamykamy plik.
|
|
|
Tabela z artykułami |
Napisane przez: Admin - 05-16-2025, 03:00 PM - Forum: Tabela z artykułami
- Brak odpowiedzi
|
 |
Tabela o nazwie bloglm_article będzie miała następujące pola:
- article_id - identyfikujące artykuł, ustawione na długość 11 cyfr int(11), atrybut auto_increment,
- article_title - będzie zawierało tytuł artykułu, ustawione na wartość varchar(150),
- article_intro - będzie zawierało dane znajdujące się w spisie artykułów. Pole będzie miało długość 255 znaków - varchar(255).
- article_cont - będzie zawierało pełny tekst artykułu, pole typu text,
- article_autor - identyfikujące autora artykułu (może to być imię, nazwisko, pseudonim), w wypadku tego pola wystarczy wartość varchar(25),
- article _howmany - będzie przechowywało wartość informującą o liczbie odczytań danego artykułu przez użytkowników. Pole należy ustawić na wartość int(11),
- article _keyword - będzie zawierało słowa kluczowe zdefiniowane dla artykułu. Dla tego pola wartość należy ustawić na varchar(255).
PRIMARY KEY ustawiamy na pole article_id.
Kod PHP: CREATE TABLE 'bloglm_article' ( 'article_id' int(11) NOT NULL auto_increment, 'article_title' varchar(150) collate utf8_unicode_ci NOT NULL, 'article_intro' varchar(255) collate utf8_unicode_ci NOT NULL, 'article_cont' text collate utf8_unicode_ci NOT NULL, 'article_autor' varchar(25) collate utf8_unicode_ci NOT NULL, 'article_howmany' int(11) NOT NULL default '0', 'article_keyword' varchar(255) collate utf8_unicode_ci NOT NULL, PRIMARY KEY ('article_id') ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=51 ;
W tabeli umieszczamy przykładowy artykuł, aby pokazać, na czym będzie polegało dodawanie kolejnych.
Kod PHP: INSERT INTO 'bloglm_article' VALUES (26, 'Nowy artykuł', 'Wstęp do artykułu', 'Rozwinięcie artykułu', 'admin', 60, 'słowa kluczowe');
|
|
|
Tabela z danymi kontaktowymi |
Napisane przez: Admin - 05-16-2025, 02:52 PM - Forum: Tabela z danymi kontaktowymi
- Brak odpowiedzi
|
 |
Tabela o nazwie bloglm_team będzie miała następujące pola:
- usr_id - przechowujące identyfikator rekordu, ustawione na wartość int(11), atrybut auto_increment,
- usr_name - zawierające nazwę użytkownika wyświetlaną w kontaktach, ustawione na wartość o długości 25 znaków - varchar(25),
- usr_email - zawierające adres e-mail użytkownika, do którego można wysłać list. Pole będzie miało długość 45 znaków - varchar(45).
PRIMARY KEY ustawiamy na pole usr_id.
Kod PHP: CREATE TABLE 'bloglm_team' ( 'usr_id' int(11) NOT NULL auto_increment, 'urs_name' varchar(25) collate utf8_unicode_ci NOT NULL, 'usr_email' varchar(45) collate utf8_unicode_ci NOT NULL, PRIMARY KEY ('usr id') ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUT0_INCREMENT=11 ;
W tabeli umieścimy jedną wartość, którą będzie można potem edytować w panelu administratora.
Kod PHP: INSERT INTO 'bloglm_team' VALUES (5, 'Administrator', 'admin@localhost');
|
|
|
Tabela modułu pobierania plików |
Napisane przez: Admin - 05-16-2025, 02:35 PM - Forum: Tabela modułu pobierania plików
- Brak odpowiedzi
|
 |
Tabela o nazwie bloglm_download będzie miała następujące pola:
- download_id - zawierające identyfikator pliku, ustawione na wartość int(11), atrybut auto_increment,
- download_title - będzie zawierało tytuł pliku do pobrania. Ustawiamy je na wartość varchar(35),
- download_brief - będzie zawierało szczegóły na temat pliku, pole typu text,
- download_www - będzie zawierało adres URL do strony autora pliku, który mamy zamiar udostępnić na własnej stronie. Pole ustawiamy na długość varchar(45),
- download_howmany - będzie zawierało informację o liczbie pobrań danego pliku, ustawione na długość int(11),
- download_file - będzie zawierało ścieżkę dostępu do pliku, który mamy zamiar udostępnić w Internecie. Pole to będzie miało długość varchar(255).
PRIMARY KEY ustawiamy na pole download_id.
Kod PHP: CREATE TABLE 'bloglm_download' ( 'download_id' int(11) NOT NULL auto_increment, 'download_title' varchar(35) collate utf8_unicode_ci NOT NULL, 'download_brief' text collate utf8_unicode_ci NOT NULL, 'download_www' varchar(45) collate utf8_unicode_ci NOT NULL, 'download_howmany' int(11) NOT NULL default 'O', 'download_file' varchar(255) collate utf8_unicode_ci NOT NULL, PRIMARY KEY ('download_id') ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=30 ;
W tabeli umieścimy przykładowe dane, które pomogą zaprezentować działanie tego modułu.
Kod PHP: INSERT INTO 'bloglm_download' VALUES (29, 'Plik do pobrania', 'Opis pliku', 'http://localhost1', 3, 'plik.exe');
|
|
|
Tabela zawierająca komentarze |
Napisane przez: Admin - 05-16-2025, 02:20 PM - Forum: Tabela zawierająca komentarze
- Brak odpowiedzi
|
 |
Tabela o nazwie bloglm_comment będzie miała następujące pola:
- comm_id - zawierające numer ID każdego wpisu. Pole to będzie miało wartość int(11), atrybut auto_increment,
- comm_nick - będzie zawierało nazwę użytkownika, który dodał dany wpis. Będzie ono miało długość 25 znaków - varchar(25),
- comm_email - pole przeznaczone na wpisanie przez autora komentarza swojego adresu e-mail. Pole będzie ustawione na varchar(35),
- comm_content - przeznaczone na treść komentarza. Powinno zostać ustawione na wartość text,
- comm_time - będzie ono zawierało czas publikacji danego komentarza, wystarczy dla niego ustawić wartość varchar(10),
- comm_blog_id - pole przeznaczone na wpisanie ID danego wpisu w blogu, po którym będzie można się zorientować, dla którego wpisu należy wyświetlić ten komentarz, ustawimy je na int(11),
- category_name - zawierające tytuł wpisu, ustawione na wartość varchar(255),
PRIMARY KEY ustawiamy na pole comm_id.
Kod PHP: CREATE TABLE 'bloglm_comment' ( 'comm_id' int(ll) NOT NULL auto_increment, 'comm_nick' varchar(25) collate utf8_unicode_ci NOT NULL, 'comm_email' varchar(35) collate utf8_unicode_ci NOT NULL, 'comm_content' text collate utf8_unicode_ci NOT NULL, 'comm_time' varchar(10) collate utf8_unicode_ci NOT NULL, 'comm_blog_id' int(ll) NOT NULL, PRIMARY KEY ('comm_id') ) ENGINE=MyISAM DEFAULT CHARSET=utf8 C0LLATE=utf8_unicode_ci AUT0_INCREMENT=11 ;
|
|
|
Tabela z kategoriami bloga |
Napisane przez: Admin - 05-16-2025, 02:05 PM - Forum: Tabela z kategoriami bloga
- Brak odpowiedzi
|
 |
Tabela o nazwie bloglm_category będzie miała następujące pola:
- category_id - zawierające numer ID każdego wpisu. Pole to będzie miało wartość int(11), atrybut auto_increment,
- category_name - zawierające tytuł wpisu, ustawione na wartość varchar(255),
PRIMARY KEY ustawiamy na pole category_id.
Kod PHP: CREATE TABLE 'bloglm_category' ( 'category_id' int(11) NOT NULL auto_increment, 'category_name' varchar(255) collate utf8_unicode_ci NOT NULL, PRIMARY KEY ('category_id') ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=7 ;
Umieściny także w tabeli przykładowe dane, które posłużą nam potem przy budowie bloga.
Kod PHP: INSERT INTO 'bloglm_category' VALUES (1, 'Wszystkie'); INSERT INTO 'bloglm_category' VALUES (2, 'Internet'); INSERT INTO 'bloglm_category' VALUES (3, 'Komputer'); INSERT INTO 'bloglm_category' VALUES (4, 'E-mail');
|
|
|
Tabela ze wpisami do bloga |
Napisane przez: Admin - 05-16-2025, 01:52 PM - Forum: Tabela ze wpisami do bloga
- Brak odpowiedzi
|
 |
Tabela o nazwie bloglm_blog będzie miała następujące pola:
- blog_id - zawierające numer ID każdego wpisu opublikowanego na stronie. Pole to będzie miało wartość int(11), atrybut auto_increment,
- blog_title - zawierające tytuł wpisu, ustawione na wartość varchar(150),
- blog_cont - będzie przeznaczone do wprowadzania treści wpisu, pole typu text,
- blog_autor - identyfikujące autora napisanego tekstu (może to być imię, nazwisko, pseudonim). Pole to powinno mieć wartość varchar(25),
- blog_read - będzie przechowywało wartość informującą o statystyce czytania danego wpisu. Pole to ustawiamy na wartość int(11),
- blog_time - będzie zawierało znacznik czasu z funkcji time(). Dla tego pola wystarczy długość varchar(10),
- blog_keyword - będzie zawierało słowa kluczowe dla danego wpisu. Wartość tego pola ustawiamy na varchar(255).
- blog_category - przeznaczone na numer kategorii, do której zaliczymy dany wpis w blogu, pole będzie typu int(11),
PRIMARY KEY ustawiamy na pole blog_id.
Kod PHP: CREATE TABLE 'bloglm_blog' ( 'blog_id' int(11) NOT NULL auto_increment, 'blog_title' varchar(150) collate utf8_unicode_ci NOT NULL, 'blog_cont' text collate utf8_unicode_ci NOT NULL, 'blog_autor' varchar(25) collate utf8_unicode_ci NOT NULL, 'blog_read' int(ll) NOT NULL default '0', 'blog_time' varchar(10) collate utf8_unicode_ci NOT NULL, 'blog_keyword' varchar(255) collate utf8_unicode_ci NOT NULL, 'blog_category' int(ll) NOT NULL, PRIMARY KEY ('blog_id') ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=75 ;
Za pomocą polecenia SQL INSERT INTO umieścimy w tabeli przykładowy wpis.
Kod PHP: INSERT INTO 'bloglm_blog' VALUES (74, 'Wpis w Blogu', 'Nowy wpis w blogu', 'admin', 4, '1192013294', 'słowa kluczowe', 1) ;
|
|
|
|