日期:2014-05-16  浏览次数:20543 次

phpsession求指导
想在用户登入时用session保留他的用户名,一边在其他php文本里调用 ,但怎么写都不对,谁可以指导一下? 


<?php 
session_start(); 
// 保存6小时 
$lifeTime = 6 * 3600; 

session_register ("nowuser") ; 
$username = htmlspecialchars($_POST['username']); 
$nowuser=$username; 
$password = $_POST['password']; 
$lastdate = date('Y-m-d'); 
include('conn.php'); 
mysql_query("set character set 'gbk'"); 
mysql_query("set names 'gbk'"); 

$sql = "select * from user where username='".$username."' and password='".$password."' "; 
$check_query=mysql_query($sql); 
$num=mysql_num_rows($check_query); 

if($num>0) 

echo "你好.$username.欢迎进入你的空间!"; 
echo "你最近一次的登入时间为.$lastdate"; 
echo"<a herf='indexin.html'>点击进入</a>"; 

else { 
exit('登录失败!点击此处 <a href="javascript:history.back(-1);">返回</a> 重试'); 

------解决方案--------------------
从 php 4.1.10 开始,session 的操作就应该用 $_SESSION 数组
既然你已经有用 $_POST ,那么你的 php 版本就该在 4.1.10 以上了

你只给除了 session 变量的设置,并没有给出读取
session_start();
echo $_SESSION['nowuser'];

如果想直接 echo $nowuser;
则需要打开 register_globals 开关
------解决方案--------------------
登入检查页面

<?php 
session_start(); 

$username = htmlspecialchars($_POST['username']); 

$password = $_POST['password']; 
$lastdate = date('Y-m-d'); 
include('conn.php'); 
mysql_query("set character set 'gbk'"); 
mysql_query("set names 'gbk'"); 

$sql = "select * from user where username='".$username."' and password='".$password."' "; 
$check_query=mysql_query($sql); 
$num=mysql_num_rows($check_query); 

if($num>0){ 

$_SESSION['nowuser'] = $username;

echo "你好.$username.欢迎进入你的空间!"; 
echo "你最近一次的登入时间为.$lastdate"; 
echo"<a herf='indexin.html'>点击进入</a>"; 

else { 
exit('登录失败!点击此处 <a href="javascript:history.back(-1);">返回</a> 重试'); 

?>


登入后的页面:

<?php
session_start();
if(isset($_SESSION['nowuser'])){
    echo "你好".$_SESSION['nowuser']."欢迎进入你的空间!"; 
}else{
    echo "未登入";
}
?>