是不是因为php.ini里的regiser_globals=off的问题?把值改为on

解决方案 »

  1.   

    你可以用楼上 feyge(菲戈..不以物喜,却以已悲) 兄弟讲的,新的写法.处理表单
    PHP 一个很有用的特点体现在它处理 PHP 表单的方式。您需要理解的非常重要的原理,是表单的任何元素都在您的 PHP 脚本中自动生效。请参阅本手册“PHP 之外的变量”以获取关于在 PHP 中使用表单的详细信息及范例。以下是 HTML 表单的范例: 例子 2-6. 一个简单的 HTML表单<form action="action.php" method="POST">
     Your name: <input type="text" name="name" />
     Your age: <input type="text" name="age" />
     <input type="submit">
    </form>
     该表单中并没有什么特殊的地方,其中没有使用任何特殊的标识符。当用户填写了该表单并点击了提交按钮,页面 action.php 将被调用。在该文件中,您可以加入如下内容: 例子 2-7. 打印来自表单的数据Hi <?php echo $_POST["name"]; ?>.
    You are <?php echo $_POST["age"]; ?> years old.该脚本的输出可能是: Hi Joe.
    You are 22 years old. 
    该脚本进行的工作应该已经很明显了,这儿并没有其它更复杂的内容。PHP 将自动为您设置 $_POST["name"] 和 $_POST["age"] 变量。在这之前我们使用了自动全局变量 $_SERVER,现在我们引入了自动全局变量 $_POST,它包含了所有的 POST 数据。请注意我们的表单提交数据的方法(method)。如果我们能使用了 GET 方法,那么表单中的信息将被储存到自动全局变量 $_GET 中。如果您并不关心请求数据的来源,您也可以用自动全局变量 $_REQUEST,它包含了所有 GET、POST、COOKIE 和 FILE 的数据。请参阅 import_request_variables() 函数。
      

  2.   

    以上两种都可以解决
    如果你用的是一个早期版本PHP编的程序,想在PHP4.X下运行 ,又不想去改动代码了,就用第一种方法
    如果你是正在编写的话,建议使用第二种
      

  3.   

    优先检查上面的问题,通常在由3.x升到4.x会出现类似的问题
    当然也完全有可能是web服务器的问题
      

  4.   

    再请问大家一个问题:
    它不能发送头信息又是怎么一回事呢?

                   if(!$HTTP_COOKIE_VARS["username"])
     header("Location:login.htm");
              或
                   setcookie('username', $_POST["uname"], time() + 3600);
    它都会出下以下信息    
    Cannot modify header information - headers already sent by (output started at d:\classroom\php\cookie.php:6) in d:\classroom\php\cookie.php on line 17
    .
    括号中的cookie.php:6就是PHP脚本开始的地方。后面的17就是  if(!$HTTP_COOKIE_VARS["username"])
     header("Location:login.htm");
              或
                   setcookie('username', $_POST["uname"], time() + 3600);的地方。