[PHP] Multiviews - Werkt half

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hoi,
Ja ik heb de search gebruikt en al die topics doorgelezen, maar aangezien alles een _beetje_ oud is plaats ik een nieuwe.

Even een uitleg,

Ik heb een site, laten we er van uitgaan dat dat: beta.localhost.nl is.

Nu is multiviews enabled, en het werkt ook (half)
Probleem is dat mijn paginas NIET in de rootdir staan.

Ik roep zoiets op:
code:
1
2
3
4
5
if(isset($_SERVER['REQUEST_URI']) && $_SERVER['REQUEST_URI'] == '/index/nieuws') { 
require("pages/page-header.php"); 
require("pages/nieuws.php"); 
require("pages/page-footer.php"); 
}


Dat gebeurd er als ik /index/nieuws/1 aanroep, niks.. dan krijg ik de plaatjes niet meer, ik krijg niks te zien etc.
Nu las ik op Tweakzone dat dit:
code:
1
$ex = explode('/', $_SERVER["REQUEST_URI"]);

genoet zou zijn, en je zou er achter moeten komen wat wat is dmv van een echo uit te voeren naar $ex['2'];

Nu klopt dat, als ik daar een echo opzet krijg ik netjes "nieuws" te zien.
Nu moet het dus worden nieuws/id.
Nou hoef ik geen .htaccess aan te maken, want:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
<Directory /data/webhosting/noudan/noudan/public_html/noudan.nl/V3.1/>
    Options Indexes Includes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

<Directory /data/webhosting/noudan/noudan/public_html/noudan.nl/V3.1/pages/>
    Options Indexes Includes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>



Oké, in theorie zou dit moeten kloppen.. toch?

voorbeeld
Je moet tezien krijgen, iets met 'nieuws?'
gewoon een apart scherm ipv de begin pagina


laten we het hebben over : nieuws.php

code:
1
2
3
4
5
6
7
8
$cvar = explode('/' , $_SERVER['REQUEST_URI']); 
$see_nieuws = mysql_query("SELECT * FROM nx_nieuws WHERE nxn_nieuwsid = '$cvar[2]'"); 
while($getting_nieuws = mysql_fetch_array($see_nieuws)) {
echo $getting_nieuws[nxn_nieuwsid];
echo mysql_error();
}
echo "mke";
echo $cvar['2'];


Ik zou dus een reply terug moeten krijgen van die array,..
als ik ['2'] opvraag zonder /1 zie ik 'nieuws'


nu heb ik van '/index/nieuws' gemaakt '/index/nieuws/1'.
Dat werkt ook niet, oké... dat 'zou' een fout in mn server kunnen zijn.. toch?

maar als jullie boven kijken zou het toch écht wel goed moeten zijn.
Ik gebruik trouwens virtualhosts.. maar dat zou geen probleem moeten zijn


Heb geprobeerd zoveel mogelijk uit te leggen...
Hoop dat het genoeg is

[ Voor 7% gewijzigd door Verwijderd op 31-01-2005 19:57 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Verwijderd schreef op maandag 31 januari 2005 @ 19:54:
nu heb ik van '/index/nieuws' gemaakt '/index/nieuws/1'.
Dat werkt ook niet, oké... dat 'zou' een fout in mn server kunnen zijn.. toch?
Wat gebeurd er als je /index/nieuws/1 op vraagt? Krijg je een 404, dan is het een fout in de server(configuratie). Krijg je niet te zien wat je wilt hebben, dan is het een fout in het script.

Acties:
  • 0 Henk 'm!

  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 16:36
In apache2 heb je nog een zerver setting nodig die allow_path_info heet (uit mijn hoofd). Zoeken we even op, maar ik weet dat dit mij ooit hoofdbrekens heeft gekost omdat 99% van de tuts en faqs uitgaan van Apache 1.36 ofzo..

AcceptPathInfo was het dus:
code:
1
2
    Options all Multiviews
    AcceptPathInfo On

[ Voor 20% gewijzigd door T-MOB op 01-02-2005 02:44 ]

Regeren is vooruitschuiven


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
T-MOB schreef op dinsdag 01 februari 2005 @ 02:42:
In apache2 heb je nog een zerver setting nodig die allow_path_info heet (uit mijn hoofd). Zoeken we even op, maar ik weet dat dit mij ooit hoofdbrekens heeft gekost omdat 99% van de tuts en faqs uitgaan van Apache 1.36 ofzo..

AcceptPathInfo was het dus:
code:
1
2
    Options all Multiviews
    AcceptPathInfo On
Dat klopt, alleen ik draai apache 1.x :-)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Verwijderd schreef op dinsdag 01 februari 2005 @ 00:03:
[...]


