[PHP] Navigeren met PHP

Pagina: 1
Acties:
  • 253 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • uppie8374
  • Registratie: Maart 2002
  • Laatst online: 16-09 13:22
Ik heb al een hoop site's afgezocht inclusief GoT, maar nog steeds niet echt gevonden wat ik zocht.
Ik zal eerst even het probleem schetsen;

De index.php include de bestanden header.php (header), left.php (linker navigatie), right.php (rechter navigatie) en heeft als body switch het volgende
PHP:
1
2
3
4
5
6
7
8
9
10
<?php
  $allowedpages=array("errordoc.php","1.php","2.php","3.php","4.php","5.php"); 

  if (isset($id) && in_array("$id.php",$allowedpages)&& file_exists("Php/".$id.".php")  ){ 
    include ($allowedpages[$id]);
  }
  else{ 
    include("Php/errordoc.php"); 
  } 
?>


In de index wordt ook $id aangemaakt met waarde 1.

Als ik nu echter wil navigeren gebruik ik dit soort links
PHP:
1
<a href='index.php?id=<?php echo ($id=2); ?>'>ONROEREND GOED</a>

Het probleem hiervan is dat de originele $id wordt overschreven nog voordat ik 1.php als pagina op het scherm heb. Dit is probleem 1.

Aangezien ik ook 2 pijlen wil gebruiken (links en rechts) om chronologisch door de pagina's te wandelen (links van 5 naar 4, 4 naar 3, enz en rechts van 1 naar 2, 2 naar 3, enz), moet $id wel continu overschreven worden om te bepalen waar de pijlen links en rechts naar verwijzen.

Als code voor de pijlen had ik
PHP:
1
2
3
 <a href='index.php?id=<?php --$id; echo $id; ?>'>
    [img]'Images/larrow2.jpg'[/img]
  </a>

en
PHP:
1
2
3
  <a href='index.php?id=<?php ++$id; echo $id; ?>'>
    [img]'Images/rarrow2.jpg'[/img]
  </a> 


Ik hoop dat ik het probleem enigszins duidelijk heb opgeschreven.

Rebuilding knowledge database


Acties:
  • 0 Henk 'm!

  • mocean
  • Registratie: November 2000
  • Laatst online: 04-09 10:34
Ik snap echt heel weinig van je probleem. En de code is hier en daar ook wat raar.

Je kan toch doen:
$id=$_GET['id']; // Zet de gevraagde id

En ipv van dit
PHP:
1
<a href='index.php?id=<?php echo ($id=2); ?>'>ONROEREND GOED</a>

Kan je toch gewoon doen:
<a href='index.php?id=2>'>ONROEREND GOED</a>

en van die pijlen begrijp ik echt helemaal niks :-)

[ Voor 26% gewijzigd door mocean op 04-02-2005 19:38 . Reden: GET bedoel ik ja :-) ]

Koop of verkoop je webshop: ecquisition.com


Acties:
  • 0 Henk 'm!

  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 21-08 11:20
Bedoel je niet $_REQUEST['id']; , mocean?

We are shaping the future


Acties:
  • 0 Henk 'm!

  • seamus21
  • Registratie: December 2001
  • Laatst online: 24-02-2018
Bedoel je niet $_GET['id'] Alex? :) Request is een verzamel voor GPC variabelen. Het is netter om gelijk toe te spitsen op de variable die je echt wil hebben en veiliger.

Voor meer info:
http://www.php.net/manual....variables.predefined.php

[ Voor 5% gewijzigd door seamus21 op 04-02-2005 19:28 ]

Always shoot for the moon. Even if you miss you will land among the stars...


Acties:
  • 0 Henk 'm!

  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 21-08 11:20
Kan ook, maar als je niet weet wat je kunt verwachten, is REQUEST toch wel handig...

Bij een formulier met als method="post" bijvoorbeeld...

We are shaping the future


Acties:
  • 0 Henk 'm!

Verwijderd

Alex schreef op vrijdag 04 februari 2005 @ 19:28:
Kan ook, maar als je niet weet wat je kunt verwachten, is REQUEST toch wel handig...

Bij een formulier met als method="post" bijvoorbeeld...
Maar hier weet je wel wat je kunt verwachten dus kun je beter $_GET gebruiken.

