当前位置: 代码迷 >> PHP >> php里头session传递不到值
  详细解决方案

php里头session传递不到值

热度:204   发布时间:2016-04-28 18:46:33.0
php里面session传递不到值
打开index.php,如果没有登录就提示需要登录,并且给了login,php的连接,单击就可以登录,登录成功以后返回到index.php,但是我不知道哪里不对,总是不行。
index.php

<?php
session_start();

if(isset($_SESSION['user']) && $_SESSION['user']===1){
echo 'welcome admin';
}else{
echo "plase login.<br><a href='login.php'>Login</a>";
}


Login.php

<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>请登录--后台管理系统</title>
<style type="text/css">


</style>
</head>

<body>
<form action="do.php" method="post">
     <table>
        
         <tr>
             <th>用户名</th>
                <td><input type="text" maxlength="10" name="user" /></td>
            </tr>
            
            <tr>
             <th>密码</th>
                <td><input type="password" name="pass" maxlength="10" /></td>
            </tr>
            <tr>
             <td colspan="2" align="center">
                 <input type="submit" />
                    <input type="reset" />
                </td>
            </tr>
        </table>
    
    </form>

</body>
</html>


do.php

<?php

$link=mysql_connect('localhost','root','root123')or die('连接数据库失败');
mysql_select_db('test',$link)or die('不能选择数据库test');
mysql_query('set names utf8');

$user=$_POST['user'];
$pass=$_POST['pass'];
if($user==''){
echo '请填写用户名';
exit();
}
if($pass==''){
echo '请填写密码';
exit();
}
$sql="select * from user where user='{$user}' and pass='{$pass}'";

echo $sql;
$result=mysql_query($sql);
//var_dump($result);

if($result>0){
$_SESSION['user']='222';
//header("Location: index.php");
echo '<pre>';
print_r($_SESSION);
echo '</pre>';
echo $_SESSION['user'];
}

?>

------解决方案--------------------
session_start()必须在.php的最上面,且do.php里也必须写上,祝你好运。
------解决方案--------------------
do.php 最頂加上session_start();
------解决方案--------------------
do.php加上session_start();
------解决方案--------------------
if(isset($_SESSION['user']) && $_SESSION['user']===1){

首先你得确认你存的值一定是数值型的1,不然就不能用===来比较;
再者如果你do页面的登录后的输出是测试的话,如果echo不出你设置的session
那就是你的session没有开启
在do页面第一行 session_start();
  相关解决方案