login  Naam:   Wachtwoord: 
Registreer je!
 Forum

pagina ophalen

Offline prienstra - 07/06/2009 20:04
Avatar van prienstraMySQL interesse Beste mensen,

Ik haal pagina's op door de volgende methode (via htaccess):

http://www.***.nl/pagina/2/contact.html

de echte url is dan:

http://www.***.nl/pagina.php?pagina_id=2

Nu kan je voor contact.html alles invullen ook bijvoorbeeld:

http://www.***.nl/pagina/2/blabla.html

Is er een manier om dit te voorkomen? In de database heeft de pagina pagina_id =2 en titel = contact.

11 antwoorden

Gesponsorde links
Offline Koen - 07/06/2009 20:07
Avatar van Koen PHP expert Kijk eens naar de inhoud van $_SERVER['REQUEST_URI'], dan zie je vanzelf wel hoe je het kan oplossen 
Offline prienstra - 07/06/2009 20:29
Avatar van prienstra MySQL interesse Kan dat ook met pagina's met - tussen woorden:

http://www.***.nl/fietsen/2/fiets-met-ketting.html

in database:
fiets_id = 2
Titel = fiets met ketting

met pretty url worden de - geplaatst.
Offline Koen - 07/06/2009 20:35
Avatar van Koen PHP expert Als je dat vraagt dan denk ik niet dat je hebt bekeken wat "$_SERVER['REQUEST_URI']" geeft...
Offline Wim - 08/06/2009 12:15
Avatar van Wim Crew algemeen Je kan contact.html ook statisch in je .htaccess zetten :-) Zo worden alle andere url's niet herschreven en zullen ze een 404 error opleveren.
Offline prienstra - 08/06/2009 14:21
Avatar van prienstra MySQL interesse Bij "$_SERVER['REQUEST_URI']" krijg ik

/fietsen/2/tonen/fiets-met-ketting.html

Maar hoe kan ik dan oplossen dan ik er niet van kan maken:

/fietsen/2/tonen/klote-fiets.html
Offline maigel - 08/06/2009 14:27 (laatste wijziging 08/06/2009 14:33)
Avatar van maigel PHP beginner bedoel je dit?:
  1. if( $_SERVER['REQUEST_URI'] != "/fietsen/2/tonen/fiets-met-ketting.html" )
  2. {
  3. die("Verkeerde pagina!");
  4. }


als je met de titel in je database wilt werken kan je dit doen
  1. $titel = //titel die je uit database haalt
  2. $pagina = explode("/", $_SERVER['REQUEST_URI']);
  3. $paginastripped = str_replace( "-", " ", $pagina[sizeof($pagina)] );
  4. if( $paginastripped != $titel )
  5. {
  6. die("Verkeerde pagina!");
  7. }

Offline prienstra - 08/06/2009 14:39 (laatste wijziging 08/06/2009 15:12)
Avatar van prienstra MySQL interesse ik heb nu zoiets:

  1. list($fiets_id, $naam) = mysql_fetch_array(mysql_query("SELECT fiets_id, naam FROM fietsen WHERE fiets_id = '$id';"));
  2. $titel = $naam ;
  3. $naam1 = prettyurl ($titel);
  4. $pagina = $_SERVER['REQUEST_URI'];
  5. if( $pagina != /fietsen/$fiets_id/tonen/$naam1 );
  6. {
  7. die("Verkeerd pagina");
  8. }


Maar nu geeft ie nog een error voor de /, is daar een code voor omdat op te lossen?
Offline SvenP - 08/06/2009 15:14 (laatste wijziging 08/06/2009 15:15)
Avatar van SvenP PHP interesse
  1. if( $pagina != "/fietsen/$fiets_id/tonen/$naam1" );

een string in (dubbel)quotes hangen is wel handig 

edit, betere oplossing:
  1. if( $pagina != "/fietsen/".$fiets_id."/tonen/".$naam1 );

Offline prienstra - 08/06/2009 15:31
Avatar van prienstra MySQL interesse dat is raar, het werkt niet.

  1. $id = ($_GET["id"]);
  2. list($fiets_id, $naam) = mysql_fetch_array(mysql_query("SELECT fiets_id, naam FROM fietsen WHERE fiets_id = '$id';"));
  3. $titel = $naam ;
  4. $naam1 = prettyurl ($titel);
  5. $pagina = $_SERVER['REQUEST_URI'];
  6. if( $pagina != "/fietsen/".$fiets_id."/tonen/".$naam1 );
  7. {
  8. die("Verkeerde pagina");
  9. }


ik blijf krijgen "verkeerde pagina" maar $pagina is gelijk aan "/fietsen/".$fiets_id."/tonen/".$naam1
Offline Koen - 08/06/2009 17:31
Avatar van Koen PHP expert Ben je .html erachter niet vergeten?

Doe anders eens
  1. echo "/fietsen/".$fiets_id."/tonen/".$naam1;
Offline prienstra - 08/06/2009 18:33
Avatar van prienstra MySQL interesse nee pretty url plaatst .html erachter
Is er geen makkelijkere oplossing met htaccess?
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.253s