Van het verhaal van de TS snap ik idd ook weinig, dus misschien kan hij het wat beter uitleggen?

Acties:
  • 0 Henk 'm!

Verwijderd

seamus21 schreef op vrijdag 04 februari 2005 @ 19:25:
Bedoel je niet $_GET['id'] Alex? :) Request is een verzamel voor GPC variabelen. Het is netter om gelijk toe te spitsen op de variable die je echt wil hebben.
Netter? Dat is onzin. Als het je totaal niet uitmaakt hoe die variabelen er komen kun je prima $_REQUEST gebruiken. Flexibiliteit.

Voor belangrijke scripts gebruik je POST requests en dus $_POST omdat je niet wilt dat iemand met een klik op een link iets kan doen. Verder maakt het vaak niet eens zoveel uit of iets er met een GET request, een POST request of zelfs vanuit een cookie komt.

Is het belangrijk dan ben je expliciet, zo niet kun je het prima een beetje flexibel houden.

Acties:
  • 0 Henk 'm!

  • seamus21
  • Registratie: December 2001
  • Laatst online: 24-02-2018
Ja doh als het je geen moer kan schelen kan je nog wel 180 methoden verzinnen. Ik wil alleen maar de mensen wat aanleren. Als je REQUEST zomaar gebruikt betekent dat personen ook een var via POST en COOKIE kunnen sturen terwijl jij hem misschien helemaal niet op die manier verwacht en afhandeld....

Probeer nou niet altijd gelijk maar een post neer te zetten alleen maar voor het posten. Je weet net zo goed als ik dat het gewoon beter is om sommige dingen al vanaf meet aan te doen en niet eerst maar ff de simpele manier omdat het toch niet uithaald.

[ Voor 31% gewijzigd door seamus21 op 04-02-2005 19:58 ]

Always shoot for the moon. Even if you miss you will land among the stars...


Acties:
  • 0 Henk 'm!

  • wasco
  • Registratie: April 2003
  • Laatst online: 20-09 12:25

wasco

brightest crayon in the box

ik steun seamus in zijn betoog

en TS, ik begrijp zoals de rest niet echt goed wat je nu exact wil weten

wasco [the brightest crayon in the box]


Acties:
  • 0 Henk 'm!

  • cavey
  • Registratie: Augustus 2000
  • Laatst online: 29-05 01:29
TS zit gewoon erg vaag te coden.

Als hij nou eens eerst de basis principes van variabelen toewijzen onder de knie gaat krijgen.

Beetje midden in je code een $id=2 gaan echo'n.. DAT WERKT NIET heh!!! Dan overschrijf je inderdaad je $id met de waarde 2... en dan ben je die 1.php of whatever inderdaad kwijt.

Ga wat netter je variabelen huiswerk doen, dan zal het een stuk vlotter gaan.


toevoeging:
Dat je zuinig wilt omspringen met je variabelen is bewonderenswaardig: beetje optimaliseren kan nooit kwaad.

MAAR DO NOT OVER DO IT. Sjies....... een enkel $id gaan gebruiken voor allerlei dingen, een echo ervan maken met een nieuwe assign en dan verwachten dat je de oude waarde nog hebt 8)7

Ga dan gewoon meer variabelen gebruiken :Y)

[ Voor 33% gewijzigd door cavey op 04-02-2005 20:20 ]


Acties:
  • 0 Henk 'm!

  • uppie8374
  • Registratie: Maart 2002
  • Laatst online: 16-09 13:22
Ok in ieder geval alvast bedankt voor de reacties. Ik zal proberen de situatie wat beter uit te leggen.

$id bepaald zoals jullie al begrepen hadden welke pagina er in het midden wordt geladen.

Nu heb ik standaard links op mijn pagina staan die naar vaste pagina's verwijzen. Zoals bijvoorbeeld
PHP:
1
<a href='index.php?id=<?php echo ($id=2); ?>'>bla bla bla</a>

Elke keer als er op deze link geklikt wordt zal pagina 2 geladen worden.

Bij de pijlen is het echter afhankelijk van de pagina die nu geladen is. Sta je op pagina 3 bijvoorbeeld dan zal de linkerpijl je naar pagina 2 brengen en de rechterpijl je naar pagina 4 brengen.

