Undefined index pagina

Status
Niet open voor verdere reacties.

schorrie01

Gebruiker
Lid geworden
7 aug 2006
Berichten
79
Ik maakte een script waarbij de rechterkolom van een tabel aan de hand van een keuzemenu met include wordt gevuld

script betreft

$pagina = $_GET["pagina"];
switch ($pagina) {
case "start":
include("home.php");
break;
case 2:
include("content1.php");
break;
case 3:
include("content2.php");
break;
Default:
include("home.php");
}

wanneer ik naar de pagina ga via een link lukt het, bvb index.php?pagina=start

bij eerste maal openen van de pagina krijg ik echter foutmelding op de eerste regel van dit script,

Notice: Undefined index: pagina in I:\software\UsbWebserver\Root\main.php on line 15

heb al veel geprobeerd, zonder resultaat
 
dat komt, omdat je dit gebruikt:
PHP:
$pagina = $_GET["pagina"];
je wilt dus de param pagina uit een $_GET[] plukken, maar in de URL (www.mijnsite.com/index.php) zie je nergens iets van " ?pagina=home " staan.

Wat je dus moet doen is eerst even checken of het wel 'geset' is. Dat kan op veel manieren, maar dit werkt:
PHP:
if( !empty( $_GET["pagina"] ) ){
    $pagina = $_GET["pagina"];
}else{
   $pagina = "start";
}

Je kan ook 'isset()' gebruiken in plaats van empty().

:thumb:
 
het werkt,

tracht steeds verschillende software toepassingen al doende onder de knie te krijgen,

het is via hulp van zij die al veel verder staan met hun kennis dat dit lukt,

door de oplossing te lezen, en te kijken wat deze code doet en op welke manier, dat ik ook weer bijleer voor de toekomst

bedankt
 
dat komt, omdat je dit gebruikt:
PHP:
$pagina = $_GET["pagina"];
je wilt dus de param pagina uit een $_GET[] plukken, maar in de URL (www.mijnsite.com/index.php) zie je nergens iets van " ?pagina=home " staan.

Wat je dus moet doen is eerst even checken of het wel 'geset' is. Dat kan op veel manieren, maar dit werkt:
PHP:
if( !empty( $_GET["pagina"] ) ){
    $pagina = $_GET["pagina"];
}else{
   $pagina = "start";
}

Je kan ook 'isset()' gebruiken in plaats van empty().

:thumb:

empty() moet je niet gebruiken, dat laat namelijk ook '0', 'null', etc. door. Zie php.net/empty.

Kijjken of een variabele bestaat, doe je met isset() ja, en nergens anders mee. Kijken of iets niet leeg is, doe je door trim($var) != '' te gebruiken. Verder heeft het in aparte variabelen zetten van die $_GET['pagina'] ook geen zin en gebruik je doorgaans enkele in plaats van dubbele quotes.


PHP:
if(isset($_GET['pagina']) && trim($_GET['pagina']) != ''){

  // $_GET['pagina'] bestaat en is niet leeg. Hier alle handelingen daarmee verrichten.

}
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan