Avatar billede nickyc Nybegynder
21. april 2005 - 10:54 Der er 11 kommentarer

index2.php?page=side virker ikke?

Hey all...

Hvad er der lige galt her?

i min menu linker jeg til fx. index2.php?page=Kort

min index2.php ser sådanne ud:

<table width="764" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td width="237" valign="top">
    <? require("menu.php"); ?>
    </td>
    <td valign="top" style="padding-left:20px;">
    <table width="510" border="0" cellpadding="0" cellspacing="0">
      <tr>
        <td style="padding-top:5px;">
        <?
            $page = $HTTP_GET_VARS["page"];
            include("index2/".$page.".php");
        ?>

        </td>
      </tr>
    </table></td>
  </tr>
</table>
Avatar billede saucer Nybegynder
21. april 2005 - 11:13 #1
Nu ved jeg ikke hvilken version af PHP du kører med men prøv :

<?
            $page = $_GET["page"];
            include("index2/".$page.".php");
        ?>
Avatar billede nickyc Nybegynder
21. april 2005 - 11:16 #2
virkede heller ikke, får denne fejl :

Warning: main(index2/.php) [function.main]: failed to open stream: No such file or directory in c:\websteder\openminded\index2.php on line 53
Avatar billede nickyc Nybegynder
21. april 2005 - 11:20 #3
nu har jeg rettet den til :

<?
            $page = $_GET["page"];
            include("loop/".$page.".php");
        ?>

Så den viser faktisk index2.php korrekt, men så når jeg trykker på fx "Kort" i menuen

får jeg denne fejl :

Warning: main(loopKort.php) [function.main]: failed to open stream: No such file or directory in c:\websteder\openminded\index2.php on line 53

Warning: main() [function.include]: Failed opening 'loopKort.php' for inclusion (include_path='.;C:\php5\pear') in c:\websteder\openminded\index2.php on line 53
Avatar billede hyberpreprocessor Nybegynder
21. april 2005 - 11:23 #4
og fejlen betyder at filen ikke findes...
Avatar billede nickyc Nybegynder
21. april 2005 - 11:26 #5
ja, der er ingen fil der hedder loopKort.php - men derimod en der hedder kort.php

Så hvis jeg skriver den sådan her:

<?
            $page = $_GET["page"];
            include("".$page.".php");
        ?>

Så når jeg trykker på "kort" i menuen går den til den rigtige, men så vises index2.php forkert da jeg så får denne meddelse:

Warning: main(.php) [function.main]: failed to open stream: No such file or directory in c:\websteder\openminded\index2.php on line 53

Det er meningen at index2.php skal indeholde menuen hvilken den også gør, også i indholdet skal den indeholde filen loop.php

Også kan man selvfølgelig navigere rundt mellem knapperne!?
Avatar billede nickyc Nybegynder
21. april 2005 - 11:33 #6
det er som om at det jeg skriver :

include("HERINDE".$page.".php");

Bliver sat før filens navn??
Avatar billede hyberpreprocessor Nybegynder
21. april 2005 - 11:49 #7
Du skulle overveje at lærer noget mere engelsk.

Warning: main(.php) [function.main]: failed to open stream: No such file or directory in c:\websteder\openminded\index2.php on line 53

Betyder at filen ikke findes.
Hvis du ikke smider din kode i en isset blok, går det jo galt, da $_GET['page'] er = "" altså intet, hvis den ikke er sat.

Det mest optimale er noget ligesom denne her:

              <?php
                $page = "";
                if(isset($_GET['page']))
                {
                  $page = $_GET['page'];
                  if(file_exists($page))
                  {
                    include($page.".php");
                  }
                  else
                  {
                    echo "Den ønskede side kunne ikke findes (404)";
                  }
                }
?>
Avatar billede nickyc Nybegynder
21. april 2005 - 11:51 #8
Ved skam godt at det betyder filen ikke findes, men det er jo klart da den ikke skal åbne andet end sig selv!

hvis det er den så er intet, kan jeg så ikke bare sætte en variabel $page = "loop.php";?? oven over  $page = $_GET["page"];
Avatar billede sukos Juniormester
21. april 2005 - 17:14 #9
hyber... Nu snakkes der igen om en fil! :O)

Det her:
<?php
                $page = "";
                if(isset($_GET['page']))
                {
                  $page = $_GET['page'];
                  if(file_exists($page))
                  {
                    include($page.".php");
                  }
                  else
                  {
                    echo "Den ønskede side kunne ikke findes (404)";
                  }
                }
?>

er da noget værre klamp!

<?php
if(isset($_GET['page']))
    {
    if(is_file($_GET['page'] .".php"))
        {
        include($_GET['page'] .".php");
          }
          else
          {
          include("default.php");
          }
    }
    else
    {
    include("default.php");
}

?>

default.php ligger så i samme dir som filen der includer den.


<a href="<?php echo $_SERVER["PHP_SELF"]; ?>?page=dir/subdir/filnavn_uden_punktum_php">Link</a>
Avatar billede hyberpreprocessor Nybegynder
21. april 2005 - 17:49 #10
ye, det var lidt fejl i, jeg lige havde overset.
Avatar billede sukos Juniormester
21. april 2005 - 18:19 #11
:O)
Og nogle gange er det bare de mest fu..... små fejl =:O]
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester