非常希望有人能帮上忙。我是php的新手。我试着通过教程自学,我到处寻找都无济于事。
基本上我正在寻求实现一个“如果index.php页面,显示foo
,如果不在index.php页面上,显示bar
”
有什么想法吗?
我希望我能解释的足够好..。
index.php包含一个侧边栏:
require_once('./cache/templates/sidebar.php');
构建的每个后续页面都使用此index.php文件中定义的内容,这意味着sidebar.php是必须的。
我想编辑sidebar.php包含一个广告,这只显示在索引页面上。
目前,当我编辑sidebar.php时,例如,显示字母"B",它会显示在主页上,每隔一个页面就会这样显示;
索引页:http://img.photobucket.com/albums/v684/nilsatis/1stack.jpg
每隔一页:http://img.photobucket.com/albums/v684/nilsatis/2stack.jpg
如何指定包含文件的一个区域显示在一个页面上,而不显示在其他页面上?
任何帮助都将不胜感激。
编辑这是有问题的网站: www.grandoldteam.com。您可以看到我在哪里有文本"Test“-这是在sidebar.php中输入的。我希望这个文本(未来的广告)只在首页功能,没有其他地方。
编辑2这是在index.php文件中调用sidebar.php的位置;
<p class="page_desc">'.$PAGE['subtitle'].'</p>
' );
}
if (isset($url[1])) require_once('./cache/html/'.$url[0].'/'.$url[1].'.php');
else require_once('./cache/html/'.$url[0].'.php');
}
}
require_once('./cache/templates/sidebar.php');
}
require_once('./cache/templates/footer.php');
这是but,我可以在其中编辑sidebar.php来显示想要的文本;
<div class="clear"></div>
test
</div>
<p>
</div>
发布于 2011-04-22 13:24:06
要以您想要的方式完成此操作,请使用$_SERVER超级全局。脚本的名称出现在多个位置。
if (strpos($_SERVER['SCRIPT_NAME'], 'index.php') !== false) // index page...
另一种选择是在包含侧栏之前让index.php设置一些变量,比如$show_ad,并且侧栏页面可以检查该变量。
发布于 2011-04-22 13:34:30
我不建议检索调用者脚本的名称,因为多个页面可能在不同的文件夹中具有相同的名称,还因为您可能希望在将来更改页面名称。
使用一个全局变量或一个常量来说明哪个页是调用者。
index.php:
<?php
$GLOBALS['caller_page'] = 'index';
require_once('./cache/templates/sidebar.php');
...
sidebar.php:
<?php
...
if ( isset($GLOBALS['caller_page']) && ($GLOBALS['caller_page']=='index') ) {
... // special action for the index page
}
...
发布于 2011-04-22 13:24:22
试着这样做,
在您只想显示"foo“的页面上创建一个会话。
然后这样做
if ($_SESSION['valid']) {
//if the session is present, then show
}
else {
//if not,
}
这不仅是一种更好的方式,因为如果你的文件名改变了会发生什么?这样,它就不重要了,因为它是在检查会话,而不是可能发生更改的东西:)
https://stackoverflow.com/questions/5755821
复制