热搜:NVER node 开发 php

phpsession求指导

2024-09-03 10:25:01
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"点击进入"; 

else { 
exit('登录失败!点击此处 返回 重试'); 


回复讨论(解决方案)

This function has been DEPRECATED as of PHP 5.3.0 and REMOVED as of PHP 5.4.0.

直接用$_SESSION吧。

而且你的session_register ("nowuser") ; 时,nowuser是空的。

我的php版本还是4.多的。。。。
还有nowuser不是接受$username的赋值了吗

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

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

如果想直接 echo $nowuser;
则需要打开 register_globals 开关

我并没有要读取,我想在另一个php脚本里调用当前登入的登入者的用户名,这该怎么做。

你不读取如何知道用户名是否存在、是什么?

先用一个php接收提交的表单用户名和密码,如果用户名和密码都和数据库中的相同,那么我想在logi。php中通过session来记下这个 正在登入的用户的用户名,然后在其他的php文本里调用这个用户名,来实现把我下一步想增加的信息添加到已存在用户的数据库表下。这个思路用session来实现有问题吗?还是我误解session的用法了。如果误解了,你可以给我提供一个实现该功能的思路吗?

login.php
保存session值:
$_SESSION['uname'] = "admin";


其他页面调用
session_start();
echo $_SESSION['uname'];

我来补全一下:

login.php(保存session值)
session_start();
$_SESSION['uname'] = "admin";


其他页面调用(提取session值)
session_start();
echo $_SESSION['uname'];

你就把session_start理解成开启了浏览器范围的全局变量$_SESSION 就行了...

登入检查页面

<?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"点击进入"; } else { exit('登录失败!点击此处 返回 重试'); } ?>


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

谢谢楼上诸位,受用了。

我来补全一下:

login.php(保存session值)
session_start();
$_SESSION['uname'] = "admin";


其他页面调用(提取session值)
session_start();
echo $_SESSION['uname'];

你就把session_start理解成开启了浏览器范围的全局变量$_SESSION 就行了...



正解 ,结贴给分吧