正确的注册session变量应该怎么写

my3b 2003-08-06 08:13:40
$username = $_SESSION['name'];
$numid = $_SESSION['id'];
上面的代码是我写的注册变量的语句,请大家帮我看看,这个写法对还是错,左边的为变量名,右边的为字段名,另外,我在下一个页面中用了如下代码验证是否注册了变量:
<?
session_start();
if(!isset($_SESSION['numid]')) {
?>
<script language=javascript>
alert("只有注册会员才有权限操作,请先登录 !")
</script>
<?
echo "<META HTTP-EQUIV=REFRESH CONTENT='0;URL=index.php'>";
exit;
}
?>
但运行时从来都是显示没有注册变量的提示语句,我觉得上面的注册变量语句似乎不对,但将变量名和后面的字段名调换过来也没用,还是没有注册,请大家帮我指正一下正确的写法应该如何写?
...全文
181 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
ashchen 2003-08-08
  • 打赏
  • 举报
回复
to:my3b(重阳公子) 你不会如何调试吗?
在b页你在session_start();后面加上echo $_SESSION['id'];exit;
看看有没有值,如果没有则说明问题出在你写session的那个页面有问题
如果还搞不定就放弃吧,我们也帮不了你了,你不适合写php

to: wohugb(☆大☆鼻☆子☆)
unset()里面只能什变量不能是字符串
ss下面的:
unset($_SESSION['name']);
大鼻孑 2003-08-08
  • 打赏
  • 举报
回复
我用了unset('$_SESSION['name']')
为什么提示Parse error: parse error, unexpected T_UNSET in :\server\vip\gb\logout.php on line 5

什么意思啊?
MeE 2003-08-07
  • 打赏
  • 举报
回复
哈的很!!
肯定是将右边的值付给左边啊
学了这么久的程序难道就把最简单的道理忘记了?

$_SESSION['fuck']=$fuck;//注册并付值
$_SESSION['fuck']='';//清空
$_SESSION['fuck']=null;//注销
my3b 2003-08-07
  • 打赏
  • 举报
回复
按照陈辉的方法做了,但还是不行,我在b页的开头写了验证代码:
<?
session_start();
if(!isset($_SESSION['id'])) {
?>
<script language=javascript>
alert("只有注册会员才有权限操作,请先登录 !")
</script>
<?
echo "<META HTTP-EQUIV=REFRESH CONTENT='0;URL=index.php'>";
exit;
}
?>
但运行时还是退回到首页,显然并未注册成功,再指点一下好吗?在你那儿验证一下,怎么样?看看你那儿结果如何?
ashchen 2003-08-07
  • 打赏
  • 举报
回复
如此简单的问题为何描述的如此复杂?呵呵
验证密码的代码就不写了
验证好以后得到用户id,写入session中
语句:
session_star();
$_SESSION['id']=$id;//$id是你从数据库中验证查询得到的

在其他页面如果你要得到id可以用如下语句
session_star();
if(!isset($_SESSION['id']))
退出语句;
else
$numid=$_SESSION['id'];
这样就得到用户id值为$numid。

不要用asp的语法来理解或运用php
思想虽然一样但是写法有许多差异


my3b 2003-08-07
  • 打赏
  • 举报
回复
但问题还是没有解决啊,大家帮帮我呀,我实在都头疼了。
ustb 2003-08-07
  • 打赏
  • 举报
回复
这样才对。
my3b 2003-08-07
  • 打赏
  • 举报
回复
我还是没有搞懂,就这样说吧,如果从首页输入用户名及密码转到a页,那在a页应该如何注册变量呢?接下来从a页传到b页,其实csdn登录后不就是这样的吗,想必大家能看懂我的意思,在b页开头验证变量是否注册,在b页中显示会员资料的sql语句应用如下格式:
$sql="select * from dbuser where id='$numid'";
即根据id号来显示会员资料,否则程序怎么会知道应该显示哪位会员的资料呢?我知道用where name='$username'也可能显示会员资料,但我还是希望用id号来显示会员资料,我的意思大家应该看得懂,我在asp中是这样写的,在输入用户名及密码传到a页,a页中的注册变量如下所写:
session("username")=RS("name")
session("userid")=RS("id")
再接下来转到b页,在b页中所写的sql语句如下:
select * from [user] where id=" & session("userid")
我发现我的意思大家似乎没有看懂,就是说我在asp中是这样显示会员资料的,在php中也希望能以同样的形式来显示会员资料,这里的id号是关键,只有在程序中指明id号才能显示相应的会员资料,否则无法显示了,关键就是在a页中如何获取会员id号,我觉得我这样写并没错($sql="select * from dbuser where id='$numid'";),但问题是这个numid变量根本就没有传递过来,所以导致无法显示,问题很简单,但实现起来却做不到,可悲矣!不知是我的表达能力原因,大家似乎没有明白我的意思,哪位对asp和php都熟悉的网友应该能看懂我的意思。
ashchen 2003-08-07
  • 打赏
  • 举报
回复
描述很不清晰
问题出在你从mysql获得信息和注册session吧?

$username = $_SESSION['name'];
$numid = $_SESSION['id'];
上面的代码是我写的注册变量的语句,请大家帮我看看,这个写法对还是错,左边的为变量名,右边的为字段名,另外,我在下一个页面中用了如下代码验证是否注册了变量:
<?
session_start();
if(!isset($_SESSION['numid]')) {
?>
<script language=javascript>
alert("只有注册会员才有权限操作,请先登录 !")
</script>
<?
echo "<META HTTP-EQUIV=REFRESH CONTENT='0;URL=index.php'>";
exit;
}
?>
改成如下

$_SESSION['name']=$username ;
$_SESSION['id']=$numid;
上面的代码是我写的注册变量的语句,请大家帮我看看,这个写法对还是错,左边的为变量名,右边的为字段名,另外,我在下一个页面中用了如下代码验证是否注册了变量:
<?
session_start();
if(!isset($_SESSION['id]')) {
?>
<script language=javascript>
alert("只有注册会员才有权限操作,请先登录 !")
</script>
<?
echo "<META HTTP-EQUIV=REFRESH CONTENT='0;URL=index.php'>";
exit;
}
?>
vitalgg 2003-08-06
  • 打赏
  • 举报
回复
不知所云!(什么是字段?! SESSION数组怎么和字段扯上了?)
=======================================
session_start(); //开始会话.
$_SESSION['name'] = "my_name";//记录SESSION;
$user_name = $_SESSION['name'] ;//将$_SESSION['name']的值"my_name"赋给$user_name
isset($_SESSION['name']);//检测SESSION变量.
unset($_SESSION['name']);//注销SESSION.
=======================================
假设数据库结构有两个字段;id(会员ID),name(会员名);
返回会员名为netvt的会员ID: select id from tbl where name='netvt';
my3b 2003-08-06
  • 打赏
  • 举报
回复
如果我用这样的sql语句自然会显示会员资料了:
from user where id=1
这样指出id号自然会显示会员资料了,但你知道这怎么能行呢,只能根据输入的用户名来获得id号才行嘛!
my3b 2003-08-06
  • 打赏
  • 举报
回复
对,我用的是mysql,希望能根据id号来显示用户资料,我在asp中都是这样的,但不知为何,在php中要实现似乎非常难,写来写去的总是不对,非常之烦,找了很多的资料,也找不到相应的答案,按理说这应该不难,发了好几篇帖子也没有得到准确答案,关键就是怎样能获得会员的id号,至于username都是能正确获取的,就是这id号无法获取,但我在显示页面的sql语句是这样的写的:
from user where id=$numid,如果没有获得会员的id号,那程序怎么会知道应该显示哪位会员的资料呢?你能帮我写一个代码吗?
bflovesnow 2003-08-06
  • 打赏
  • 举报
回复
你是想在注册后(是MySQL么?),将该用户的ID和用户名注册到SESSION的么?
my3b 2003-08-06
  • 打赏
  • 举报
回复
扬帆朋友说的$username = $_SESSION['name']; 这是读取session变量的语句我觉得不对,在新版的php中都推荐用此种方法来注册变量的,并不提倡(也不需要)用session_register来注册变量,也不提倡用session_is_registered来验证变量是否注册,不知我的理解是否对?

而北风网友所写的语句我亦认为不对,$_SESSION后面应该是变量名,而不是字段名(我所写的代码中name是字段名,$username才是变量名,我的看法对还是错呢?而且实际测试时也的确如此。

$name = trim($_POST["username"]);
$password =trim($_POST["password"]);
这是a页的获取填入的用户名和密码的语句,但这个numid我实在不知应该如何获取,这是获取会员id号的,我实在不知应该怎么写才对,我在asp中都是这样写的:
session("username")=RS("name")
session("userid")=RS("id")
在asp中前面的userid对应于id这个字段,但在php中我却不会写了,这个id号无法赋值呀,根本不是从表单中获取的,请各位高手指点一下,对php中的获取id号我一片模糊,搞不清楚,在书中也没有找到答案。
bflovesnow 2003-08-06
  • 打赏
  • 举报
回复
this:
session_start();
$_SESSION['name'] = $username;
$_SESSION['id'] = $numid;

//但不知道$username和$numid是从哪里来的
扬帆 2003-08-06
  • 打赏
  • 举报
回复
$username = $_SESSION['name']; 这是读取session变量的语句

注册如下:
session_start();

session_register("name");
$name="name";
//注册session

用session_is_registered("name")来判断是否注册session变量。返回值为true和false;

用session_unregister("name")来注销session变量,

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