PHP noobvraagje

Gestart doorMextijs25 reacties38 weergaven

26 berichten · pagina 1 van 2

Mextijs

Lid · Topicstarter

Berichten
787
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Hey

Ik werkt zo nu en dan met PHP, maar dit snap ik nooit.
Hoe maak je nou een pagina met index.php?p=pagina ?
Dit zie ik bij vele sites, dat als je bijvoorbeeld in een menuutje op Home klikt het dan www.blabla.nl/index.php?p=home krijgt.
Ik heb het proberen uit te zoeken, voor de mensen die beetje willen gaan trollen met dat "Ik google het even voor je", dat heb ik ook al geprobeerd, zo dom ben ik nou ook weer niet.

Het lijkt me niet echt een hele lap code, maar toch, is er iemand die iets hierover kan posten?
Alvast bedankt
Tijs
0
Berichten
81
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
zet dit scriptje in je index tussen de en tag

Quote:
if(isset($_GET[p])) {
$page = $_GET[p];
include(paginas/$page);
} else {
include(paginas/home.php);
} else {
Deze pagina is helaas niet gevonden
}
?>

volgend mij,,,
maak wel een mapje genaamd "paginas"
en zet daar een bestand in genaamd home.php
en maak daar je index,

Keizerbby
0
Rik

Lid

