A cms php

Hello my fiatal kóder, ma és elkezdem írni a szerény CMS.
Szóval, hol kezdjük ... persze a design. Ez kell, hogy képes legyen / ne legyen hűvös, igénytelen CMS? Ez a kérdés igen összetett, hiszen Vajon a CMS, még a legegyszerűbb, van írva, hogy a konkrét igények: e-shop, programozók hely, egy híroldal, galéria (bár elvileg ez nem elég, képtár, CMS), stb Ebben a cikkben nézzük meg a második lehetőséget. Mit kell tudni egy ilyen CMS? Azt hiszem, mindenki egyetért velem, hogy:

Először rendezünk a könyvtár struktúrát a jövő site:
/ DocumentRoot
/ Adminpanel # Gyökérkönyvtár admin
/ Forrás # Scripts admin
/ HTML # Valójában a html oldalt, amely a felügyeleti ellenőrzés
/ Forrás # Scripts CMS
/ HTML # html
/ Kép # Pictures
/ Letöltések # könyvtárban tárolt összes letöltések
/ Config # konfigurációs fájlok CMS, például, amely a bejelentkezési és jelszó MySQL hozzáférést

Fájl kód index.php:

require_once ( 'config / database.php'); // Load a forgatókönyvet csatlakozik az adatbázishoz
require_once ( 'források / session.php'); // A szkript a felhasználói munkamenetek kezelése
require_once ( 'config / config.php'); // konfigurációs fájl
require_once ( 'források / check.php'); // Ellenőrzi kapott URL'a lehetőségek
require_once ( 'forrás / linkek'); // a linket az oldal navigációs

$ Act = check_act ($ hibakeresés); // függvény, hogy ellenőrizze a változó $ aktus van check.php fájl
$ Mod = @ $ _ GET [ 'mod']; // A változó $ mod
$ Site_links = get_links ($ mysql_tables); // Az tömb referenciák
switch ($ törvény)
case „idx”: // ha a látogató nézi a főoldalon
require_once ( 'források / news.php'); // Load a híreket script
$ Site_news = get_news ($ mysql_tables); // Az tömb hírek
require_once (HTML / index.htm '); // Load a html oldal
break;
>
?>

Fájl kód database.php:


$ Mysql_login = 'root'; // Felhasználó számára az adatbázis szerver
$ Mysql_pass = ''; // jelszó
$ Mysql_host = 'localhost'; // Host amelyen lóg MySQL
$ Mysql_database = 'MyCMS'; // Adatbázis neve

Fájl kód session.php:

if (! $ _ SESSION @ [ 'group_id']) // Ha a felhasználó éppen most ment
<
$ _SESSION [ 'user'] = 'Guest';
$ _SESSION [ 'id'] = 0;
$ _SESSION [ 'group_id'] = - 1;
$ _SESSION [ 'last_click'] = $ time;
>

if ($ _ SESSION @ [ 'group_id']<>„”) // ha a látogató nem egy vendég
<
$ _SESSION [ „last_click”] = $ time; // a jövőben mi figyelembe kell venni az online felhasználók az oldalon
>

Fájl kód check.php:


függvény check_act ($ hibakeresés) // ellenőrizze függvényváltozóba jogszabály
$ Act = @ $ _ GET [ 'aktus'];
if ($ jogszabály<>"Idx)
$ Act = $ debug [ 'indx_act']; // Mi az alapértelmezett érték
>
return $ jogszabály;
>

kódfájlhoz config.php:


// Állítsuk a hibajavító:
$ Debug [ „indx_act”] = „idx”; // Ha a fő script nem kapja meg a megfelelő értéket peremennnoy jogszabály arra kéri, hogy ezt az értéket

Fájl kód links.php:

függvény get_links ($ táblázat)
$ Query = "SELECT pozíció $ táblázat";
$ Eredmeny = mysql_query ($ query);
$ Rows = mysql_num_rows ($ eredmeny);
A ($ i = 0; $ i<$rows; $i++)
$ Sort_array [$ i] = mysql_result ($ eredmény, $ i);
>
sort ($ sort_array);
A ($ j = 0; $ j<$rows; $j++)
$ Pos = $ sort_array [$ j];
$ Query = "SELECT * FROM $ asztalhoz, ahol összesen = '$ pos";
$ Eredmeny = mysql_query ($ query);
$ Tmp_arr = mysql_fetch_array ($ eredmeny);
$ Linkek [$ j] [ 'name'] = $ tmp_arr [ 'name'];
$ Linkek [$ j] [ 'link'] = $ tmp_arr [ 'link'];
>
$ Hivatkozások [ 'sorok'] = $ sorok-1;
return $ linkek;
>

Itt elvileg már kis lépés kiderült :) Most elemzik a kódot egyes fájlok Elmagyaráztam a mechanizmus a munka. Tehát amit ellenőrizze a változó $ aktus, kérdezed? És képzeljük el, hogy valaki szeretne url'e megváltoztatni? A script nem működik következetesen és nagyon valós károkat adatokat, stb Természetesen ebben a példában, hogy játszik, hogy enyhén szólva, egy kisebb szerepet, de ne feledje, hogy meg kell nézni, hogy mindent lehet változtatni a felhasználó (még jobb, ha mi is ez, elvileg, és nem lehet megváltoztatni). Ha egy változót egy bal értéket rendelünk meg az alapértelmezett értéket, és így letörik káros kiddisov :)

Ez minden. By the way, olyan emberek, akik most ezt olvasod, valószínűleg vozmutyatsya: „Miért a kérelem nem használja az ORDER BY szerkezetet, és ne használjon csatolt táblázatok? Végtére is, ez leegyszerűsíti a feladatot!”. Az a tény, hogy a stílus az írás a scriptek, hogy maximalizálja a hordozhatóság, azaz Soha nem használja az összetett lekérdezések kapcsolatos táblázatok, stb Természetesen mindez rossz hatással van a sebesség a forgatókönyvet, és csatolni (nem túl világos kód), és ha azt szeretné, hogy a lehető legnagyobb termelékenységet rovására hordozhatóság, azt használja ezeket az eszközöket, de még mindig nem az én script mozgatásakor nem csak egy MySQL verzió a másikra, és a platformok, és / vagy a típus a web szerverek és adatbázis szerverek nem adtak az esetleges hibákat :) Mindenki szabadon azt tegye, amit akar, mert rajta és programozás: a lehetséges megoldást a problémára, és ugyanezzel az összeggel ember próbál meg határozottan s;)