Avatar billede Jonas Nybegynder
22. januar 2009 - 22:31 Der er 3 kommentarer og
1 løsning

Url design og kode dertil - optimering / forslag

Hej.
Er i gang med at lave et lille framework og er i gang med url routing delen har lige nu lavet det således at jeg laver url´en om til et array og derefter loader de forskellige ting så fx følgende url
http://www.example.com/categories.php/vis/users/
Bliver klassen 'vis' og funktionen users (som ligger i vis) kaldt.

Koden er som følger

    function url()
    {

        $request = preg_replace("|/*(.+?)/*$|", "\\1", $_SERVER['PATH_INFO']);
        $uri = explode('/', $request);

        $valid_modules = array('login', 'forum', 'bruger');
        if (empty($uri[0])) {
            $uri[0] = login;
            $uri[1] = view;
        }

        if (in_array($uri[0], $valid_modules)) {
            $controller = new $uri[0];
            return $controller->{$uri[1]}();
        } else
            return "Modulet $uri[0] ikke godkendt  (Vis 404 side her.))";
    }

Er dette den optimale måde at gøre det på ? eller er der sikkerhedsmæssige ting eller andre ting jeg skal tage højde for.

Ville i evt. gribe det an på en helt anden måde ?
alle indput og tanker er velkomne.
Avatar billede tmi Nybegynder
23. januar 2009 - 23:25 #1
"Ville i evt. gribe det an på en helt anden måde ?"

Ja, brug .htaccess
Avatar billede Jonas Nybegynder
23. januar 2009 - 23:50 #2
med .htaccess går jeg ud fra at du mener mod_rewrite ??
Ja det kunne jeg selvfølgelig godt, har et forslag til hvordan jeg smartest og sikrest muligt får loadet mine moduler ?
Avatar billede tmi Nybegynder
24. januar 2009 - 12:26 #3
Mit forslag er at du ikke bruger klasser, da det er fuldstændig meningsløst i PHP web, det fungerer nemlig rigtig dårligt. Dog med undtagelse af nogle template/database klasser. I stedet så ville jeg nok gøre sådan, .htaccess:

RewriteEngine On
RewriteRule ^/kategorier/vis/brugere$ /cat/show_users.php
RewriteRule ^/kategorier/vis/artikler$ /cat/show_articles.php
RewriteRule ^/kategorier/vis/tags$ /cat/show_tags.php
RewriteRule ^/kategorier/vis/whatever$ /cat/show_whatever.php

Hver af filerne ville så ca. se sådan her ud, show_whatever.php:
<?
include("../header.php");

$data = array();
$q = mysql_query("SELECT something FROM whatever");
while ($d = mysql_fetch_assoc($q)) $data[] = $d;
$template->assign_by_ref("data", $data);

$template->assign("content", $template->fetch("templates/show_whatever.tpl"));

$template->display("../main_template.tpl");

?>

Se evt. www.smarty.net , det er en god template klasse.
Avatar billede Jonas Nybegynder
07. oktober 2009 - 06:40 #4
Tid til at lukke
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester