[PHP] files includen met array en id

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • eerdepeer
  • Registratie: November 2001
  • Laatst online: 10-06 16:10
Ik weet dat er al een miljard topics over zijn, maar ik kom er niet uit. Ik probeer een array met variabelen te maken en die via de link eruit te trekken. Helaas krijg ik geen antwoord.
Dit is wat ik heb:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
$top56 = "2005_2006/top.php"; 
$top67 = "2006_2007/top.php";
$j2hi1 = "2006_2007/herfst/IVID/opdracht1";
$j2hi2 = "2006_2007/herfst/IVID/opdracht2";

include($top67);

    $p=array($j2hi1, $j2hi2);

if (isset($_GET['id']) && in_array($_GET['id'], $p)) {
    // mag geinclude worden
    $pagina = $_GET['id'];
} else if (!isset($_GET['id'])) {
    // er is geen ?id= gebruikt
    $pagina = "top.php";
} else {} 
?>

Dat laatste gedeelte heb ik ook van een got forumdraadje.

Als ik nu als url intik: http://linkje/index.php?id=j2hi1 dan zie ik alleen de ge-include $top67
Waar gaat het mis? Ik hoop dat er nog een niet-slapende tweaker is die het ff kan uitleggen. Ik denk zelf dat het iets te maken heeft met dat ik de variabelen met de $ tekens in de array niet goed weer geef ofzo??

Acties:
  • 0 Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Als dit al je code is... Je included $pagina nergens... :P

En nee, met iets als ?id=j2hi1 gaat het niet werken. Met in_array kijk je namelijk of ?id= gelijk is aan de inhoud van $j2hi1, "2006_2007/herfst/IVID/opdracht1" dus.

[ Voor 60% gewijzigd door CodeCaster op 17-10-2006 01:13 ]

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


Acties:
  • 0 Henk 'm!

  • bartje321
  • Registratie: November 2003
  • Laatst online: 02-09 10:36
in_array($_GET['id'], $p) dit gaat fout, de inhoud van array $p =
array(
[0] = "2006_2007/herfst/IVID/opdracht1";
[1] = "2006_2007/herfst/IVID/opdracht2";
)
je id is j2hi1 en zal hem daarom ook niet vinden

probeer dit:
vervang
$p=array($j2hi1, $j2hi2);
door
$p=array("j2hi1"=>$j2hi1, "j2hi2"=>$j2hi2);

vervang
in_array($_GET['id'], $p)
door
isset($p[$_GET['id']])

en ik denk dat je deze
$pagina = $_GET['id'];
moet vervangen door
$pagina = $p[$_GET['id']]

edit:
je include de pagina nergens

[ Voor 3% gewijzigd door bartje321 op 17-10-2006 01:14 ]


Acties:
  • 0 Henk 'm!

  • eerdepeer
  • Registratie: November 2001
  • Laatst online: 10-06 16:10
ok, ik heb nu dus:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$top56 = "2005_2006/top.php"; 
$top67 = "2006_2007/top.php";
$j2hi1 = "2006_2007/herfst/IVID/opdracht1";
$j2hi2 = "2006_2007/herfst/IVID/opdracht2"; 

include($top67);

    $p=array(
            'j2hi1' => $j2hi1,
            'j2hi2' => $j2hi2,
    );

if (isset($_GET['id']) && isset($p[$_GET['id']])) {
    // mag geinclude worden
    $pagina = $p[$_GET['id']];
    include($pagina.'/index.php');  
} else if (!isset($_GET['id'])) {
    // er is geen ?id= gebruikt
    $pagina = "top.php";
} else {}


Nu geeft mn browser een foutmelding op de laatste include, wrom is dat nou weer niet goed?? :?

edit: Yeuuuuu, heb het gevonden, de include in de regel na if (isset....enz. was niet goed, nu verbeterd in de code.

[ Voor 27% gewijzigd door eerdepeer op 17-10-2006 01:29 ]


Acties:
  • 0 Henk 'm!

  • bartje321
  • Registratie: November 2003
  • Laatst online: 02-09 10:36
edit:
nu gaat het nog steeds fout
als je geen id hebt wordt er niks geincluded

[ Voor 87% gewijzigd door bartje321 op 17-10-2006 01:37 ]


Acties:
  • 0 Henk 'm!

  • eerdepeer
  • Registratie: November 2001
  • Laatst online: 10-06 16:10
ja okee,

Ik moet mijn laatste
PHP:
1
else {}

nog even vervangen door
PHP:
1
2
3
else {
    include('welkom.php')
}


Maar ik krijg nu iig de laatste pagina terug als ik bijv. link/index.php?id=j2hi1 invul _/-\o_

[ Voor 26% gewijzigd door eerdepeer op 17-10-2006 01:49 ]


Acties:
  • 0 Henk 'm!

  • bartje321
  • Registratie: November 2003
  • Laatst online: 02-09 10:36
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
$top56 = "2005_2006/top.php"; 
$top67 = "2006_2007/top.php";
$j2hi1 = "2006_2007/herfst/IVID/opdracht1/index.php";//index.php toegevoegt
$j2hi2 = "2006_2007/herfst/IVID/opdracht2/index.php";//index.php toegevoegt

include($top67);

    $p=array(
            'j2hi1' => $j2hi1,
            'j2hi2' => $j2hi2,
    );

if (isset($_GET['id']) && isset($p[$_GET['id']])) {
    // mag geinclude worden
    $pagina = $p[$_GET['id']];
    //include($pagina.'/index.php'); // weggehaald komt later
}else{ //waarom apparte gedeeltes gebruiken voor als id fout is en als hij niet bestaat
    $pagina = "welkom.php";//top include je al 
}
include($pagina);
?>

[ Voor 59% gewijzigd door bartje321 op 17-10-2006 02:09 ]

Pagina: 1