Versio

Array Problemen.

Overzicht Reageren

Milo S

Milo S

19/09/2010 19:41:44
Quote Anchor link
Beste,

Ik ben bezig met me site en nu stuit ik op een probleem, ik heb een array met daarin me pagina's die geinclude mogen worden. Dit heeft een titel en een key, de key bepaald of het een pagina is die uit de db gehaald moet worden of een die geinclude word.

Dit is mijn code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
# Het menu
$menu = array('Home'       => NULL,
              'Biografie'  => NULL,
              'Shows'      => NULL,
              'Foto´s'     => NULL,
              'Media'      => NULL,
              'Gastenboek' => NULL,
              'Contact'    => NULL
              );

# Pagina ophalen
if( in_array( $page, $menu ) )
{

    # De rest v.d code
}
else
{
    $errors[] = 'Deze pagina bestaat niet.';
}

?>


Wat ik nu dus steeds krijg is dat hij de key als waarde gebruikt terwijl ik dat niet wil, ik krijg nu dus steeds "Deze pagina bestaat niet" terwijl hij er gewoon in staat.
Wat kan ik hieraan doen / wat doe ik fout?
Gewijzigd op 20/09/2010 10:02:47 door Milo S
 
PHP hulp

PHP hulp

23/05/2012 21:40:14
Gesponsorde koppelingen:
 
Noppes Homeland

Noppes Homeland

19/09/2010 19:51:02
Quote Anchor link
je moet niet in_array hebben maar array_key_exists

en anders moet je de menu array anders opzetten
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$menu
= array('Home'       ,
              'Biografie'  ,
              'Shows'      ,
              'Foto´s'     ,
              'Media'      ,
              'Gastenboek' ,
              'Contact'    
              );

# Pagina ophalen
?>


maar opzich kan je het ook gewoon afdoen met
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
if (isset($menu[$page])) {
?>
Gewijzigd op 19/09/2010 19:52:53 door Noppes Homeland
 
Milo S

Milo S

20/09/2010 10:02:32
Quote Anchor link
Nu heb ik dit, en dan wil ik kijken of home true of false is.

Is hij true
Dan haal ik hem uit de database

Is hij false
Dan ga ik hem includen

Maar op een een of andere manier lukt het maar niet met die array functies :s.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
# Het menu
$menu = array('Home'       => TRUE,
              'Biografie'  => TRUE,
              'Shows'      => TRUE,
              'Foto´s'     => TRUE,
              'Media'      => TRUE,
              'Gastenboek' => FALSE,
              'Contact'    => TRUE
              );

# Pagina ophalen
if( array_key_exists( $page, $menu ) )
{

    if( array_values( $menu, $page ) )
    {

        # Uit database
    }
    else
    {
        # Include
    }
}

else
{
    echo 'Deze pagina is verboden te bekijken.';
}

?>


Ik heb dus iets gelijkwaardigs nodig aan array_values, alleen dan met functionaliteit van array_keys. Ik moet namelijk de value ophalen van bij voorbeeld gastenboek uit de array menu.

Ik zat weer veel te moeilijk te denken, ik kon natuurlijk gewoon
$menu[$page] == TRUE gebruiken :S, in ieder geval bedankt!
Gewijzigd op 20/09/2010 10:09:14 door Milo S
 
Elwin - Fratsloos

Elwin - Fratsloos

20/09/2010 11:11:06
Quote Anchor link
Ik weet het niet zeker, maar ik denk dat de key foto's ook niet goed is. PHP zal er misschien wel mee om kunnen gaan, maar als je die keys via de GET mee gaat geven kan het nog wel eens voor problemen zorgen.
Gewijzigd op 20/09/2010 11:11:44 door Elwin - Fratsloos
 
Merijn Venema

Merijn Venema

20/09/2010 12:17:53
Quote Anchor link
edit: Even wat netter..
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
foreach($array as $key => $val)
{
  if($val)
  {
    // database
  }
  else{
    // include
  }
}
Gewijzigd op 20/09/2010 12:18:41 door Merijn Venema
 
Milo S

Milo S

22/09/2010 14:55:02
Quote Anchor link
@ Merijn, dat wat jij stuurt zie ik bij voorbaat al dat het niet doet wat ik wil maar toch bedankt het werkt nu. Als je m'n laatste post had doorgelezen zie je ook dat het al werkte.

Alleen inderdaad dat foto's niet, enige idee hoe ik dit goed kan doen via een get?
Gewijzigd op 22/09/2010 15:03:36 door Milo S
 
- SanThe -

- SanThe -

22/09/2010 15:09:35
Quote Anchor link
Gebruik foto_s
 
Milo S

Milo S

22/09/2010 15:13:40
Quote Anchor link
Maar dan geeft hij in me menu ook foto_s weer, want me menu genereer ik uit die array.
 
Jelmer rrrr

Jelmer rrrr

22/09/2010 15:36:41
Quote Anchor link
urlencode om van ' een %27 te maken.
 
Pim -

Pim -

22/09/2010 15:54:52
Quote Anchor link
Maar je hebt toch liever geen codes in je 'mooie' urls?

Maak gewoon een multidimensionale array:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
$pages
= array(
    'contact' => array(
        'title' => 'Contact pagina',
        'link'  => 'Contact'
    ),
    'media' => array(
        'title' => 'Foto\'s en video\'s',
        'link'  => 'Media'
    )
);

$currentPage = null;
foreach($pages as $key => $page) {
    if($key == $_GET['route']) {
        $currentPage = $page;
        break;
    }
}

if(is_null($currentPage))
    throw new Exception404($_GET['route']);

print_r($currentPage);
?>
Gewijzigd op 22/09/2010 15:55:38 door Pim -
 



Overzicht Reageren

Get Adobe Flash player