头部是一个公共文件,始终显示用户登录或未登录对应的信息只能在用户登录过后的那个页面显示用户名,点击到其他页面却不显示,为什么呢?登录代码如下
   <?php
    session_start();
     include_once("inc/config.php");
     include_once("inc/conn.php");
 $Action=$_GET["Action"];
 if($Action==login)
 {
    $user_name=$_POST["user_name"];
$password=$_POST["user_pass"];
$pass=md5($password);
$sql="select * from user where UserName='".$user_name."'";
$result=mysql_query($sql);
if(mysql_num_rows($result)==1)
{
  $res=mysql_fetch_array($result);
 // $smarty->assign("res",$res["Password"]);
 // $smarty->assign("pass",$password);
  if(trim($pass)==$res["Password"])
  {
    echo "<script>alert('登陆成功!');</script>";
$_SESSION["username"]=$user_name;
//$a=$_SESSION["username"];
//$smarty->assign("a",$_SESSION["username"]);
//header("location:index.php");
  }
  else
  {
     echo "<script>alert('密码错误!');</script>";

  }
}
else
{
  echo "<script>alert('不存在该用户!');</script>";
 // header("location:index.php");
}
 }
 
 $smarty->display("login.tpl");
?>
头部主要代码:
    <?php 
     session_start();
 var_dump($_SESSION["username"]);
     if($_SESSION["username"]=="")
  ?>
<font color="#787878">欢迎{%$a%}加入!<?php var_dump($_SESSION["username"]);?></font>

<a href="login.php"  >
<img src="images/ind_dl.gif" style="vertical-align: middle;" border="0"></a>
<a href="reg.php" style="color: rgb(219, 1, 149); margin: 0px 16px 0pt 2px; text-decoration: underline;">
<img src="images/ind_zc.gif" style="vertical-align: middle;" border="0"></a>
<?php
    else 
    ?>
  <font color="#787878">欢迎加入,<?php echo $_SESSION["username"];?>!</font>
<a href="logout.php">退出登录</a>

</li>判断不起作用,测试把session放到一个变量里,然后在模板页输出,就可以。采用<%$smarty.session.username%>也是只在login.tpl中显示用户,其他页面则不显示,为什么呢?
$_SESSION["username"]不能再所有页面中访问吗?如何解决?

解决方案 »

  1.   

    login.tpl的代码能否贴出?还有你这样本身就代码混写了还用模板干嘛?
      

  2.   

    肯定是有地方对 $_SESSION["username"]重新赋值了吧
      

  3.   


    以前是这样写的
      {%if $smarty.session.username==""%}
       <font color="#787878">欢迎加入LEECR!</font>
    <a href="login.php"  >
         <img src="images/ind_dl.gif" style="vertical-align: middle;" border="0">
    </a>
    <a href="reg.php" style="color: rgb(219, 1, 149); margin: 0px 16px 0pt 2px; text-decoration: underline;">
    <img src="images/ind_zc.gif" style="vertical-align: middle;" border="0">
        </a>
      {%else%}
       <font color="#787878">欢迎加入LEECR,{%$smarty.session.username%}!</font>
       <a href="logout.php">退出登录</a>
      {%/if%}
    不行,我又那样写了
    login.tpl <form  name="form11" action="login.php?Action=login"  method="post">
       <div>
          <div class="floatL right bold" style="width: 100px; padding-top:5px;">
       用户名:
          </div>
          <div class="floatL right">
               <span id="spanUserNameTip" class="note error">请输入用户名</span>&nbsp;&nbsp;&nbsp;
          </div>
       </div>
               <div style="padding-top: 15px; padding-left: 100px;">
       <input class="image" src="images/user_login.jpg" type="image">
    <a href="reg.php"><span class="delinelogin">新用户请从此注册</span></a>
       </div>
    </form>