$_SERVER['PHP_SELF'] i include fil
Jeg oprettede et spørgesmål angående dette for et par dage siden (http://www.eksperten.dk/spm/659369). Jeg fik et svar, som jeg troede jeg kunne bruge, men da jeg så skulle sætte koden ind på min side fik jeg et problem.Ideen var at på alle mine sider (her: side1.php og side2.php) skulle inkluderes en fil i toppen, som indeholdte min menu (her: inkluderet.php). I denne menu skulle der være et link, hvor man kunne skifte mellem dansk og engelsk.
De to hovedsiders kode:
________________________side1.php:________________________
<html>
...
<body>
<?php
require ("inkluderet.php");
?>
<br>
<?php
if ($_GET['language'] == 'engelsk') {
print "side1 er på engelsk";
} elseif ($_GET['language'] == 'dansk') {
print "side1 er på dansk";
}
?>
</body>
</html>
__________________________________________________________
________________________side2.php:________________________
<html>
...
<body>
<?php
require ("inkluderet.php");
?>
<br>
<?php
if ($_GET['language'] == 'engelsk') {
print "side2 er på engelsk";
} elseif ($_GET['language'] == 'dansk') {
print "side2 er på dansk";
}
?>
</body>
</html>
__________________________________________________________
Jeg fik så det svar at jeg kunne bruge $_SERVER['PHP_SELF'], som ganske rigtigt retunere sidens URL, præcist som jeg ønskede det. Indsat i min kode ville det se sådan ud:
_____________________inkluderet.php______________________
<a href="<?php print $_SERVER['PHP_SELF'] print "?language=engelsk"; ?>">Tryk her for at læse siden på engelsk</a>
__________________________________________________________
Og $_SERVER['PHP_SELF'] retunere, fuldstændig som jeg søgte, sidens URL, men når man bruger den sammen med require retunere den åbenbart den orginale sides URL (inkluderet.php) i stedet for den side, hvor filen bliver inkluderet (side1.php eller side2.php).
Koden vil altså, på side1.php, ikke komme til at se ud som følgende:
________________________side1.php:________________________
<html>
...
<body>
<a href="side1.php?language=engelsk"; ?>">Tryk her for at læse siden på engelsk</a>
<br>
<?php
if ($_GET['language'] == 'engelsk') {
print "side1 er på engelsk";
} elseif ($_GET['language'] == 'dansk') {
print "side1 er på dansk";
}
?>
</body>
</html>
__________________________________________________________
Men i stedet:
________________________side1.php:________________________
<html>
...
<body>
<a href="inkluderet.php?language=engelsk"; ?>">Tryk her for at læse siden på engelsk</a>
<br>
<?php
if ($_GET['language'] == 'engelsk') {
print "side1 er på engelsk";
} elseif ($_GET['language'] == 'dansk') {
print "side1 er på dansk";
}
?>
</body>
</html>
__________________________________________________________
Er der en måde så man kan få php til at vente med at afvikle $_SERVER['PHP_SELF'] til efter den er blevet sat ind i den anden fil eller er der en anden smart måde man kan gøre det på?
Håber at I kan hjælpe en mand i nød! :)