Wat gebeurd er als je /index/nieuws/1 op vraagt? Krijg je een 404, dan is het een fout in de server(configuratie). Krijg je niet te zien wat je wilt hebben, dan is het een fout in het script.
Nope, ik krijg inderdaad niet te zien wat ik wil zien.
Maar het rare is, zeg ik REQUEST_URI == '/index/nieuws/1'
Dan krijg ik ook niks te zien, hij wil het echt alleen maar opvragen t/m 1.
Dus alleen /index/nieuws
dan krijg ik wel eventueele tekst etc.
Dat is juist het rare er van

Acties:
  • 0 Henk 'm!

  • MatHack
  • Registratie: Oktober 2001
  • Niet online

MatHack

Dev by day, Gamer by night

Zelf gebruik ik de volgende regel om de argumenten voor het script in een array te zetten:

PHP:
1
$ARGUMENTS = (empty($_SERVER['PATH_INFO'])) ? '' : explode('/', substr($_SERVER['PATH_INFO'], 1));


Je moet dus geen REQUEST_URI maar PATH_INFO gebruiken :)

There's no place like 127.0.0.1


Acties:
  • 0 Henk 'm!

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Verwijderd schreef op dinsdag 01 februari 2005 @ 09:13:
[...]

Nope, ik krijg inderdaad niet te zien wat ik wil zien.
Maar het rare is, zeg ik REQUEST_URI == '/index/nieuws/1'
Dan krijg ik ook niks te zien, hij wil het echt alleen maar opvragen t/m 1.
Dus alleen /index/nieuws
dan krijg ik wel eventueele tekst etc.
Dat is juist het rare er van
Maak eens een dump van alle server variables, dan kan je gelijk zien welke info je binnen krijgt.

Programmer - an organism that turns coffee into software.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
LuCarD schreef op dinsdag 01 februari 2005 @ 09:44:
[...]


Maak eens een dump van alle server variables, dan kan je gelijk zien welke info je binnen krijgt.
bedoel je php info?
of alles wat $_SERVER te bieden heeft...
t probleem is dat als ik /index/nieuws laad, krijg ik wat met met / er achter niks meer

in de logs
- - [07/Feb/2005:15:59:04 +0100] "GET /index/nieuws/1 HTTP/1.0" 200 8470

[ Voor 13% gewijzigd door Verwijderd op 07-02-2005 16:00 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
MatHack schreef op dinsdag 01 februari 2005 @ 09:23:
Zelf gebruik ik de volgende regel om de argumenten voor het script in een array te zetten:

PHP:
1
$ARGUMENTS = (empty($_SERVER['PATH_INFO'])) ? '' : explode('/', substr($_SERVER['PATH_INFO'], 1));


Je moet dus geen REQUEST_URI maar PATH_INFO gebruiken :)
zit even naar je scriptje te kijken..
maar path_info is toch /data/webhosting/etc/etc/etc/etc/ iig, waar mn site staat?

Acties:
  • 0 Henk 'm!

  • PowerSp00n
  • Registratie: Februari 2002
  • Laatst online: 19-08 08:24

PowerSp00n

There is no spoon

Verwijderd schreef op maandag 07 februari 2005 @ 16:09:
[...]

zit even naar je scriptje te kijken..
maar path_info is toch /data/webhosting/etc/etc/etc/etc/ iig, waar mn site staat?
Probeer het uit? (nee)

Acties:
  • 0 Henk 'm!

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Verwijderd schreef op maandag 07 februari 2005 @ 15:58:
[...]

bedoel je php info?
of alles wat $_SERVER te bieden heeft...
t probleem is dat als ik /index/nieuws laad, krijg ik wat met met / er achter niks meer

in de logs

[...]
alleen $_SERVER en $_ENV is voldoende. ( deze staan ook in phpinfo )

Programmer - an organism that turns coffee into software.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
LuCarD schreef op maandag 07 februari 2005 @ 16:42:
[...]


alleen $_SERVER en $_ENV is voldoende. ( deze staan ook in phpinfo )
Klopt, ik heb eventjes gekeken.. ben aan de ene kant iets verder. maar aan de andere kant nou weer niet.

nu weet ik niet of het mogelijk is met die regel.

http://beta.noudan.nl/nieuws/1

/1
testttttttttttttttttttt

Dat is prima, nu moet ik nog kijken hoe ik zeg: kijk in de database zonder de '/'
tweede probleem is dat de pagina eigenlijk moest laden in de 'main' gedeelte van de site...

klopt het nu net als vroeger in html, dat je bij elke pagina moet neerzetten.. include header etc..
dus eigenlijk de pagina 10 keer bouwen?
Want hij moet natuurlijk de hele content er omheen zetten..
Pagina: 1