$id dient dus altijd bijgehouden te worden. Want wordt er op een vaste link naar pagina 6 gegaan bijvoorbeeld, dan dient de linkerpijl je naar pagina 5 te brengen en de rechterpijl naar pagina 7.

Het probleem is alleen dat elke keer dat er een link aangeklikt wordt en de pagina dus opnieuw wordt geladen de nieuw opgegeven waarde niet blijft hangen omdat ik bij de links $id een waarde geef. De laatste waarde blijft hangen.

Dus eigenlijk zoek ik een andere manier om die links te laten werken zonder dat ze ervoor zorgen dat bij het opnieuw inladen van de pagina de waarde van $id weer verandert en dus weer dezelfde pagina weergeeft (die van de laatste link).

En het verschil tussen POST, GET en REQUEST ken ik nog niet, dus daar zal ik even naar zoeken.

Ik ben idd nog aan het leren, maar het leerboek dat ik gebruik "PHP 4 bible" die legt dit allemaal niet uit.

[ Voor 6% gewijzigd door uppie8374 op 04-02-2005 20:23 ]

Rebuilding knowledge database


Acties:
  • 0 Henk 'm!

Verwijderd

seamus21 schreef op vrijdag 04 februari 2005 @ 19:56:
Ja doh als het je geen moer kan schelen kan je nog wel 180 methoden verzinnen. Ik wil alleen maar de mensen wat aanleren.
Ik wil ook mensen wat aanleren. Dat het niet minder netjes is om $_REQUEST te gebruiken, zolang je maar weet wat je overhoop haalt.
Als je REQUEST zomaar gebruikt betekent dat personen ook een var via POST en COOKIE kunnen sturen terwijl jij hem misschien helemaal niet op die manier verwacht en afhandeld....
Ik zeg ook niet dat mensen als achterlijke lemmings het overal moeten gaan gebruiken. Er geldt nog steeds dat je je hersenen moet gebruiken als je iets programmeert. Met bepaalde dingen moet je heel strict en/of specifiek zijn, maar er zijn ook situaties waarin je meer flexibele scripts kunt schrijven zonder dat het ten koste gaat van veiligheid en schijnveiligheid.
Je weet net zo goed als ik dat het gewoon beter is om sommige dingen al vanaf meet aan te doen en niet eerst maar ff de simpele manier omdat het toch niet uithaald.
Ja, soms gebruik ik van meet af aan $_REQUEST omdat ik heb bepaald dat het mij niet uitmaakt hoe die variabelen in het script terecht komen. Ik laat ze gewoon veilig afhandelen, en houd verder mijn opties open. Dan hoef ik niet later replaces gaan lopen uitvoeren omdat ik mijn script tóch met GET en POST request wil kunnen benaderen.

Kortom, ik wilde alleen maar ontkrachten dat het gebruik van $_POST en/of $_GET netter is dan het gebruik van $_REQUEST. Dat is per situatie verschillend.

Acties:
  • 0 Henk 'm!

  • cavey
  • Registratie: Augustus 2000
  • Laatst online: 29-05 01:29
$id = 2; // main pagina

$next = $id + 1; // volgende pagina
$prev = $id - 1; // vorige pagina

en NIET $id++ of --$id gebruiken...... dan assign je meteen een nieuwe waarde toe aan $id.. tenzij je dat wilt natuurlijk... maar doe het dan wel op de correcte wijze..

++$id = ophogen voor je het "gebruikt".. maar dat lijk je al wel door te hebben (ik zou bijna zeggen: heb je soms veel met pointers in C gewerkt ofzo? Zo ja, dan weet je toch dat je er hele ranzige dingen mee kan doen, maar dat je vooral moet oppassen? :P)


owja, als je variabelen niet doen wat jij wilt dat ze doen: var_dump()'n die handel!!

[ Voor 10% gewijzigd door cavey op 04-02-2005 20:28 ]


Acties:
  • 0 Henk 'm!

  • uppie8374
  • Registratie: Maart 2002
  • Laatst online: 16-09 13:22