Berichten
18.393
Reputatie
0
Punten
0,04
Lid sinds
Laatst gezien
[COLOR= #0000BB]<?php

    $strMap[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]pages[/COLOR][COLOR= #007700];[/COLOR] [COLOR= #FF8000]// De map waar je paginas in staan[/COLOR]
    [COLOR= #0000BB]$strVar[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]p[/COLOR][COLOR= #007700];[/COLOR] [COLOR= #FF8000]// De var die in de url moet staan.
    
    // Als een bestand aangeroepen wordt[/COLOR]
    [URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/isset"]isset[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$_GET[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]$strVar[/COLOR][COLOR= #007700]]))
    {[/COLOR]
        [COLOR= #FF8000]// Als het bestand bestaat, includen we het[/COLOR]
        [URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/file_exists"]file_exists[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$strMap[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #DD0000]/[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$strVar[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #DD0000].php[/COLOR][COLOR= #007700]))
        {[/COLOR]
            [URL="http://www.php.net/require"]require[/URL] [COLOR= #0000BB]$strMap[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #DD0000]/[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$strVar[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #DD0000].php[/COLOR][COLOR= #007700];    
        }[/COLOR]
        [COLOR= #FF8000]// Anders includen we pages/404.php[/COLOR]
        [URL="http://www.php.net/else"]else[/URL]
        [COLOR= #007700]{[/COLOR]
            [URL="http://www.php.net/require"]require[/URL] [COLOR= #0000BB]$strMap[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #DD0000]/404.php[/COLOR][COLOR= #007700];
        }
    }[/COLOR]
    [COLOR= #FF8000]// Anders includen we pages/home.php[/COLOR]
    [URL="http://www.php.net/else"]else[/URL]
    [COLOR= #007700]{[/COLOR]
        [URL="http://www.php.net/require"]require[/URL] [COLOR= #0000BB]$strMap[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #DD0000]/home.php[/COLOR][COLOR= #007700];    
    }[/COLOR]

?>


Stel dat in als index.php in je root directory.
Zorg dat je in je "pages" directory op zn minst home.php en 404.php hebt en je bent klaar. Zet vervolgens alle paginas in je pages map, en je kan via de naam (- .php) het bestand aanroepen.
0
Berichten
3.314
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
$_GET[parameter]

als variabele, die wordt "piet"

als je ?parameter=piet achter je .php zet
0
Mextijs

Lid · Topicstarter

Berichten
787
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Bedankt, maar hoe moet ik dan bijvoorbeeld zon link in een menu zetten?
0
Rik

Lid

Berichten
18.393
Reputatie
0
Punten
0,04
Lid sinds
Laatst gezien
Mextijs schreef:
Bedankt, maar hoe moet ik dan bijvoorbeeld zon link in een menu zetten?
Gewoon:

Stel je hebt "pages/login.php"

Dan zet je in je menu:

<a href="index.php?p=login">Login</a>
0
Mextijs

Lid · Topicstarter

Berichten
787
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Erg bedankt, ik ga het zsm even uitproberen, top thumbsup
0
Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Dat is zeer onveilig Rik.
Je moet een array maken van alle bestanden in je map en dan controleren of de get in die array zit.
0
Berichten
18.482
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Raaoul schreef:
Dat is zeer onveilig Rik.
Je moet een array maken van alle bestanden in je map en dan controleren of de get in die array zit.

Waarom is het onveilig? Er wordt gewoon gecontroleerd of het bestand bestaat, niks mis mee dus
0
Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Luukvdo schreef:
Eerdere citaten tonen
Raaoul schreef:
Dat is zeer onveilig Rik.
Je moet een array maken van alle bestanden in je map en dan controleren of de get in die array zit.

Waarom is het onveilig? Er wordt gewoon gecontroleerd of het bestand bestaat, niks mis mee dus
Omdat je ook andere bestanden buiten de directory kunt aanroepen
0
Berichten
18.482
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Hoe wil je dat doen dan? Je kan volgens mij alleen bestanden die zich in submappen van de $strMap bevinden aanroepen, geen bovenliggende
0
Rik

Lid

Berichten
18.393
Reputatie
0
Punten
0,04
Lid sinds
Laatst gezien
Raaoul schreef:
Eerdere citaten tonen
Luukvdo schreef:
Eerdere citaten tonen
Raaoul schreef:
Dat is zeer onveilig Rik.
Je moet een array maken van alle bestanden in je map en dan controleren of de get in die array zit.

Waarom is het onveilig? Er wordt gewoon gecontroleerd of het bestand bestaat, niks mis mee dus
Omdat je ook andere bestanden buiten de directory kunt aanroepen
Zoals luuk zegt: Je kijkt of het bestand in /pages/ staat. Je kunt dus geen bestanden aanroepen. Mocht je ../ of ./ kunnen gebruiken, dan volstaat een simpele check al. Overigens stond er een foutje in mijn code. Hier de nieuwe code, met check:

[COLOR= #0000BB]<?php

    $strMap[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]pages[/COLOR][COLOR= #007700];[/COLOR] [COLOR= #FF8000]// De map waar je paginas in staan[/COLOR]
    [COLOR= #0000BB]$strVar[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]p[/COLOR][COLOR= #007700];[/COLOR] [COLOR= #FF8000]// De var die in de url moet staan.
    
    // Als een bestand aangeroepen wordt[/COLOR]
    [URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/isset"]isset[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$_GET[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]$strVar[/COLOR][COLOR= #007700]]))
    {[/COLOR]
        [COLOR= #FF8000]// Als het bestand bestaat, en geen . (punt) in de naam heeft, includen we het[/COLOR]
        [URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/file_exists"]file_exists[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$strMap[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #DD0000]/[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$_GET[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]$strVar[/COLOR][COLOR= #007700]] .[/COLOR] [COLOR= #DD0000].php[/COLOR][COLOR= #007700]) &&[/COLOR] [URL="http://www.php.net/strpos"]strpos[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$_GET[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]$strVar[/COLOR][COLOR= #007700]],[/COLOR] [COLOR= #DD0000].[/COLOR][COLOR= #007700]) ===[/COLOR] FALSE[COLOR= #007700])
        {[/COLOR]
            [URL="http://www.php.net/require"]require[/URL] [COLOR= #0000BB]$strMap[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #DD0000]/[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$_GET[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]$strVar[/COLOR][COLOR= #007700]] .[/COLOR] [COLOR= #DD0000].php[/COLOR][COLOR= #007700];    
        }[/COLOR]
        [COLOR= #FF8000]// Anders includen we pages/404.php[/COLOR]
        [URL="http://www.php.net/else"]else[/URL]
        [COLOR= #007700]{[/COLOR]
            [URL="http://www.php.net/require"]require[/URL] [COLOR= #0000BB]$strMap[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #DD0000]/404.php[/COLOR][COLOR= #007700];
        }
    }[/COLOR]
    [COLOR= #FF8000]// Anders includen we pages/home.php[/COLOR]
    [URL="http://www.php.net/else"]else[/URL]
    [COLOR= #007700]{[/COLOR]
        [URL="http://www.php.net/require"]require[/URL] [COLOR= #0000BB]$strMap[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #DD0000]/home.php[/COLOR][COLOR= #007700];    
    }[/COLOR]

?>
0
Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Raaoul schreef:
Eerdere citaten tonen
Luukvdo schreef:
Eerdere citaten tonen
Raaoul schreef:
Dat is zeer onveilig Rik.
Je moet een array maken van alle bestanden in je map en dan controleren of de get in die array zit.

Waarom is het onveilig? Er wordt gewoon gecontroleerd of het bestand bestaat, niks mis mee dus
Omdat je ook andere bestanden buiten de directory kunt aanroepen
Tuurlijk niet, hij haalt alles al standaard uit de map $strMap (pages dus in dit geval) dan kan je geen ../ gebruiken etc.. Je kan alleen bestanden oproepen die in de map pages staan..
0
Berichten
8.649
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Xjessex schreef:
Eerdere citaten tonen
Raaoul schreef:
Eerdere citaten tonen
Luukvdo schreef:
Eerdere citaten tonen
Raaoul schreef:
Dat is zeer onveilig Rik.
Je moet een array maken van alle bestanden in je map en dan controleren of de get in die array zit.

Waarom is het onveilig? Er wordt gewoon gecontroleerd of het bestand bestaat, niks mis mee dus
Omdat je ook andere bestanden buiten de directory kunt aanroepen
Tuurlijk niet, hij haalt alles al standaard uit de map $strMap (pages dus in dit geval) dan kan je geen ../ gebruiken etc.. Je kan alleen bestanden oproepen die in de map pages staan..
Bij mij is onbeveiligd en kan die elk bestand aanroepen:
?p=paginanaam = /pagina/paginanaam.php
?p=../admin/paginanaam.php = /admin/paginanaam.php

Maar wat maakt het uit? De persoon kan toch ook gewoon zelf naar /admin/paginanaam.php gaan als die zo nodig wil?
0
Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Ja, maar je kan zo ook dieper gaan dan public_html..
0

Jouw reactie

Deel je idee, stel een vraag of help een ander verder.

Editor laden…

Praat mee met de One2xs-community.

Inloggen om te reageren