具体代码如下:
login.php
<?php
......
<form name="frmLogin" method="post" action="check_user.php">
用户名
<input type="text" name="user_name">
密码 
<input type="password" name="password">
<input type="submit" name="cmdLogin" value="登录" onclick="return CheckValid();">
</form>
......
?>check_user.php
<?php
session_start(); //装载Session库,一定要放在首行 
$user_name=$_POST["user_name"]; 
session_register("user_name");//注册$user_name变量,注意没有$符号
require_once("sys_conf.inc");//系统配置文件,包含数据库配置信息
//连接数据库
$link_id=mysql_connect($DBHOST,$DBUSER,$DBPWD);
mysql_select_db($DBNAME);//选择数据库]
.....
?>中间页面有跳转,当进入Display时,问题出现了......Display.php
<?
......
$SQL="insert into reply (bname,gid,price) values('".$_SESSION["user_name"]."',$gid,$price)";
......
>问题如下:
"Notice:Undefined index:user_name in d:\usr\www\html\c20\bid.php on line 12"在Display.php用isset($_SESSION["user_name"])测试,结果返回FLASE.
到底应该如果修改才能不出错,解释一下为什么会出错,还有介绍一下Session变量赋值方面的知识!

解决方案 »

  1. 如果register_global在php.ini中为off
    session_register("user_name");
    改为$_SESSION['user_name']=$user_name;如果register_global=on
    $user_name=$_POST["user_name"]; 
    session_register("user_name");//
    改为
    session_register("user_name");//
    $user_name=$_POST["user_name"];
      

  2. php.ini中register_global的值为on,如下修改:
    $user_name=$_POST["user_name"]; 
    session_register("user_name");//
    改为
    session_register("user_name");//
    $user_name=$_POST["user_name"];修改后问题仍然存在!
      

  3. register_global现在缺省都是Off了,直接用$_SESSION['user_name']=$user_name;不好吗?
      

  4. 老大,"Notice:Undefined index:user_name in d:\usr\www\html\c20\bid.php on line 12"错误出现在bid.php中吧