ellr nu kom jag på det. det ska ju vara:
$path = "[B]/[/B]inc/".$page.".php";
inte
$path = "inc/".$page.".php";
39 svar · 3 050 visningar · startad av Mycodez · sida 2 av 2
Tjena. Jag behöver lite hjälp med en grej till meny men jag vet inte om jag har postat i rätt del men det är bara flytta min om det är så. :) Jag har hållit på med att göra en snygg layout till min hemsida mycodez.se men när jag har hållit på nu så har jag fått för mig att göra en dynamisk sida :) men jag har lite problem, vet ej dock hur man löser dem. för att se hur sidan nu ser ut så är det
Läs frågan i sin helhet →ellr nu kom jag på det. det ska ju vara:
$path = "[B]/[/B]inc/".$page.".php";
inte
$path = "inc/".$page.".php";
Det som skrivs ut med echo är "inc/ut)/.php" om man refreschar sidna och när man e inne på t.ex. om så echos det ut "inc/ut)/index.php?page=blogg.php"
Skulle du kunna posta din kod en gång? För jag fattar inte hur det kan bli sådär!
Säger det samma jag fattar nadda
<?php
//$page = $_GET['page'];
$page=substr($_SERVER['REQUEST_URI'],16);
if($page!=""){
$path = "/inc/". $page .".php";
echo $path . "<br />";
if(file_exists($path)){
include($path);
}else {
echo "Sorry, that page doesn't exists.";
}
}else{
echo "Welcome to my Website";
//include("inc/home.php");
}
?>
Vart ligger koden? kör du den lokalt på din dator eller har du laddat upp den till mycodez.com?
just nu ligger den local men ka ntesta och ladda upp det på https://www.mycodez.se/test
nu ligger det på https://www.mycodez.se/test och då blir echot så här
/inc/page=kontakt.php
tydligen så tolkar olika webbservrar REQUEST_URI på olika sätt.
Men om du skriver så här istället:
$page=substr($_SERVER['REQUEST_URI'],[B]21[/B]);
och laddar upp den till mycodez.se/test så borde det fungera.
okej, ja g la upp det och echo blev ändrad och det blev så här /inc/kontakt.php
;) men filerna blev inte includerade ..
Eftersom sökvägen ( /inc/ut/index.php?page=blogg.php ) börjar med / så utgår den från serverns rotmapp. Rätt sökväg är isåfall /test/inc/ut/etc... eller ./inc/ut/etc...
Prova alltså att ändra raden
$path = "inc/".$page.".php";
till
$path = "./inc/".$page.".php";
Det är nog något skumt med file_exists(). Prova utan en gång:
<?php
$page=substr($_SERVER['REQUEST_URI'],21);
if($page!=""){
$path = "inc/". $page .".php";
echo $path . "<br />";
include($path);
}else{
echo "Welcome to my Website";
//include("inc/home.php");
}
?>
Det funkar :D men vart kan jag sätta # den som sätter menyn på rätt ställe ;)
byt bara ut alla ? mot # nu. Det spelar ingen roll vilket du har.
Okej men dynamiken funkar inte längre bara för jag byte ut alla ? till #
alltså urlen ändras men inte include filerna
Driver du med mig? Då kan du strunta i de där servervariablerna helt och använda get istället. Sen får någon som är bra på javascript hjälpa dig med den delen.
En länk med #-tecken ska inte ladda om sidan, eftersom den är tänkt att länka till ett ankare på samma sida (eller anchor, som är just vad a-elementet döpts efter).
Den skapar ingen ny HTTP-request och därför körs inte PHP-koden igen.
Enklaste lösningen är att ändå använda ? för att bygga query-strängar som får sidan att laddas om.
Sen att menyn inte fungerar som du vill har att göra med att pluginen LavaLamp som du använder inte verkar fungera som du förväntar dig.
Den känner inte av vilken sida man är på för tillfället utan flyttar bara markeringen just när man klickar på en länk. Laddar man om sidan så är den tillbaka på noll igen.
Du måste alltså antingen ladda sidorna asynkromt med AJAX (så att ingen ny HTTP request sker) eller bygga ut / konfigurera pluginen på något sätt.
du skulle ju kanske kunna skriva länkarna som: "index.php?page=kontakt#page=kontakt"??
Okej så då är det bara att man får göra en tråd i Javascripts delen av detta forum då eller? för jag har nu till och med skrivit att länkarna er ut såhär "index.php?page=kontakt#page=kontakt" men då funkar dynamiken men inte menyn så det får man kolla på.. Tack ändå :)