webForumDet fria alternativet

Notice: Undefined index

11 svar · 720 visningar · startad av mikaelsooh

mikaelsoohMedlem sedan feb. 2007200 inlägg
#1

Någon som kan hjälpa mig att reda ut varför jag får följande felmeddelande:

Notice: Undefined index: page in C:\Program Files (x86)\wamp\www\test\index.php on line 51

När jag testkör sidan. Koden ser ut som följer:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

	<head>
		<meta http-equiv="content-type" content="text/html;charset=utf-8" />
		<meta name="generator" content="Adobe GoLive" />
		<title>Mikael Bruér</title>
		<link href="css/style.css" rel="stylesheet" type="text/css" media="all" />
		
	</head>

	<body>
	
		<!-- START Susnet BESÖKSREGISTRERINGSKOD -->
		<script type="text/javascript" src="http://susnet.se/susnetstat.js">
		</script>
		<script type="text/javascript">
		susnet_counter_id = 98444;
		susnet_security_code = 'c0460';
		susnet_node=0;
		register();
		</script>
		<!-- SLUT Susnet BESÖKSREGISTRERINGSKOD -->

	
		<div id="top">
			<div id="meny">
   				<ul>
    				<li><a href="index.php?page=info">info</a></li>
    				<li><a href="index.php?page=interior">Interiör</a></li>
   					<li><a href="index.php?page=hdr">HDR</a></li>
     				<li><a href="index.php?page=hastar">Hästar</a></li>
     				<li><a href="index.php?page=scen">Scen</a></li>
     				<li><a href="index.php?page=manniskor">Människor</a></li>
     			</ul>
			</div>
		</div>
		
		<div id="container">
			<?php
			$allowed_pages = array(
   				'info',
   				'interior',
   				'hdr',
   				'hastar',
   				'scen',
   				'manniskor',
 			);

  			$page = $_GET['page'];
  			if(isset($page) && !empty($page) && in_array($page, $allowed_pages)){
    		$buf = file_get_contents($page . '.php');
			echo $buf;  
  			} else {
    		include('info.php');
  			}  
			?>
		</div>

		<div id="bottom">
			<br>
		</div>
		
	</body>

</html>
SPiNMedlem sedan mars 20007 896 inlägg
#2

Det finns inget index 'page' i GET-arrayen, dvs. du går in på sidan utan att ange ett värde för 'page'.

MickeA.comMedlem sedan feb. 20034 441 inlägg
#3

Det här ser också fel ut:

$allowed_pages = array(
   				'info',
   				'interior',
   				'hdr',
   				'hastar',
   				'scen',
   				'manniskor',
 			);

..bör vara:

$allowed_pages = array(
   				'info',
   				'interior',
   				'hdr',
   				'hastar',
   				'scen',
   				'manniskor'
 			);

Alltså kommatecknet sist i arrayen.

jmeMedlem sedan maj 20012 237 inlägg
#4

Det är inget fel om man har ett extra kommatecken.

mikaelsoohMedlem sedan feb. 2007200 inlägg
#5

SPiN skrev:

Det finns inget index 'page' i GET-arrayen, dvs. du går in på sidan utan att ange ett värde för 'page'.

Menar du att jag ska byta ut 'page' mot typ 'info' ?

jmeMedlem sedan maj 20012 237 inlägg
#6

Du bör undersöka om 'page' finns i $_GET:

Byt

if(isset($page) && !empty($page) && in_array($page, $allowed_pages) ){

till

if(!empty($_GET['page']) && in_array($_GET['page'], $allowed_pages) ){

mikaelsoohMedlem sedan feb. 2007200 inlägg
#7

jme skrev:

Du bör undersöka om 'page' finns i $_GET:

Byt

if(isset($page) && !empty($page) && in_array($page, $allowed_pages) ){

till

if(!empty($_GET['page']) && in_array($_GET['page'], $allowed_pages) ){

Testade. Samma problem.

jmeMedlem sedan maj 20012 237 inlägg
#8

Du måste givetvis ta bort raden:

$page = $_GET['page'];

(om du inte gjorde det)

mikaelsoohMedlem sedan feb. 2007200 inlägg
#9

jme skrev:

Du måste givetvis ta bort raden:

$page = $_GET['page'];

(om du inte gjorde det)

Oops... funkar utmärkt. Bortsett från att länkarna i menyn slutade fungera...

Följande felmeddelande:

Notice: Undefined variable: page in C:\Program Files (x86)\wamp\www\test\index.php on line 54

Warning: file_get_contents(.php) [function.file-get-contents]: failed to open stream: No such file or directory in C:\Program Files (x86)\wamp\www\test\index.php on line 54

Nate.AMedlem sedan mars 2006296 inlägg
#10

eftersom du inte längre sätter $page=$_get['page'];
så måste du ändra

file_get_contents($page . '.php');

till

file_get_contents($_GET['page'] . '.php');
MickeA.comMedlem sedan feb. 20034 441 inlägg
#11

jme skrev:

Det är inget fel om man har ett extra kommatecken.

Åfan, fick för mig att man får en notis eller liknande då.

mikaelsoohMedlem sedan feb. 2007200 inlägg
#12

Nate.A skrev:

eftersom du inte längre sätter $page=$_get['page'];
så måste du ändra

file_get_contents($page . '.php');

till

file_get_contents($_GET['page'] . '.php');

Och nu funkar allt!

Nu ska jag bara läsa in mig på conditional comments eller nåt annat som får sidan att funka i IE också.

Tack som fan!

129 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)