webForumDet fria alternativet

navigeringsproblem

7 svar · 530 visningar · startad av annaica

annaicaMedlem sedan maj 200753 inlägg
#1

Gör en testsida där jag ska använda php-navigering. Det har jag använt förut och nu har jag bara använt copy&paste för att få in koden. Den funkar felfritt på en annan sida men jag får det inte att funka nu.

<div id="left">
    <li><a href="index.php?page=s1">L&auml;nk 1</a></li>
    <li><a href="index.php?page=s2">L&auml;nk 2</a></li>
    <li><a href="index.php?page=s3">L&auml;nk 3</a></li>
</div>

<div id="small">
<?php
if (!isset($_GET["page"]))echo "funkar inte";
	 else
        if ($_GET["page"] == s01) require("small/s01.php");
        if ($_GET["page"] == s02) require("small/s02.php");
		if ($_GET["page"] == s03) require("small/s03.php");
        ?> 
</div>

sidorna som skall inkluderas innehåller bilder och inget annat...

Någon som ser vad jag gjort fel?

@ndersMedlem sedan juni 200032 969 inlägg
#2
if ($_GET["page"] == "s1")

etc?

stevenetMedlem sedan juni 20001 251 inlägg
#3

När ett villkor sträcker sig flera påståenden än ett måste det kapslas in med { }, alternativt använda den http://se.php.net/manual/en/control-structures.alternative-syntax.php

<div id="small"> 
<?php 
if (!isset($_GET["page"]))echo "funkar inte"; 
     else 
        if ($_GET["page"] == s01) require("small/s01.php"); 
        if ($_GET["page"] == s02) require("small/s02.php"); 
        if ($_GET["page"] == s03) require("small/s03.php"); 
        ?> 
</div>

Blir således:

<div id="small"> 
<?php 
if (!isset($_GET["page"])) { echo "funkar inte"; }
     else {
        if ($_GET["page"] == "s01") require("small/s01.php"); 
        if ($_GET["page"] == "s02") require("small/s02.php"); 
        if ($_GET["page"] == "s03") require("small/s03.php"); 
     }
        ?> 
</div>
annaicaMedlem sedan maj 200753 inlägg
#4

stevenet skrev:

När ett villkor sträcker sig flera påståenden än ett måste det kapslas in med { }, alternativt använda den http://se.php.net/manual/en/control-structures.alternative-syntax.php

Blir således:

<div id="small"> 
<?php 
if (!isset($_GET["page"])) { echo "funkar inte"; }
     else {
        if ($_GET["page"] == "s01") require("small/s01.php"); 
        if ($_GET["page"] == "s02") require("small/s02.php"); 
        if ($_GET["page"] == "s03") require("small/s03.php"); 
     }
        ?> 
</div>

Gör ingen skillnad.

och som sagt, jag har klippt och klistrat en kod jag redan skrivit som ser ut exakt så som jag skrev och där funkar det utan problem.

@ndersMedlem sedan juni 200032 969 inlägg
#5

Där blev det lite citationstecken i stevenet-inlägget också. ;)

Se också bara till att du använder samma värden överallt. Skickar du s1 i querystring får du se till att jämföra mot det också - inte mot s01.

stevenetMedlem sedan juni 20001 251 inlägg
#6

Ange exakt hur skriptet ser ut, samt eventuellt felmeddelande. Även PHP-version kan vara intressant.

[r] @nders hittade nog rätt, dina länkar pekar fel. :)

annaicaMedlem sedan maj 200753 inlägg
#7

@nders skrev:

if ($_GET["page"] == "s1")

etc?

haha, en sån liten grej alltså. Ja, ibland är man blind!

Mr. N.Medlem sedan sep. 20025 507 inlägg
#8

Varför inte bara

<?php 
if (isset($_GET['page']) && file_exists("small/".$_GET['page'].".php"))
   require ("small/".$_GET['page'].".php");
else
   echo "Funkar inte";
?>
242 ms totalt · 3 externa anrop · v20260731065814-full.0e50b1ef
0 ms — hämta forumlista (cache)
119 ms — hämta statistik (db)
120 ms — hämta tråd, inlägg och bilagor (db)