Gå til innhold

index.php?page=about


Anbefalte innlegg

Jeg får ikke dette til og fungere og har begynt å tro at det kan ha noe med serveren min å gjøre?

 

Her er scriptet jeg bruker:

 

<?PHP



// Where all your text files are located at

$directory = './some-directory/';



// If the variable exists

// Example: If the url is index.php?page=aboutme

if($page)

{

      // Does the file $directory/$page.php exist?

      if(is_file("$directory$page.php"))

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

      else

              print "Sorry, this page does not exist";

}



// If the page is just called as index.php

// Then just include the default main.php page

else

{

      $mypage = 'main.php';

      include("$directory$mypage");

}

?>

 

hva jeg enn skriver etter index.php?page= så kommer bare main.php fram selv om jeg faktisk skriver navnet på en annen existerende fil.

 

_________________

jeg finner vel på noe etterhvert

 

 

 

[ endret av kilogram den 2002-11-11 16:26 ]

Lenke til kommentar
Videoannonse
Annonse

Først og fremst må du gjere følgjande øverst i skriptet

Code:

$page = $HTTP_POST_VARS['page'];

 

Deretter

Code:

{
// Does the file $directory/$page.php exist?
if(file_exists($directory.$page.'.php'))
include($directory.$page.'.php');
else
print "Sorry, this page does not exist";
}

 

Trur ganske enkelt det er eit problem med at du ikkje har slått på støtte for variabler for kommando-linja, noko som det faktisk er anbefalt at er slått av. :smile: Om du framleis har problem, ver venleg å gje beskjed.

Lenke til kommentar

Quote:

Trur ganske enkelt det er eit problem med at du ikkje har slått på støtte for variabler for kommando-linja, noko som det faktisk er anbefalt at er slått av.


 

hvis dette er problemet hvordan slår jeg på støtte for variabler?

 

 

ja jeg har et annet navn på mappa

_________________

jeg finner vel på noe etterhvert

 

[ Denne Melding var redigert av: magikern på 2002-11-11 19:04 ]

Lenke til kommentar

$page må ikkje initialiserast dersom slike ting er slått på. For å slå på denne typen "juksing", så finn du instillinga i PHP.ini, men det er ikkje anbefalt å slå det på. Prøv heller måten eg sa, med å initialisere $page slik eg gjorde. Om det ikkje verkar, kom attende og sjå kva som skjer... :smile:

Lenke til kommentar
  • 5 uker senere...

Slik ville jeg ha gjort det:

Code:
 
$directory = 'includes';

if($page)
{
if(file_exists("$directory/$page.php"))
include_once("$directory$page.php");
else
print "Sorry, this page does not exist";
}
else
{
$mypage = "main.php";
include("$directory/$mypage");
}
?>

Lenke til kommentar
  • 2 måneder senere...

Har lært meg veldig mye mer om php siden den gangen jeg sleit med det scriptet og har siden skrevet det om ganske mye(fjernet noen ting før jeg la det ut her da det er ting og tang jeg ikke vil vise verden i originalscriptet, men dette er alt som trengs til inkludering):


<?PHP

//hvor du legger dine filer

$directory = '/helst en mappe før "document root"/';

//linja under sørger for at scriptet fungerer når register_globals=off

$page = $_GET["page"];



//vi vil vel ikke at besøkende skal inkludere filer utenfor $directory

$ilegal1 = ereg("../", $page);

$ilegal2 = ereg("/", $page);



//bare for å gjøre ting litt lettere senere

$home = ('http://yourdomain.com');



//hvis noen spør etter page

if($_REQUEST['page'])

{

      if(is_file("$directory$page.php")) //eksisterer fila i mappa?

      {

              if($ilegal1 OR $ilegal2) { //er fila ulovlig?

                 echo ("<em>HTTP/1.1 403 Forbidden</em><br /><a href=' $home '>go back</a>");



              }else{

              require_once("$directory$page.php"); //krev at fila vises

              }

      }else{

              echo ("<em>HTTP/1.1 404 Not Found</em><br /><a href=' $home '>go back</a>"); //vi fant vist ikke fila



}

}else{ /*det var vist ingen som spurte etter $page da viser vi bare en default $page*/

              header("Location: http://yourdomain.com/?page=welcome");

}



?>

 

for å bruke dette scriptet legg det i en fil du kaller index.php og legger i "document root" så legger du alle filer som skal inkluderes i en mappe som du skriver banen til i $directory = '';

i menyer skriver du linkene som <a href="?page=welcome">welcome</a>(hvis fila som skal inkluderes heter welcome.php)

 

selvfølgelig kan man også gjøre det slik ken skrev, men jeg har bare slengt inn masse mer beskyttelse.

Lenke til kommentar

jeg har brukt denne, men bare index.htm vises, ikke topp.htm alt ligger i samme mappe, den heter test

mappa test kommer etter rota mi ( der index fila skal ligge)

<?php

 

$MenuPath = "topp.htm";

 

include("$MenuPath");

 

?>

<?php

 

$IncludeDir = "/";

$DefaultPath = "index.htm";

 

if (isset($side)) {

$side = stripslashes(strip_tags($side));

$Forbidden1 = ereg("../", $side);

$Forbidden2 = ereg("/", $side);

 

if ($Forbidden1 OR $Forbidden2) {

echo "<h1>Advarsel</h1>n";

echo "<p>Foresp&rsler p& tvers av definerte n";

echo "omr&der er ikke tillatt.</p>n";

}

else {

if (@fopen("$IncludeDir/$side.inc", "r")) {

include ("$IncludeDir/$side.inc");

}

elseif (!(@fopen("$IncludeDir/$side.inc", "r"))) {

echo "<h1>Server Error 404</h1>n";

echo "<p>Finner ikke den forespurte siden.</p>n";

}

}

}

else {

include("$DefaultPath");

}

 

?>

Lenke til kommentar

i menyer skriver du linkene som <a href="?page=welcome">welcome</a>(hvis fila som skal inkluderes heter welcome.php)

 

kan de ha andre endinger enn php, feks htm ???

 

hvordan funker dette med tabeller og sånt?

 

når bruker jeg

index2.php

<? include("topp.htm") ?>

<? include("index2.htm") ?>

<? include("bunn.htm") ?>

 

topp har desigen og åpningen av tabellen der index2.htm skal inn

bunn lukker

Lenke til kommentar

kan de ha andre endinger enn php, feks htm ???

Ja
require_once("$directory$page.php");

bytt ut .php med hva du vil i denne linjen

 

 

hvordan funker dette med tabeller og sånt?

det fungerer med alle former for html

 

når bruker jeg

index2.php

<? include("topp.htm") ?>

<? include("index2.htm") ?>

<? include("bunn.htm") ?>

 

topp har desigen og åpningen av tabellen der index2.htm skal inn

bunn lukker

 

kan vise deg en standard slags template jeg selv bruker for tiden, men jeg bruker bare <div> de få gangene ejg tar i bruk tabeller er det bare for det jeg synes de KAN brukes til nemlig kalendere og lignende ting.

template

 

som du ser nederst på templaten min avslutter jeg <div class="main> etter å ha inkludert footer.php, dette er heller ikke noe problem med tabeller du kan selvfølgelig avslutte tabellen i footer også, bare husk å avslutt riktig </td></tr></table> på rett sted.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...