Undefined index: pagina in ....

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Rick

rick

10/03/2009 08:18:00
Quote Anchor link
Ik heb een code om steeds een nieuwe pagina in de content op te vragen. Deze code werkt altijd en nu krijg ik opeens een foutmelding. De foutmelding ziet er als volgt uit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
Notice: Undefined index: pagina in C:\Websites\Localhost\telefoonlijst\inlog\index.php on line 29

Lijn 29 :    switch ($_GET['pagina']) {


Alle pagina's worden wel goed geopend, alleen deze pagina komt wanneer index.php wordt geopend. Hij vraagt dan automatisch home.php op, deze weergeeft de site wel. Alleen de foutmelding staat er dan bij.
Waar kan dit aan liggen? Kunt u mij helpen?


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
29
30
31
32
<?php        
    switch ($_GET['pagina']) {
                    
        case
"home";
        include "home.php";
        break;
                    
        case
"beheer";
        include "login.php";
        break;
        
        case
"ingelogged";
        include "ingelogged.php";
        break;
        
        case
"zoeken";
        include "zoeken.php";
        break;
            
        case
"registreren";
        include "registreren.php";
        break;
        
        case
"toevoegen";
        include "toevoegen.php";
        break;
        
        case
"";
        include "home.php";
        break;
    }

?>
    
Gewijzigd op 01/01/1970 01:00:00 door Rick
 
PHP hulp

PHP hulp

26/11/2024 11:10:25
 
Yoram

Yoram

10/03/2009 08:50:00
Quote Anchor link
Dat komt omdat hij nog nergens staat en opeens word aangeroepen..

Hoe heb je de link ongeveer als je bv index.php?pagina=beheer

dan gaat hij pas naar de pagina beheer.. hij doet het nu nog niet goed omdat je de default bent vergeten gooi die eerste case home er uit en die laatste en maak daar van :

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
29
<?php

switch ($_GET['pagina']) {
                    
        case
"beheer";
        include "login.php";
        break;
        
        case
"ingelogged";
        include "ingelogged.php";
        break;
        
        case
"zoeken";
        include "zoeken.php";
        break;
            
        case
"registreren";
        include "registreren.php";
        break;
        
        case
"toevoegen";
        include "toevoegen.php";
        break;
        
        default:

        include "index.php";
        break;
    }

?>

de link die je zeg maar naar je home pagina zet maak daar alleen index.php van omdat als het goed is ook je hoofd pagina word. nu laad hij zeg maar op de default pagina ( waar je die switch hebt staat ) dan laat hij index.php.
probeer het zo eens.. anders zou je als default ook wel home kunnen neer zetten. ik ga uit van een standaard situatie.

suc6
Gewijzigd op 01/01/1970 01:00:00 door Yoram
 
Rick

rick

10/03/2009 08:56:00
Quote Anchor link
Hier ff de complete 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
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
<?php //session_start(); ?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Telefoonlijsten - </title>
<meta name="keywords" content="" />
<meta name="description" content="" />
<link href="style.css" rel="stylesheet" type="text/css" media="screen" />
</head>
<body>
<div id="menu">
    <ul>
        <li><a href="index.php?pagina=home" title="home" name="home">Home</a></li>
        <li><a href="index.php?pagina=beheer" title="home" name="home">beheer</a></li>
    </ul>
</div>

<div id="splash">
    <img src="images/img05.jpg" alt="" />
</div>
<hr />

<!--content-->
<div id="page">
    <div id="content">
<?php        
    switch ($_GET['pagina']) {
                    
        case
"home";
        include "home.php";
        break;
                    
        case
"beheer";
        include "login.php";
        break;
        
        case
"ingelogged";
        include "ingelogged.php";
        break;
        
        case
"zoeken";
        include "zoeken.php";
        break;
            
        case
"registreren";
        include "registreren.php";
        break;
        
        case
"toevoegen";
        include "toevoegen.php";
        break;
        
        default:

        include "home.php";
        break;
    }

?>
    
    </div>
<!-- einde content -->
    
    <div id="sidebar">

    </div>
    <!-- end #sidebar -->
</div>
<!-- end #page -->
<div id="footer">

</div>
</body>
</html>
Gewijzigd op 01/01/1970 01:00:00 door rick
 
Yoram

Yoram

10/03/2009 09:01:00
Quote Anchor link
welke pagina is dit ?

werkt hij al ?

tip maak van die id classes anders kom je eventueel later als je javascript er aan toevoegd in de war
 
Jaron T

Jaron T

10/03/2009 09:02:00
Quote Anchor link
omdat je nu bijvoorbeeld localhost/mijnwebsite/index.php heeft hij geen pagina toegewezen gekregen ... je moet de <a href=index.php?pagina=registreren>Registreren</a> dan gaat hij pas naar die pagina toe.

edit: dat van yoram zorgt ervoor dat je een standaard pagina krijgt als er geen $_get["pagina"]; is

Suc6 ermee
Gewijzigd op 01/01/1970 01:00:00 door Jaron T
 
Rick

rick

10/03/2009 09:08:00
Quote Anchor link
Dit is index.php, alles doet wat hij moet doen alleen staat er die foutmelding, terwijl alles wel gewoon doet!

Zie 'menu' bovenin het script voor: <a href=index.php?pagina=home>Home</a>

De foutmelding nogmaals:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
Notice: Undefined index: pagina in C:\Websites\Localhost\telefoonlijst\inlog\index.php on line 29

Lijn 29 :    switch ($_GET['pagina']) {


Hij geeft dus aan dat pagina niet bekend is in index, maar hoe los ik dit op?
 
Willem Jan Z

Willem Jan Z

10/03/2009 09:10:00
Quote Anchor link
edit: Oops, te slecht FAQ antwoord daar.

Test met isset().
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
    if(isset($_GET['pagina'])) {
        switch($_GET['pagina']) {
            // rest code
        }
    }
else {
        // De standaard pagina
    }
?>


De 'index' heeft niks met index.php te maken, maar met de index van de array. De index is de sleutel zogezegd om de waarde op te halen, in jouw geval 'pagina', maar op het moment dat jij de switch gebruikt, bestaat 'pagina' nog niet in de array $_GET, omdat je 'pagina' niet in je URL hebt staan. Hierom moet je met isset werken.
Gewijzigd op 01/01/1970 01:00:00 door Willem Jan Z
 
Rick

rick

10/03/2009 09:13:00
Quote Anchor link
Nu heb ik
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php error_reporting(E_ALL ^ E_NOTICE); ?>

bovenin mijn script geplakt en nu is de foutmelding wel weg, maar dit is alleen verstoppen van de foutmelding.
Er moet lijkt mij toch ook wel een oplossing zijn?
 
Willem Jan Z

Willem Jan Z

10/03/2009 09:15:00
Quote Anchor link
Heb mijn post aangepast, maar ook in die FAQ stond eronder dat je met isset moet werken.
Wel kudo's voor jou dat je doorzoekt in plaats van alleen de melding verstopt!!
 
Rick

rick

10/03/2009 09:17:00
Quote Anchor link
Nu weergeeft ie niks meer. De links werken wel, maar hij roept niet automatisch home.php op in de content wanneer index.php wordt geopend. De pagina is gewoon leeg.

WillemJan Z schreef op 10.03.2009 09:10:
edit: Oops, te slecht FAQ antwoord daar.

Test met isset().
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
    if(isset($_GET['pagina'])) {
        switch($_GET['pagina']) {
            // rest code
        }
    }
else {
        // De standaard pagina
    }
?>


De 'index' heeft niks met index.php te maken, maar met de index van de array. De index is de sleutel zogezegd om de waarde op te halen, in jouw geval 'pagina', maar op het moment dat jij de switch gebruikt, bestaat 'pagina' nog niet in de array $_GET, omdat je 'pagina' niet in je URL hebt staan. Hierom moet je met isset werken.
 
Yoram

Yoram

10/03/2009 09:22:00
Quote Anchor link
door je switch in de isset te zetten gaat hij pas alleen naar die switch als hij pagina in de url zeit staan.. dan meot je zorgen dat als je de pagina laad dat hij AUTOMATISCH naar index.php?pagina=blabla gaat..

of ook wel zorgen dat je pagina defineert
 
Willem Jan Z

Willem Jan Z

10/03/2009 09:30:00
Quote Anchor link
In de else stond ook: // De standaard pagina. Dus hier zou je include 'home.php'; neer kunnen zetten.

Maar ja, je moet doen wat je zelf het prettigst vind.
Zo kan bv ook:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
    if(!isset($_GET['pagina'])) {
        $pagina = 'home';
    }
else {
        $pagina = $_GET['pagina'];
    }

    switch($pagina) {
        // Jouw code
    }
?>
 
Rick

rick

10/03/2009 09:34:00
Quote Anchor link
Bedankt dat je het zo goed hebt uitgelegd. Dit stukje script heeft geholpen.
Thanks.


WillemJan Z schreef op 10.03.2009 09:30:
In de else stond ook: // De standaard pagina. Dus hier zou je include 'home.php'; neer kunnen zetten.

Maar ja, je moet doen wat je zelf het prettigst vind.
Zo kan bv ook:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
    if(!isset($_GET['pagina'])) {
        $pagina = 'home';
    }
else {
        $pagina = $_GET['pagina'];
    }

    switch($pagina) {
        // Jouw code
    }
?>
 
Yoram

Yoram

10/03/2009 09:36:00
Quote Anchor link
@willemJan: over het hoofd gezien die else!
 
Leon Kunst

Leon Kunst

10/03/2009 10:11:00
Quote Anchor link
Een andere oplossing was geweest:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?
  if(!isset($_GET['pagina']))
  header("Location: index.php?pagina=home");
  else
  switch($_GET['pagina']) {
        // Jouw code
  }
?>
 
Martijn Wieringa

Martijn Wieringa

10/03/2009 10:13:00
Quote Anchor link
Hoort achter de regels

case "...." niet een dubbele punt te staan i.p.v. een punt-komma.

case "...": blaat();

i.p.v.

case "..."; blaat();
 
Rick

rick

10/03/2009 10:22:00
Quote Anchor link
Nee punt-komma werkt.
Zie hier werkend script:
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
29
30
31
32
33
<?php
if(!isset($_GET['pagina'])) {
        $pagina = 'home';
    }
else {
        $pagina = $_GET['pagina'];
    }

    switch($pagina) {
                    
        case
"home";
        include "home.php";
        break;
                    
        case
"beheer";
        include "login.php";
        break;
        
        case
"ingelogged";
        include "ingelogged.php";
        break;
        
        case
"zoeken";
        include "zoeken.php";
        break;
            
        case
"registreren";
        include "registreren.php";
        break;
        
        case
"toevoegen";
        include "toevoegen.php";
        break;
        }

?>
 
Rick

rick

10/03/2009 10:24:00
Quote Anchor link
Werkt ook prima! dankje

Leon Kunst schreef op 10.03.2009 10:11:
Een andere oplossing was geweest:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?
  if(!isset($_GET['pagina']))
  header("Location: index.php?pagina=home");
  else
  switch($_GET['pagina']) {
        // Jouw code
  }
?>
 
Yoram

Yoram

10/03/2009 10:25:00
Quote Anchor link
Nee ze horen wel met : NIET; anders sluit je ze..??
 
Leon Kunst

Leon Kunst

10/03/2009 10:57:00
Quote Anchor link
cases open je inderdaad met een ':'
 
Rick

rick

10/03/2009 11:23:00
Quote Anchor link
Hoe kan het dan dat ie het bij mij goed doet?
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.