Multiview PHP

Pagina: 1
Acties:
  • 288 views sinds 30-01-2008

Acties:
  • 0 Henk 'm!

  • Av3ng3rtje
  • Registratie: December 2002
  • Laatst online: 18-08 10:15
Hey,

Ik wil graag op me site urls zoals www.gamer.nl, www.tweakzone.nl

Een voorbeeld:

www.mydomain.com/forum/34676

Alleen nu is de vraag hoe doe ik dat ? Op web-con.nl heb ik al gekeken en daar stond een tutorial erover maar als ik dan bijvoorbeeld /forum/2 doe krijg ik interall server error

Kan iemand mij een goede en precieze beschrijving hier van geven

BVD.

Acties:
  • 0 Henk 'm!

Verwijderd

Tja ik wist er een, maar dat is web-con.nl.
Ik denk dat je iets fout doet, post je scripts+htaccess eens.

Acties:
  • 0 Henk 'm!

Verwijderd

Je weet al dat het met multiviews te maken heeft. Op www.apache.org is genoeg documentatie te vinden hoor :) Tip: die errors komen door het feit dat de webserver ook geconfigureerd moet zijn om met multiviews te werken :)

Acties:
  • 0 Henk 'm!

  • Av3ng3rtje
  • Registratie: December 2002
  • Laatst online: 18-08 10:15
Ik heb in de config Options +MultiViews gezet en <Location /forum>
DirectoryIndex site
ForceType application/x-httpd-php
</Location>

En me bestand forum is:

<?php
$path_array = split("/", $PATH_INFO);
if((count($path_array) % 2))
{
$i = 1;
while($i < count($path_array))
{
$var = $path_array[$i];
$i++;
$$var = $path_array[$i];
$var_name = $$var;
$i++;
echo("$var is $var_name!<BR>");
}
}
?>

Ik krijg dan een interall server error al doe ik /forum/topic/1 bv

Acties:
  • 0 Henk 'm!

Verwijderd

De search doet wonderen, is nog geen week geleden voorbij gekomen. Maar goed om je verder te helpen, hier kun je het leren: http://www.stickysauce.com/tutorials/misc/mod1.htm
Succes!!

Acties:
  • 0 Henk 'm!

Verwijderd

http://www.web-con.nl/site/tutorials.php?tutorial=255

Zie hier :)

Topic is gemeld in SeM ([rml][ PW] 'Multiviews' = search-vraagje[/rml]), omdat hier al genoeg info over te vinden is lijkt mij

Acties:
  • 0 Henk 'm!

  • Av3ng3rtje
  • Registratie: December 2002
  • Laatst online: 18-08 10:15
Ik zei al dat web-con.nl niet werkt

Acties:
  • 0 Henk 'm!

  • dArtagnan
  • Registratie: Mei 2002
  • Laatst online: 23-08 22:47

dArtagnan

Een voor allen, allen voor een

Probeer eens het <location> gedeelte uit je .htaccess eruit te halen.

Acties:
  • 0 Henk 'm!

  • Av3ng3rtje
  • Registratie: December 2002
  • Laatst online: 18-08 10:15
Er staaat geen <location> in me config of htacces

Acties:
  • 0 Henk 'm!

  • dArtagnan
  • Registratie: Mei 2002
  • Laatst online: 23-08 22:47

dArtagnan

Een voor allen, allen voor een

Wat is dit dan:
Location /forum>
DirectoryIndex site
ForceType application/x-httpd-php
</Location>

Acties:
  • 0 Henk 'm!

  • Av3ng3rtje
  • Registratie: December 2002
  • Laatst online: 18-08 10:15
Dit heb ik later weer verwijderd.

Acties:
  • 0 Henk 'm!

  • dArtagnan
  • Registratie: Mei 2002
  • Laatst online: 23-08 22:47

dArtagnan

Een voor allen, allen voor een

Krijg je ook een internal server error als je het probeert met een lege pagina?

Acties:
  • 0 Henk 'm!

  • Av3ng3rtje
  • Registratie: December 2002
  • Laatst online: 18-08 10:15
Ik had toennet de volgende code in een .htaccess file gezet en dan op mijn server gezet, nu kreeg ik bij ELKE pagina een interall server error.
Options +MultiViews
<Location /forum>
DirectoryIndex site
ForceType application/x-httpd-php
</Location>

Maakt het wat uit of het in een htaccess staat of in config file ? (denk het niet maarja)

Acties:
  • 0 Henk 'm!

Verwijderd

Av3ng3rtje schreef op 02 February 2003 @ 19:14:
[...]


Ik zei al dat web-con.nl niet werkt
Hier anders wel? Anders hier de page (lang!):
Multiviews, mooie URL's
Deze tutorials is gemaakt voor mensen die hun URLs (URIs) mooi willen hebben, zonder '.php', '?' en '&'. Zo'n url bijvoorbeeld:

www.blaat.com/forum/listtopics/3808714

