是啊,新版本的php.ini中register_globals 默认是关闭的。所以要用$_GET["sch"]来得到sch的值

解决方案 »

  1.   

    新版本应该这样写的
    <?php
      if (isset($_GET["sch"]))
      {
         echo "sch=".$_GET["sch"];
      }
      else 
     { 
        echo "not found sch";
      }
    ?>
      

  2.   

    上述错误是因为变量未定义造成的,同意 ccterran(iwind) 的写法,用isset判断变量是否存在.
      

  3.   

    如果不是传递过来的值也可以这样,在这之前进行初始化,
    <?php
    $sch=0;
    if ($sch==1)
      {
       echo "sch=".$sch;
      }
    else echo "not found sch";
    ?>
    如果是通过get方法传值过来的就用
    <?php
      if (isset($_GET["sch"]))
      {
         echo "sch=".$_GET["sch"];
      }
      else 
     { 
        echo "not found sch";
      }
    ?>如果是post方法传值就用:
    <?php
      if (isset($_POST["sch"]))
      {
         echo "sch=".$_POST["sch"];
      }
      else 
     { 
        echo "not found sch";
      }
    ?>url传值的话,直接那样没有问题的
      

  4.   

    小弟我终于明白症结所在,现在又有新问题了
    我用旧版本的php编写的页面至少有30个页面,
    每个页面直接调用的get或post的传递变量m多,
    如果我都改成$_get,$_post云云,简直要晕死掉
    而俺们又不可能去改人家服务器上的ini的register_globals值
    所以,有没有直接写register_globals的地方,如放在头文件里,我一调用就万事ok了,
    请教!
      

  5.   

    extract($_REQUEST);
    extract($_SESSION);
    extract($_ENV);
    extract($_SERVER);
      

  6.   

    这些都写在头文件吗?
    但我一些就报这些错了Notice: Undefined variable: _SESSION in D:\.....\search.php on line 5
    Warning: extract(): First argument should be an array in D:\....\search.php on line 5
      

  7.   

    如果你的页面中用到了session,那么就加extract($_SESSION);,否则只要加
    extract($_REQUEST);
    extract($_ENV);
    extract($_SERVER);就行了。是写在文件头
      

  8.   

    呵呵,够悲壮的!修改你的php.ini
    register_globals=off
    error_reporting = E_ALL在此配置下调试程序
    不就30个页面吗?改该就是了
      

  9.   

    session_start();
    extract($_REQUEST);
    extract($_SESSION);
    extract($_ENV);
    extract($_SERVER);session_start()在extract($_SESSION);前
      

  10.   

    extract($_SESSION)是针对session的那请问:  extract($_REQUEST);
      extract($_ENV);
      extract($_SERVER);
      又分别针对的是什么?
      

  11.   

    <?php
    if ($_GET['sch']==1)
      {
       echo "sch=".$_GET['sch'];
      }
    else echo "not found sch";
    ?>
      

  12.   

    extract($_REQUEST);  --  POST,GET,COOKIE
    extract($_ENV);      --  环境变量
    extract($_SERVER);   --  服务器变量
      

  13.   

    //这些都写在头文件吗?
    //但我一些就报这些错了
    //
    //Notice: Undefined variable: _SESSION in D:\.....\search.php on line 5
    //Warning: extract(): First argument should be an array in D:\....\search.php on line 5你确认你的版本是4.1.1吗?从4.1.0版本开始就有$_SESSION了...
    但这个错误提示是说没有$_SESSION数组。如果版本低于4.1.0,可以使用$HTTP_POST_VARS,$HTTP_GET_VARS等数组取代相应的$_POST,$_GET...
      

  14.   

    不是的,$_SESSION前要session_start才有值,所以会提示出错。
      

  15.   

    error_reporting(E_ERROR | E_WARNING | E_PARSE);if (isset($_GET)){
    while ( list($var, $val) = each($_GET) ) $$var = $val;
    }if (isset($_POST)){
    while ( list($var, $val) = each($_POST) ) $$var = $val;
    }
    把它做成dddddd.inc  加入到每个叶面中试一试
      

  16.   

    谢谢--- flyonet(人生如梦【★】梦如人生) 及楼上的诸君
     flyonet(人生如梦【★】梦如人生)的方法很好的解决了我$_get和$_post的问题。
    对于session问题大家还有类似于flyonet(人生如梦【★】梦如人生)的解决方法吗?程序:
     session_start();
     // extract($_SESSION);//放这里
     session_register("sn");
     session_register("sid");
     extract($_SESSION);//放这里结果:
    extract($_SESSION);//放两个地方都报同样的错:Warning: session_start(): open(E:\PHP\sessiondata\sess_47ef64712385d393e0f69a2d1cc00313, O_RDWR) failed: Permission denied (13) in D:\......\index.php on line 3Warning: session_start(): Cannot send session cookie - headers already sent by (output started at D:\...\index.php:3) in D:\.......\index.php on line 3Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at D:\.......\index.php:3) in D:\........\index.php on line 3
      

  17.   

    session_start();前不能有任何输出,包括空格。
      

  18.   

    郁闷,说你没有权限写入 E:\PHP\sessiondata\ ,检查一下
      

  19.   

    flyonet(人生如梦【★】梦如人生)的方法其它和extract是一样的
    你把extract($_GET);extract($_POST).......写在一个文件里然后包个页面包含,也会得到同样的效果
      

  20.   

    E:\PHP\sessiondata这个文件夹存在吗?
      

  21.   

    看来你只有用cookie或者自己设定一个session.save_path了.session_save_path("sdkfhs124");
    session_start();
    //以下写你的程序,把所有的session文件放在了sdkfhs124
      

  22.   

    我的1.php代码如下<?
     session_start();
    // extract($_SESSION);//加不加这句都一个结果
    ?>
    <a href="2.php">22222</a>
    结果:
    Warning: session_start(): open(E:\PHP\sessiondata\sess_73597d15330c98571e8fd46ec31c99fc, O_RDWR) failed: Permission denied (13) in D:\WEB\.....\1.php on line 2Warning: session_start(): Cannot send session cookie - headers already sent by (output started at D:\WEB\.....\1.php:2) in D:\WEB\.....\1.php on line 2Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at D:\WEB\.....\1.php:2) in D:\WEB\.....\1.php on line 2
    22222 
    Warning: Unknown(): open(E:\PHP\sessiondata\sess_73597d15330c98571e8fd46ec31c99fc, O_RDWR) failed: Permission denied (13) in Unknown on line 0Warning: Unknown(): Failed to write session data (files). Please verify that the current setting of session.save_path is correct (E:\PHP\sessiondata) in Unknown on line 0
    难道说session不是这么写的吗?
    为什么老说找不到这个什么sessiondata文件夹呢,郁闷,php的session你们现在都怎么写的啊?
    我看了几个版本的php的文件夹,下面都没有这样一个sessiondata文件夹啊,我实在是没招了!!!
      

  23.   

    ccterran(iwind) 说的没错,一设定session.save_path,还真不报错了,
    你用的是什么版本的php?
      

  24.   

    session_save_path("sdkfhs124")加上extract($_SESSION)还真可以了,不报错,爽!
      

  25.   

    请教楼上的诸位:
    我的程序如下:<?php
    session_save_path("../ss");
    session_start();
    extract($_SESSION);
    ?>但第一次打开页面时好像在页面的最后都会有一段报错,第二次打开就没有了
    报错如下:
    Warning: Unknown(): Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0怎么解决?