我在登录的界面创建了一个session然而到另外的一个页面却取不到值!
两个页面大概的内容如下:
a页面:
<?php
@session_start();
......$username=$_POST['username'];
$password=$_POST['password'];
..........
$_SESSION["username"]=$username;
$_SESSION["password"]=$password;
echo "<script>window.location.href=\"b.php\";</script>";
....
?>b页面:
<?php
@session_start();
echo $_SESSION["username"].$_SESSION["password"];
.............
?>
在b页面中怎么也不显示用户名密码什么的,用if(!isset($_SESSION["username"])) echo "not";判断也是输出:"not"。觉得很忧闷!各位帮帮忙..............

解决方案 »

  1.   

    是不是没取到post的值$username= 'a';
    $password= 'b';
    试试
      

  2.   

    再检查一下 session_path 的 php.ini 设置是否有误.建议调试期间, 不要使用@session_start();开启错误报告...
      

  3.   

    报错吗,看下php.ini里session_path(服务器端session文件的存放目录)在php.ini里是否已指定,session具体配置请参考PHP教程网
      

  4.   

    顶,开发阶段使用session_start();方法,有助于你调试
      

  5.   

    1.我确定的是$username、$password两个变量的值我是肯定取到了!2.确实不加@的时候有两个警告内容是:
    Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at G:\Template\Register\admin\Arr_login.php:3) in G:\Template\Register\admin\Arr_login.php on line 4Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at G:\Template\Register\admin\Arr_login.php:3) in G:\Template\Register\admin\Arr_login.php on line 4因为不懂这警告是什么意思,也以为加上也没什么关系!所以......
      

  6.   

    哦,对还有那个php.ini  配置问题,我觉得要是得改的话就没有通用性了,可能放到别人的服务器上(要是他的配置也没改的话)那就同样会出问题的!那么我写下的这个就....应该可以 说是个不完整的程序了吧!
      

  7.   

    这个warning的大致意思是你在session_start调用前已经在页面上输入东西了
      

  8.   

    我确实是把“session_start”放在最前面啊!不过警告照样有,所以我就加上了‘@’!不过如果像楼上“lazysmile”这么说的话,那么跟取值的问题就扯不上关系了!
      

  9.   

    哦!还有一个就是,如果我把a页面分成两个页面写了,也就是a1页面只做一个提交的作用(也就相当于一个html的页面),然后做一个a2页面用于处理a1页面提交过来的信息(创建session),那么在b页面就可以取到值了!请各位帮忙解释一下这是,为什么???本人菜鸟
      

  10.   

    神奇啊!吃个饭上来可以用了!绝对不是骗人的,警告照样有但就是可以用了!代码我还是贴出来:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <?php
    session_start();
    $ID=$_GET['id'];
    if($ID=='0')
    $Msg='用户名或密码错误!';
    elseif($ID=='')
    $Msg='';
    else
    $Msg='错误,未知错误!';
    ?>
    <head>
    <title>晴天打雨伞留言板后台登录</title>
    <link href="public.css" type="text/css" rel="stylesheet" />
    <script src="../check.js" type="text/javascript"></script>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head><body>
    <?php if($Msg){ echo "<script>setTimeout(\"codefans('err')\",2000);</script>";?>
    <div id="err" class="err">
    <TABLE cellSpacing=0 cellPadding=0 align="center">
    <TR><TD background="../images/rbox_1.gif" width=20 height=20></TD>
    <TD background="../images/rbox_2.gif" width=400></TD>
    <TD background="../images/rbox_3.gif" width=20 ></TD></TR>
    <TR><TD background="../images/rbox_4.gif" height=20></TD>
    <TD bgColor=#EEEEEE><?=$Msg;?></TD>
    <TD background="../images/rbox_6.gif"></TD></TR>
    <TR><TD background="../images/rbox_7.gif" height=20></TD>
    <TD background="../images/rbox_8.gif"></TD>
    <TD background="../images/rbox_9.gif"></TD></TR>
    </TABLE>
    </div>
    <?php };?><div class="welcome">
       <p><h2>欢迎来到晴天打雨伞后台登录</h2></p>
    <form action="Arr_login.php" method="post" name="form1" onsubmit="return Logincheck()">
       <table align="center">
    <tr><td class="lefttd">用户名:</td><td class="righttd"><input type="text" name="username" id="username" /></td></tr>
    <tr><td class="lefttd">密&nbsp;&nbsp;&nbsp;&nbsp;码:</td><td class="righttd"><input type="password" name="password" id="password" /></td></tr>
    <tr><td>&nbsp;</td><td class="righttd"><input type="submit" name="ok" value="登 录" /></td></tr>
    </table>
    </form><p>&nbsp;</p>
    </div>
    </body>
    </html><?php 
    if(isset($_POST["OK"])){
    require_once("../config/conn.php");
    $username=$_POST['username'];
    $password=$_POST['password'];
    $password=md5($password);
    $connect=new dbconnect("my_register");
    $result=mysqli_query($connect->connect,"select * from `arr_admin` where `Arr_name`='$username' and `Arr_password`='$password'");
    if(mysqli_num_rows($result)){
    $_SESSION["username"]=$username;
    $_SESSION["password"]=$password;
    //echo $_SESSION["username"].$_SESSION["password"];
    echo "<script>window.location.href=\"index.php\";</script>";
    }else{
    echo "<script>window.location.href=\"Arr_login.php?id=0\";</script>";
    }
    }
    ?>
      

  11.   

    session_start()前面不能有任何输出,html代码也算输出。
      

  12.   

    没le !我把它放在“<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">”前面也还是有警告!
    (还像用dreamwear编的都有这怪病),在网上查了一下好像说是编码问题吧??谁有解决的办法没有
      

  13.   

    还是有警告的话,请检查你的文件编码是否是utf-8+bom,如果是,使用编辑器另存为utf-8无bom头文件。