Ik ben op zoek geweest naar oplossingen voor dit probleem, en de volgende was het beste: Multiview. Multiview houdt in dat je je url 'mooi' houdt. Het is ook nog eens goed voor het indexeren met zoekmachines; die willen nog wel eens .php bestanden maar één keer indexeren, dus bijvoorbeeld www.blaat.com/forum/listtopics.php indexeren ze, maar www.blaat.com/forum/listtopics.php?xxx=blaat nemen ze dan niet; dat is om ervoor te zorgen dat de spider niet in een oneindige loop terechtkomt.
Je hebt voor Multiview een "virual directory" nodig. Je maakt er een door iets toe te voegen in httpd.conf. Httpd.conf is een configfile die in je apache/conf directory staat. (als je een andere server draait of niet bij httpd.conf kunt komen is er wel een andere oplossing, maar daar maak ik misschien nog wel een keer een andere tutorial over.)

Voeg het volgende toe, het liefst aan het einde van het bestand om 't weer snel terug te kunnen vinden:


Code:
--------------------------------------------------------------------------------
<Location /forum>
DirectoryIndex site
ForceType application/x-httpd-php
</Location>
--------------------------------------------------------------------------------


Als je dat gedaan hebt, maak je het bestand forum aan.

!let op! Noem de file NIET forum.php. Apache zoekt namelijk naar het bestand forum, zonder iets er achter.

[voorbeeld 1]
Je voegt de volgende regels toe in het bestand forum:


PHP:
--------------------------------------------------------------------------------
<?

<?php
$path_array = split("/", $PATH_INFO);
if((count($path_array) % 2))
{
$i = 1;
while($i < count($path_array))
{
$var = $path_array[$i];
$i++;
$$var = $path_array[$i];
$var_name = $$var;
$i++;
echo("$var is $var_name!<BR>");
}
}
?>

?>
--------------------------------------------------------------------------------

$PATH_INFO is alles wat achter je filename in de url komt. Dat is dus in het geval
van 'www.blaat.com/forum/listtopics/38274280'
/listtopics/38274280. De split is om de informatie uit elkaar te halen.
De if is om te valideren of we een geldig aantal argumenten (2)
hebben.
Dan gaan we verder met een while loopje die alle informatie uit de url haalt. In dit geval dus de naam van de variabele (listtopics) en de informatie in de variabele (38274280).
$var_name = $$var; hoeft niet in je source te staan als je de informatie op deze manier probeert te echo'en, maar mijn PHP slikt $$ in een echo niet.
[/voorbeeld 1]

[voorbeeld 2]
Je voegt de volgende regels toe in het bestand forum:

PHP:
--------------------------------------------------------------------------------
<?

<?
$path_array = split("/", $PATH_INFO);
$file_path = "$path_array[1]".".php";

$i = "2";
$j = "0";
while($i < count($path_array))
{
$info[$j] = $path_array[$i];
$i++;
$j++;
}

if(file_exists($file_path))
{
include("$file_path")
}

?>

?>
--------------------------------------------------------------------------------


$PATH_INFO is alles wat achter je filename in de url komt. Dat is dus in het geval van 'www.blaat.com/forum/listtopics/38274280'
/listtopics/38274280. De split is om de informatie uit elkaar te halen.
De while-loop zorgt ervoor dat je om de variabelen eruit te halen, niet iedere keer om die 2 hoeft te denken; $path_array[2] wordt $info[0], $path_aray[3] wordt $info[1] etc. Op die manier is het makkelijker om andere while-loopjes te maken. Wil je echter een beetje snelheid besparen, kun je dit eruit houden. Je informatie is nu ook uit je file gehaald.
De computer kijkt nu of de file (listtopics.php) bestaat, en zo ja dan wordt die geopend. (in dit geval hoef je dus niet bang te zijn dat ze je kostbare source van listtopics jatten, maar het is wel wat moeilijker).
[/voorbeeld 2]

Ik heb je nu een opstapje gegeven om in je eigen website MultiView te gebruiken. Mail mij op okke.formsma@planet.nl als je nog iets leuks hebt gevonden over Multiview. Post hieronder als je commentaar en vragen hebt.
Succes :)

Acties:
  • 0 Henk 'm!

Verwijderd

PHP:
1
2
3
4
5
6
7
8
9
10
11
function parseURL(&$uri) {
        $uri_parsed = parse_url($uri);
        $uri_explod = explode("/", $uri_parsed['path']);
        $s          = 2;
        
        $uri_names  = array("cat", "action", "id", "pageid");
        for ($i=0;$i<(count($uri_explod)-2);$i++) {
            $uri_new[$uri_names[$i]]    = $uri_explod[$i+2];
        }
        return $uri_new;
    }
Mijn code voor multiviews :)

Ik gebruik (zoals je ziet) ook een array om een makkelijkere verwerking makkelijker te maken :)

Oh ja, $uri = $_SERVER['REQUEST_URI']

[ Voor 14% gewijzigd door Verwijderd op 02-02-2003 19:49 ]


Acties:
  • 0 Henk 'm!

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 02-09 11:02

D2k

ff searchen svp

Doet iets met Cloud (MS/IBM)

Pagina: 1

Dit topic is gesloten.