komakeef schreef op vrijdag 04 februari 2005 @ 20:23:
en NIET $id++ of --$id gebruiken...... dan assign je meteen een nieuwe waarde toe aan $id.. tenzij je dat wilt natuurlijk... maar doe het dan wel op de correcte wijze..
Het is idd de bedoeling dat de waarde gewoon veranderd wordt zodat je op je volgende pagina weer de pijltjes kan gebruiken. Zou $id niet veranderen dan krijg je de situatie dat je van pagina 5 met de rechterpijl naar pagina 6 gaat terwijl $id dus op 5 blijft staan. Dit heeft als gevolg dat wanneer je op pagina 6 op de rechterpijl klikt je weer naar pagina 6 gaat.

Rebuilding knowledge database


Acties:
  • 0 Henk 'm!

  • cavey
  • Registratie: Augustus 2000
  • Laatst online: 29-05 01:29
Ja, maar, als je nou op let.....

boven aan het code stukje waar je je pijlen definieert......... heb je al een $id... die staat vast.
dan zet je ergens een $next en een $prev neer, die bepaald worden aan de hand van de huidige $id waarde.

kijk, als je eerst --$id doet...... en voor pijltje terug, dat werkt prima... maar!!! $id bevat dan WEL de waarde MINUS 1!

dus... $id=5 wordt $id=4....
als je daarna een ++$id doet...... heb je weer $id=5 .... vast niet wat je hebbne wilt ;)

Netter, en leesbaarder, is om gewoon extra variabelen in het leven te roepen met duidelijke namen.

Ga anders even in een droog php scriptje spelen met --$id en ++$id en echo de resultaten.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
  $id = 20; // begin waarde

  var_dump($id); // dump to screen

  --$id;

  var_dump($id); // dump result to screen... we expect 19

  ++$id;

  var_dump($id); // dump result to screen, we expect 21? Wrong, we expect 20

  --$id; // bored

  $id += 2; // leet, let's add 2..

  var_dump($id); // now we expect 21.... 
?>


Ok, misschien is het vardump() ... not sure anymore... misschien moet je er wat <br>'s in strooien.. ach ;)

Acties:
  • 0 Henk 'm!

  • mocean
  • Registratie: November 2000
  • Laatst online: 04-09 10:34
en dit
PHP:
1
 <a href='index.php?id=<?php echo ($id=2); ?>'>bla bla bla</a> 


Werkt niet zoals je wilt je maakt van $id dan altijd een 2, waarom niet:
<a href='index.php?id=2'>bla bla bla</a>

Gewoon HTML!

[ Voor 17% gewijzigd door mocean op 04-02-2005 21:03 ]

Koop of verkoop je webshop: ecquisition.com


Acties:
  • 0 Henk 'm!

  • uppie8374
  • Registratie: Maart 2002
  • Laatst online: 16-09 13:22
Dat had ik idd eerst, maar dan wordt er nergens onthouden op welke pagina je nu zit en werken de pijlen dus ook niet :'(

Rebuilding knowledge database


Acties:
  • 0 Henk 'm!

Verwijderd

uppie83 schreef op vrijdag 04 februari 2005 @ 21:08:
Dat had ik idd eerst, maar dan wordt er nergens onthouden op welke pagina je nu zit en werken de pijlen dus ook niet :'(
Echt wel, je kan de paginanr dan op de volgende pagina krijgen met $_GET['id'].

Acties:
  • 0 Henk 'm!

  • seamus21
  • Registratie: December 2001
  • Laatst online: 24-02-2018
Je probleem zit hem niet in je idee om previous en next met 1 aan te passen maar hoe je het id insteld bovenin. Ik denk dat de onderstaande manier je probleem oplost.

PHP:
1
2
3
4
5
6
7
8
9
<?php
    $url = $_SERVER['PHP_SELF']; // haal bestandsnaam op
    $id = basename($url, ".php"); // zet id op bestandsnaam minus extensie

    $prev = $id - 1;
    $next = $id + 1;
?>

<a href="<?= $prev ?>.php">Previous</a> | <a href="<?= $next ?>.php">Next</a>


We bepalen eerst het id aan de hand van de filenaam. Daarna stellen we previous en next in. En bouwen vervolgens de links. Mits je de paginas dus 1, 2, 3 etc.. noemt moet dit goed gaan. Let wel even op pagina 1.php natuurlijk. Daar moet je even wat doen voor previous.

[ Voor 54% gewijzigd door seamus21 op 04-02-2005 22:05 ]

Always shoot for the moon. Even if you miss you will land among the stars...


