我是社区新手,这是我到目前为止的第一个问题。
一小时前我就被卡住了。会话检查用户是否登录,然后显示带有include的login-form_eng.php
或logout-form_eng.php
。问题是显示的图像显示3次,我只调用一次include函数。
<body>
<div id="full-wrap" class="container-wrap">
<div id="header-wrap" class="secondary-wrap">
<h1 class="linky-logo" title="elcoma.com"></h1>
<div id="main-menu-wrap" class="secondary-wrap">
<table border="0"cellspacing="0"cellpadding="0">
<tr><td>
<a class="linky8"title="Home"onclick="alert('Button Click')">
</td><td>
<a class="linky2"title="News"onclick="alert('Button Click')">
</td><td>
<a class="linky3"title="Products"onclick="alert('Button Click')">
</td><td>
<a class="linky4"title="Services"onclick="alert('Button Click')">
</td><td>
<a class="linky5"title="About Us"onclick="alert('Button Click')">
</td><td>
<a class="linky6"title="Contact"onclick="alert('Button Click')">
</td>
</tr>
</table>
</div>
</div>
<div id="login-logoff-wrap" class="secondary-wrap">
<?php
session_start();
if(isset($_SESSION['user']))
{
echo "Welcome back ". $_SESSION['user']. ". Please enjoy your stay at our site!";
include "logout-form_eng.php";
} else {
echo "Welcome guest. Please log in or register at our site";
include "login-form_eng.php";
}
?>
</div>
</div>
以下是问题解决方法的链接:
修改
显然,php脚本周围的两个div导致了问题。但是我仍然无法解释为什么,有人可以向我解释一下吗?
我逐个删除了所有div中的所有类,然后我开始删除div。这就是我的解决方案,围绕php登录脚本的两个div以某种方式“调用”脚本?我没有其他解释,我希望有一个有效的解释。谢谢!
答案 0 :(得分:1)
session_start()应该在页面上的所有输出之前。您在PHP之前使用的HTML被视为输出。
由于您没有为两个PHP页面发布PHP,因此其中一个页面中是否有重定向可以自行循环?
还可以使用include_once()来防止多次包含页面。 http://php.net/manual/en/function.include-once.php
答案 1 :(得分:0)
检查你的CSS。类secondary-wrap
在DOM中使用了三次。我想,在CSS中,图像用作.secondary-wrap
中的背景。
要解决这个问题,你可以坚持使用额外的课程,比如说.my-picture
<div>
:
<div id="header-wrap" class="secondary-wrap my-picture">
并将背景图片从.secondary-wrap
移至新.my-picture
。
或者只是从其他两个div中删除class="secondary-wrap"
:
<div id="main-menu-wrap" class="secondary-wrap">
和
<div id="login-logoff-wrap" class="secondary-wrap">
如果此课程中没有其他相关的CSS。