我有一个profile.php
页面与变量uid?=12
,我有一个语言栏是在一个单独的页面称为lang.inc.php
:
个人资料页:
<div class="langbar">
<?php include 'inc/lang.inc.php'; ?>
</div>
lang.inc.php
<center>
<a class="flag_USA" title="English" href="<?php echo basename($_SERVER['PHP_SELF']); ?>"><img src="css/images/us.png"></a> <span> </span>
<a class="flag_France" title="French" href="<?php echo basename($_SERVER['PHP_SELF']); ?>?lang=fr"><img src="css/images/fr.png"></a> <span> </span>
<a class="flag_dutch" title="Dutch" href="<?php echo basename($_SERVER['PHP_SELF']); ?>?lang=de"><img src="css/images/de.png"></a> <span> </span>
<a class="flag_Italy" title="Italian" href="<?php echo basename($_SERVER['PHP_SELF']); ?>?lang=it"><img src="css/images/it.png"></a> <span> </span>
<a class="flag_Italy" title="" href="<?php echo basename($_SERVER['PHP_SELF']); ?>?lang=es"><img src="css/images/sp.png"></a> <span> </span>
<?php echo $_SERVER['PHP_SELF']; ?>
</center>
正如你所看到的,我试图将?lang=fr
附加到profile.php?uid=12
的末尾,所以它看起来像profile.php?uid=12&lang=fr
,但它所做的就是profile.php?lang=fr
。
我很确定$_SERVER['PHP_SELF']不包括get变量,只是文件路径,所以你必须自己添加uid到href
<?php
$basename = basename($_SERVER['PHP_SELF']); // Lets store the basename
$basename_with_uid = $basename . "?uid=" . $_GET['uid']; // and append the uid from the URL. Make sure to do some validation if $_GET['uid'] exists.
?>
<a class="flag_France" title="French" href="<?php echo $basename_with_uid; ?>&lang=fr"><img src="css/images/fr.png"></a>
REQUEST_URI可能是您要的:
<a class="flag_France" title="French" href="<?php echo $_SERVER['REQUEST_URI']; ?>&lang=fr"><img src="css/images/fr.png"></a>
如果你的页面是profile.php?Uid =12,输出应为:
profile.php?uid=12&lang=fr
Ref: PHP $_SERVER variables
edit您可能仍然需要在REQUEST_URI周围添加basename(),这取决于您正在做什么