Acties:
  • 0 Henk 'm!

  • cavey
  • Registratie: Augustus 2000
  • Laatst online: 29-05 01:29
ah, lelijk. short hand echo's :P

doe wel ff overal (int) typecasts omheen...... je hebt geen zin in dat iemand zelf een id neer gaat zetten ofzo..... of mooie <script>javascript.alert('blaat')</script> dingen... (paranoid parameters checking... altijd handig)

Acties:
  • 0 Henk 'm!

  • seamus21
  • Registratie: December 2001
  • Laatst online: 24-02-2018
Hmz.. Als hij dit gewoon netjes bovenaan zijn genummerde php pagina's zet wil ik de eerste wel eens zien die vervolgens die pagina aanroept en voor die prev/next links andere waardes meegeeft :)

Typecasten en checken is hier volgens mij totaal niet nodig...

Ben trouwens wel benieuwd naar hoe diegene dat dan aanpakt want dan leer ik ook weer wat bij :)

[ Voor 3% gewijzigd door seamus21 op 04-02-2005 23:46 ]

Always shoot for the moon. Even if you miss you will land among the stars...


Acties:
  • 0 Henk 'm!

  • uppie8374
  • Registratie: Maart 2002
  • Laatst online: 16-09 13:22
Ok hardstikke bedankt allemaal....weer een hoop geleerd :)

Ik heb het nu op deze manier op gelost :

- De bodyswitch
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
  <?php
           $id=$_GET['id'];
$allowedpages=array("errordoc.php","1.php","2.php","3.php","4.php","5.php","6.php","7.php","8.php","9.php","10.php","11.php","12.php","13.php","14.php","15.php","16.php","17.php","18.php","19.php"); 
            if (!isset($id)){
              $id=1;
            } 
            if (in_array("$id.php",$allowedpages)&& file_exists("Php/".$id.".php")){ 
              /*include ($allowedpages[$id]);*/
              include ("Php/".$id.".php");
            }
            else{ 
              include("Php/errordoc.php"); 
            } 
?>


- De gewone links
HTML:
1
<a href='index.php?id=2' class="nav">bla bla bla</a>


- De links en rechts pijlen
Links
PHP:
1
2
3
<a href='index.php?id=<?php echo ($id - 1); ?>'>
  [img]'Images/larrow2.jpg'[/img]
</a>


Rechts
PHP:
1
2
3
<a href='index.php?id=<?php echo ($id + 1); ?>'>
  [img]'Images/rarrow2.jpg'[/img]
</a>


De waardetoekenning van 1 heb ik uit de index weggehaald.

Ik moet zeggen het werkt nu perfect :D en dat met 1 variabele !!
Wat denken jullie van de oplossing? Kan het nog verder geoptimaliseerd worden ?

Rebuilding knowledge database


Acties:
  • 0 Henk 'm!

  • mocean
  • Registratie: November 2000
  • Laatst online: 04-09 10:34
Je zou nog kunnen checken of het id bestaat, (ander krijg je een previouslink die naar 0 kan wijzen), dus checken of ie groter is dan 1 (voor de previous link) en kleiner dan de maximale waarde (voor de next-link)

Koop of verkoop je webshop: ecquisition.com


Acties:
  • 0 Henk 'm!

  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 21-08 11:20
PHP:
1
2
3
4
5
if($id - 1 >= 0) {
 // link
} else {
  // geen link
}

PHP:
1
2
3
4
5
if($id + 1 >= count(allowedpages)) {
 // link
} else {
  // geen link
}

zoiets dus?

We are shaping the future


Acties:
  • 0 Henk 'm!

  • uppie8374
  • Registratie: Maart 2002
  • Laatst online: 16-09 13:22
Uhm bedoel je dit ?

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
  if($id-1 < 1){ 
?>
    [img]'Images/larrow2.jpg'[/img]
<?php
}
else {
?>
  <a href='index.php?id=<?php echo ($id - 1); ?>'>
    [img]'Images/larrow2.jpg'[/img]
  </a>
<?php
} 
?>


Hmm het werkt wel, maar om een of andere reden zakt de pijl nu :?

Als me nu zijn het zeg maar allemaal vakjes (geen plaatjes) met de normale links er in en in het onderste vakje staat de pijl. Wanneer de pijl geen link meer is zakt het plaatje van de pijl iets waardoor alles er boven ook enigszins zakt.

