$_get_page
zo moet het worden:
-lang
-module
-scherm
-topic
maar nu kan ik wel in dezelfde directory het bestand halen, alleen ik kom der niet echt uit als ik het via een directory moet doen. Moet je dan voor de module scherm enzo ook get_map doen bijvoorbeeld?
kan zoiets?
De code nu ik nu heb
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
ini_set('display_errors', 'On');
error_reporting(E_ALL);
if
(file_exists($_GET['topic']))
{
include($_GET['topic']);
}
else
{
echo 'Het opgevraagde bestand bestaat niet probeer het later opnieuw';
}
error_reporting(E_ALL);
if
(file_exists($_GET['topic']))
{
include($_GET['topic']);
}
else
{
echo 'Het opgevraagde bestand bestaat niet probeer het later opnieuw';
}
Gewijzigd op 24/10/2011 14:30:24 door Dirk Renes
Ik snap de logica niet. Als $_GET['topic'] bestaat ga je $_GET['page'] includen. Verder is dit op deze manier zeer onveilig.
- SanThe - op 24/10/2011 14:29:05:
Ik snap de logica niet. Als $_GET['topic'] bestaat ga je $_GET['page'] includen. Verder is dit op deze manier zeer onveilig.
Al aangepast in mijn script zelf. SanThe hoe zou jij het doen?
Gewijzigd op 24/10/2011 14:31:45 door Dirk Renes
Check op zijn minst of het bestand wel op JOUW site staat. Of zet alle toegestane pagina's in een array() en kijk of de GET in het array() voorkomt.
- SanThe - op 24/10/2011 14:36:21:
Check op zijn minst of het bestand wel op JOUW site staat. Of zet alle toegestane pagina's in een array() en kijk of de GET in het array() voorkomt.
Heb je een voorbeeld?
Gewijzigd op 24/10/2011 14:39:49 door Dirk Renes
Nu wil ik dat nog graag met de directory structuur hoe kan ik dat het beste doen?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
$dir = 'inc/';
$page = !isset( $_GET['page'] ) ? 'home' : htmlentities( $_GET['page'] );
$allowed = array( 'home', 'pagina1', 'pagina2' );
if( in_array( $page, $allowed ) )
{
if( file_exists( $dir.'/'.$page.'.php' ) )
{
include( dir.'/'.$page.'.php' );
}
else
{
echo 'Deze pagina bestaat niet.';
}
}
else
{
echo 'De door u gekozen pagina is verboden.';
}
?>
$dir = 'inc/';
$page = !isset( $_GET['page'] ) ? 'home' : htmlentities( $_GET['page'] );
$allowed = array( 'home', 'pagina1', 'pagina2' );
if( in_array( $page, $allowed ) )
{
if( file_exists( $dir.'/'.$page.'.php' ) )
{
include( dir.'/'.$page.'.php' );
}
else
{
echo 'Deze pagina bestaat niet.';
}
}
else
{
echo 'De door u gekozen pagina is verboden.';
}
?>
Persoonlijk zou ik het zo doen, want dan kijk je ook meteen of de pagina bestaat niet of. Zo niet geef je dit netjes weer aan de gebruiker.
GR, Milo
Gewijzigd op 24/10/2011 16:30:55 door Milo S
Ik wil het met de bovengenoemde mappen structuur doen maar, als ik dus 3 of meer mappen heb hoe ga ik dat dan oplossen?
Als je pagina's in drie verschillende mappen staan, kan je toch die directory's erbij opgeven in de $allowed array?
Code (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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);
$lang = $_GET['l'];
$module = $_GET['m'];
$page = $_GET['p'];
$toegestaan = array( 'home', 'nl', 'eng', 'stock' );
if(array( $screen, $toegestaan))
{
if( file_exists( $lang .'/'. $module .'/'. $page .'.php' ) )
{
include($lang .'/'. $module .'/'. $page .'.php' );
}
else
{
echo 'Deze pagina bestaat niet.';
}
}
else
{
echo 'De door u gekozen pagina is verboden om door u bekeken te worden.';
}
?>
ini_set('display_errors', 'On');
error_reporting(E_ALL);
$lang = $_GET['l'];
$module = $_GET['m'];
$page = $_GET['p'];
$toegestaan = array( 'home', 'nl', 'eng', 'stock' );
if(array( $screen, $toegestaan))
{
if( file_exists( $lang .'/'. $module .'/'. $page .'.php' ) )
{
include($lang .'/'. $module .'/'. $page .'.php' );
}
else
{
echo 'Deze pagina bestaat niet.';
}
}
else
{
echo 'De door u gekozen pagina is verboden om door u bekeken te worden.';
}
?>
Gewijzigd op 31/10/2011 14:12:27 door Dirk Renes
Gewoon logisch nadenken en stapje voor stapje te werk gaan. Daar leer je het meest van. Hoe vaker je het doet, hoe makkelijker het zal gaan.
Als je hele kant en klare scripts wilt, dan ben je van harte welkom in het vacature-forum.
Code (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
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
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);
$lang = $_GET['l'];
$module = $_GET['m'];
$page = $_GET['p'];
$toegestaan = array( 'home', 'nl', 'eng', 'stock' );
if(array( $page, $toegestaan))
{
if( file_exists( $lang .'/'. $module .'/'. $page .'.php' ) )
{
include($lang .'/'. $module .'/'. $page .'.php' );
}
elseif($_GET['m']=="" && $lang == 'nl')
{
include($lang .'/'.algemeen.'/'. $page .'.php' );
}
elseif($_GET['m']=="" && $lang == 'en')
{
include($lang .'/'. general .'/'. $page .'.php' );
}
else
{
echo 'Deze pagina bestaat niet.';
}
}
else
{
echo 'De door u gekozen pagina is verboden om door u bekeken te worden.';
}
?>
ini_set('display_errors', 'On');
error_reporting(E_ALL);
$lang = $_GET['l'];
$module = $_GET['m'];
$page = $_GET['p'];
$toegestaan = array( 'home', 'nl', 'eng', 'stock' );
if(array( $page, $toegestaan))
{
if( file_exists( $lang .'/'. $module .'/'. $page .'.php' ) )
{
include($lang .'/'. $module .'/'. $page .'.php' );
}
elseif($_GET['m']=="" && $lang == 'nl')
{
include($lang .'/'.algemeen.'/'. $page .'.php' );
}
elseif($_GET['m']=="" && $lang == 'en')
{
include($lang .'/'. general .'/'. $page .'.php' );
}
else
{
echo 'Deze pagina bestaat niet.';
}
}
else
{
echo 'De door u gekozen pagina is verboden om door u bekeken te worden.';
}
?>
Code (php)
1
Notice: Use of undefined constant algemeen - assumed 'algemeen' in C:\xampp\htdocs\Aware36S78pp0rt\help.php on line 63
Toevoeging op 31/10/2011 15:16:19:
Opgelost er moesten om algemeen dubbele quotes
include($lang .'/'.algemeen.'/'. $page .'.php' );
include($lang .'/'.algemeen.'/'. $page .'.php' );
if(array( $page, $toegestaan))
Moet dat niet zijn:
if(in_array( $page, $toegestaan))
Toevoeging op 31/10/2011 15:18:25:
Dirk Renes op 31/10/2011 15:06:31:
Opgelost er moesten om algemeen dubbele quotes
Uh?? Zo bedoel je waarschijnlijk:
include($lang .'/algemeen/'. $page .'.php' );
jou manier kan inderdaad ook.
Dirk Renes op 31/10/2011 15:24:22:
include($lang .'/"algemeen"/'. $page .'.php' );ik had het zo opgelost, of is dit niet de goede manier?
Nee, dit is fout.
Zie mijn laatste regel.