Hallo allemaal, hier Rowan weer. Nadat ik de vorige keer zo goed en snel ben geholpen heb ik besloten hier weer te posten.

Het is me gelukt om een redelijk veilig, snel en simpel PHP/MySQL gastenboek te creƫren, met behulp van diverse scripts van het Internet te combineren.

Mijn laatste implementatie was pagination. Na veel moeilijkheden en onderzoek doen is het me gelukt een pagina systeem in mijn gastenboek te krijgen. Waarom vertel ik dit allemaal? Omdat ik er supertrots op ben =D


Maar nu mijn probleem dus:

Mijn gastenboek wordt (zoals alle andere pagina's op mijn site) ge-include in een content div. De include werkt als volgt:


  <?php
  $paginas = array('news','biography','discography','shows','contact','biografie','guestb','gbcheck','301107_bakkerij');

  if (isset($_GET['page']) && !empty($_GET['page']))
  {
      if(in_array($_GET['page'], $paginas) && file_exists($_GET['page'].'.php')) include($_GET['page'].'.php');
  else echo "The page you are trying to visit cannot be found on this server.";
  }
  else include("news.php");
  ?> 


Je ziet dat dankzij de array de opgevraagde pagina's worden gecontroleerd op of ze wel "bestaan". Zo niet, krijgt de gebruiker een error.

En dit is nu juist het probleem. Ik wil dus dat mijn pagination url's ook worden toegelaten. Maargoed ik kan natuurlijk moeilijk heel de array volgooien met het aantal gastenboek pagina's.

Pagination url's zien eruit als: index.php?page=guestb?p=1

Even in leken termen, wat ik dus wil is: array('guestb','guestb?p='elk-getal-mogelijk')

Zo werkt het natuurlijk niet, maar ik hoop dat ik duidelijk genoeg ben.


Alvast bedankt!


EDIT: Hm, volgens mij klopt mijn eigen "oplossing" niet eens, omdat hij dan dus opzoek zou gaan naar "index.php?page=guestb?p=1.php"...

help =/ ?
Het al dan niet bestaan van een bestand, heeft niks te maken met een parameter die je meegeeft. ?p='elk-getal-mogelijk' wil je dus niet controleren als bestand (het is geen bestand), maar gewoon als GET-parameter.

<?php
if(isset($_GET['p']) && ctype_digit($_GET['p'])){
// do something
}
else {
// do something else
}
?>
Dit heeft niks met het bestand te maken. Pas je logica dus aan, je zit op het verkeerde pad.
Volgens mij komt wat je zei overeen met mijn edit. Zou je mij op weg kunnen helpen met hoe ik de include kan aanpassen (ben nogsteeds geen kei in PHP sorry).

Of zit ik nogsteeds op het verkeerde spoor?
index.php?page=guestb?p=1
Dit klopt sowieso al niet. Dat zou:

index.php?page=guestb&p=1

moeten zijn. Verder ga je die GET variabele 'p' gebruiken in je guestb.php om de paginering te verzorgen...
"index.php?page=guestb&p=1"

Die & was de oplossing!! Dank jullie wel ik hou van dit forum :D !


Echt hartstikke bedankt.

Reageren