[ Voor 47% gewijzigd door uppie8374 op 07-02-2005 21:30 ]

Rebuilding knowledge database


Acties:
  • 0 Henk 'm!

  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 21-08 11:20
Je hoeft bij height en width trouwens geen px erachter te zetten, dat hoort bij CSS.
En een array begint te tellen bij 0, niet bij 1.

We are shaping the future


Acties:
  • 0 Henk 'm!

  • uppie8374
  • Registratie: Maart 2002
  • Laatst online: 16-09 13:22
Alex schreef op maandag 07 februari 2005 @ 21:35:
Je hoeft bij height en width trouwens geen px erachter te zetten, dat hoort bij CSS.
En een array begint te tellen bij 0, niet bij 1.
Hmm dat eerste wist ik niet. De tweede opmerking wel, maar die kan ik niet plaatsen ???
Ik heb de errordoc maar op plaats 0 gezet zodat de rest synchroon loopt.

Rebuilding knowledge database


Acties:
  • 0 Henk 'm!

  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 21-08 11:20
O die errordoc.php staat op plaats 0, ik dacht dat die gewoon bij de rest hoorde.
(Omdat je $id - 1 < 1 in je vergelijking hebt)

We are shaping the future


Acties:
  • 0 Henk 'm!

Verwijderd

Ik zat net - al neuspeuterend en wakker wordend - dit topic te bekijken en verbaasde me over de belachelijk slechte code die er voorbij kwam... NOFI uiteraard.

Een opzetje, die ik persoonlijk nooit zou gebruiken overigens - ik zou zeggen kijk er eens goed naar.
Ik heb het bewust ontzettend uitgebreid gemaakt, zodat men er hopelijk ook iets van gaat leren...

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
<?php 

    // INIT
    // prepare some stuff
    $basedir = 'Php/';
    $errorpage = 'error.php';   

    // DEFINE ALLOWED PAGES
    // array contains valid values 
    // (without extensions for some safety reasons)
    $allowedpages = array('error', 1, 2, 3, 'etc.');    

    // CHECK INPUT
    // check input (=id) file, send by user
    // and set default page (optional error page?)
    if(isSet($_GET['id']) && in_array($_GET['id'], $allowedpages))
    {

        $id = $_GET['id'];

    } else
    {

        $id = 1; // default page - make error page(?)

    }

    // PREPARE NAVIGATION
    // Create navigation buttons/links  

    // Previous id?
    if(in_array(($id-1), $allowedpages) && ($id-1) != null)
    {

        $previousId = $id-1; // optional: `$id--`

    }

    // Next id?
    if(in_array(($id+1), $allowedpages) && ($id+1) != null)
    {

        $nextId = $id+1; // optional: `$id++`

    }

    // SHOW NAVIGATION
    // Show navigation buttons/links with the previous- and nextId values (if set)
    
    // previous button/link
    if(isSet($previousId))
    {

        echo '<a href="index.php?id=' . $previousId . '">vorige</a>';

    } else
    {

        echo '<s>vorige</s>'; // default...

    }

    // next button/link
    if(isSet($nextId))
    {

        echo '<a href="index.php?id=' . $nextId . '">volgende</a>';

    } else
    {

        echo '<s>volgende</s>'; // default...

    }


    // INCLUDE CONTENT PAGE
    // place to include the content files.
    // (optional; check if file exists)
    include($basedir . $id . '.php');
     
?>

Acties:
  • 0 Henk 'm!

  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 21-08 11:20
Je gebruikt $errorpage maar één keer, bij het definiëren hiervan... niet handig...

Verder: nette code :*)

We are shaping the future


Acties:
  • 0 Henk 'm!

  • uppie8374
  • Registratie: Maart 2002
  • Laatst online: 16-09 13:22
Ziet er idd goed uit :)

Maar waarom is dit beter ??? Is het sneller ? veiliger ?

Rebuilding knowledge database


Acties:
  • 0 Henk 'm!

Verwijderd

uppie83 schreef op woensdag 09 februari 2005 @ 15:17:
Ziet er idd goed uit :)

