Prvo, koja je ideja; Ideja mi je da napravim dobar cms ili framework i spasim buduće kreatore da razmisljaju u kom folderu im je sajt, koje varijable su dostupne, koje nisu i glavno pitanje, Sta ako korisnik unese neki cudan url, ne zelimo izvestaj o gresci, vec sve prosledjujemo u index.php
Zato sam koristio ove globalne varijable i sredio htaccess koji moze da razume svaki namerno pogresen url. Dakle:
.htaccess:
Code:
Options All -Indexes
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^(.*)$ index.php?path=$1
</IfModule>
Options All -Indexes
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^(.*)$ index.php?path=$1
</IfModule>
Napomena, stavio sam -Indexes jer ne želim da mi se neko švrćka po folderima i fajlovima na sajtu. A u folder koji zelimo da predstavimo publici, smestimo .htaccess sa +Indexes.
Ovo je PHP kod:
Code:
<?php
function Vars() {
$folder = $_SERVER['SCRIPT_NAME'];
$folder = explode ('/', $folder);
$folder = array_slice($folder, 0, -1);
$folder = implode('/', $folder);
$folder = $folder.'/';
$lf = strlen($folder);
$path = $_SERVER['REQUEST_URI'];
$path = substr($path, $lf);
$path = explode('/', $path);
$vars[0] = $folder;
$vars[1] = $path;
return $vars;
}
// korišćenje
$vars = Vars();
$root = $vars[0];
$var1 = $vars[1][0];
$var2 = isset($vars[1][1]) ? $vars[1][1] : '';
$var3 = isset($vars[1][2]) ? $vars[1][2] : '';
$var4 = isset($vars[1][3]) ? $vars[1][3] : '';
echo "Root folder: ".$root."<br>";
echo "Varijabla 1: ".$var1."<br>";
echo "Varijabla 2: ".$var2."<br>";
echo "Varijabla 3: ".$var3."<br>";
echo "Varijabla 4: ".$var4."<br>";
echo "itd...";
?>
<?php
function Vars() {
$folder = $_SERVER['SCRIPT_NAME'];
$folder = explode ('/', $folder);
$folder = array_slice($folder, 0, -1);
$folder = implode('/', $folder);
$folder = $folder.'/';
$lf = strlen($folder);
$path = $_SERVER['REQUEST_URI'];
$path = substr($path, $lf);
$path = explode('/', $path);
$vars[0] = $folder;
$vars[1] = $path;
return $vars;
}
// korišćenje
$vars = Vars();
$root = $vars[0];
$var1 = $vars[1][0];
$var2 = isset($vars[1][1]) ? $vars[1][1] : '';
$var3 = isset($vars[1][2]) ? $vars[1][2] : '';
$var4 = isset($vars[1][3]) ? $vars[1][3] : '';
echo "Root folder: ".$root."<br>";
echo "Varijabla 1: ".$var1."<br>";
echo "Varijabla 2: ".$var2."<br>";
echo "Varijabla 3: ".$var3."<br>";
echo "Varijabla 4: ".$var4."<br>";
echo "itd...";
?>
Moguće je ugraditi kod u korisnu klasu, ali ono sto nisam pomenuo, ovaj kod mora biti prisutan u index.php, da li sa require ili direktno, sve jedno je. Dalji razvoj projekta podrazumeva da sve ubacujete u index.php i nema drugih headera i posebnih fajlova. I da, root folder se automatski namesta, ova dva fajla mozete staviti bilo gde u podfolder ili root, uvek varijable i root imaju istu vrednost, tj, onu koja odgovara.
### Ono što je bitno, spreman sam za komentare i poboljsanja ###