Maar waarom is dit beter ??? Is het sneller ? veiliger ?
Iets wat in eerste instantie boven dat alles staat. Het is nl. netter. En netheid is de basis van snelle- en veilige code. Je kunt het beter debuggen, je kunt het - in een later stadium - beter uitbreiden en wat het vele commentaar betreft; je kunt deze code op de plank leggen, er een laagje spreekwoordelijk stof op laten vallen en het vervolgens na 6 jaar uit de kast pakken en - na het globaal te hebben bekeken - precies herleiden waarom je de code tóen zo geschreven hebt.

Nogmaals, netheid is de basis van excellente code en daardoor goede prestaties en resultaten van jouw werk.
Alex schreef op dinsdag 08 februari 2005 @ 21:53:
Je gebruikt $errorpage maar één keer, bij het definiëren hiervan... niet handig...

Verder: nette code :*)
offtopic:
Helemaal mee eens ;-) - maar om het toch te verdedigen; ik denk dat TS de variabele ongetwijfeld kan gebruiken en dat het verstandig is om de error-page appart te definieren in plaats van de errorpage statisch aan te roepen ergens midden in de pagina en het zichzelf daardoor wellicht moeilijk zal te maken in den toekomst;
stel dat de naam van de error-page wijzigd dan wil je niet je code gaan doorzoeken om te kijken waar je ook al weer de naam van die error-page had gedefinieerd. Oftewel; definieer- of gebruik variabelen waarvan je wéét dat er een kans is dat ze gaan wijzigen in de toekomst nooit en te nimmer ergens midden in je code en behandel ze als `configuratie-variabelen`.

[ Voor 38% gewijzigd door Verwijderd op 09-02-2005 17:14 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Allereerst is het misschien handig om jezelf aan te leren niet continu te schakelen tussen php- en html-modus. Het maakt het totaal behoorlijk onduidelijk.

Ten tweede is in jouw geval de huidige pagina altijd op te vragen via de environment variable $_CGI, die standaard door PHP wordt gedefiniëerd. Deze variable is er dus altijd, mits uiteraard er enige input is geweest.

Ten derde; de pagina's aan een array toevoegen is nogal overbodig. Include op basis van het ontvangen id de juiste pagina toe en klaar is kees.

Jouw index.php zou er dus ongeveer als volgt uit moeten zien:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
include("header.php");
include("left.php");

switch ($_GET['id']) {
    case 1:
        include("1.php");
        break;
    case 2:
        include("2.php");
        break;
    case 3:
        include("3.php");
        break;
    default:
        include("errordoc.php");
}

echo '<a href="index.php?id='.($_GET['id']-1).'">[img]"Images/larrow2.jpg[/img]</a>';
echo '<a href="index.php?id='.($_GET['id']+1).'">[img]"Images/rarrow2.jpg[/img]</a>';

include("right.php")
include("footer.php");

Acties:
  • 0 Henk 'm!

  • uppie8374
  • Registratie: Maart 2002
  • Laatst online: 16-09 13:22
Nou ik heb het werkend en ik begrijp mijn code.... :p

Maar na nog zooi te hebben gedaan wil ik nu zeg maar de knoppen previous en next van de browser proberen na te maken.

Wat ik hiervoor heb geprobeerd is
-Met PHP:
  • Een array aanmaken en deze aan de sessie meegeven.
  • Id meegeven aan de sessie en voordat deze wordt overschreven door $_GET['id'] opslaan in de variabele $vorigId en deze meegeven aan de sessie.
  • $vorigId wordt voor het weer de nieuwe waarde krijgt toegevoegd aan de array met bezochte pagina's met behulp van array_push($visitedpages, $vorigId);
PHP:
1
2
3
4
5
6
$visitedpages = array();            
session_register('visitedpages');   
$vorigId=$id;                       
session_register('vorigId');        
$id=$_GET['id'];                    
array_push($visitedpages, $vorigId);

- Met JS:
  • Eigenlijk alleen eenzelfde soort pijltjes gemaakt maar dan met de link
    <a href="javascript:void(0)" onclick="history.go(-1)">
    Maar dit werkt maar 1 keer, want daarna springt ie naar de pagina waar je net was.

[ Voor 14% gewijzigd door uppie8374 op 14-03-2005 22:50 ]

Rebuilding knowledge database


Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
edit : nm, topic heeft 2 pagina's, lekker opgelet....

[ Voor 90% gewijzigd door Cartman! op 15-03-2005 13:29 ]

Pagina: 1