if ( (!session_is_registered('charset')) || (!session_is_registered('language')) || ($HTTP_GET_VARS['language']) ) {
}
这个循环没什么用吧??

解决方案 »

  1.   

    先看看你的language是怎么传递过来的,输出看看。
      

  2.   

    $HTTP_GET_VARS['language']
    如果这个没有值,不是直接就跳出循环了吗?
    这个$HTTP_GET_VARS['language']是不是应该是上个页面表单传过来的值?
      

  3.   

    $_SERVER['HTTP_ACCEPT_LANGUAGE']
    的意思是说,可以通过得到客户端可接受的语言来进行判断。
    不过这样有个缺点,就是客户端不能显示的语言了。
    建议不要用表单在每个页面传递使用的语言。最好用Cookie做。
    如果没有设置使用语言的Cookie那就用默认的。
      

  4.   

    <?php
    session_start();
    require('includes/function.php');
      if ( (!session_is_registered('charset')) || (!session_is_registered('language')) || ($HTTP_GET_VARS['language']) ) {
        if (!session_is_registered('language')) {
             session_register('language');
        }

    if (!session_is_registered('charset')) {
             session_register('charset');
        }    $language_code = ($HTTP_GET_VARS['language']) ? $HTTP_GET_VARS['language'] : 'en';
        switch ($language_code) {
          case gb:
            $language = 'chinese';
            $charset = 'gb2312';
          break;
          
          case en:
            $language = 'english';
            $charset = 'iso-8859-1';
          break;
          
          default:
            $language = 'englsih';
    $charset = 'iso-8859-1';
          break;       
        }
      }
     require('languages/' . $language . '.php');else
    {
    echo $language;
    }
    ?>
    为什么我在这里得到$language="English"????
    这段代码根本就没有执行呀,不是吗?
    如果$HTTP_GET_VARS['language'])有值,我想在下个页面取,直接就可以$a=$HTTP_GET_VARS['language'],这样可以吗?
      

  5.   

    <?php
    session_start();
     if($a==1)
      {
       if (!session_is_registered('language')) 
        {
           echo 1;
      session_register('language');
        }

    if (!session_is_registered('charset'))
     {
       echo 2;
      session_register('charset');
         }
        
            $language = 'chinese';
            $charset = 'gb2312';
              echo 111;
      }
      else
      {
       echo $language;
    }
    ?>
    例如这个例子,if{ }这个循环根本没执行,当然也就没执行$language = 'chinese';,那为什么$language还能显示"chinese"?
      

  6.   

    if(fdsds){
    fdskfjsdfdsfa}else{
    echo "efdsfdsfds";
    }
    我的有这样的一个毛病,程序怎么会让fdskfjsdfdsfa部分和efdsfdsfds部分一块输出呢?
      

  7.   

    <?php
    session_start();
       //$a=1;
      if($a==1)
      {
       if (!session_is_registered('language')) 
        {
           echo 1;
      session_register('language');
        }

    if (!session_is_registered('charset'))
     {
       echo 2;
      session_register('charset');
         }
        
            $language = 'chinese';
            $charset = 'gb2312';
              echo 111;
      }
      else
      {
       echo 222;
       echo $language;
    }
    ?>
    当我把"register_global=Off"就只显示"222"了,我快被搞死了,帮帮忙吧!
      

  8.   

    <?php
    session_start();  if ( (!session_is_registered('charset')) || (!session_is_registered('language')) || ($HTTP_GET_VARS['language']) ) 
      {
       echo 111;
           echo $HTTP_GET_VARS['language'];
        if (!session_is_registered('language')) 
        {
      session_register('language');
        }

    if (!session_is_registered('charset'))
     {
      session_register('charset');
         }    $language_code = ($HTTP_GET_VARS['language']) ? $HTTP_GET_VARS['language'] : 'en';
        switch ($language_code) 
        {
          case gb:
            $language = 'chinese';
            $charset = 'gb2312';
          break;
          
          case en:
            $language = 'english';
            $charset = 'iso-8859-1';
          break;
          
          default:
            $language = 'englsih';
    $charset = 'iso-8859-1';
          break;       
        }
        echo $language;
      }
    else
    {
    echo 333;
    echo $language;
    }?>
    关闭浏览器,重新打开时,显示"111english",并且建立一个session值是"language|s:7:"english";charset|s:10:"iso-8859-1";"
    但是刷新后,就是显示"333"了,救命呀!
      

  9.   

    那个显示222的应该是因为全部变量的注册被你关闭
    前面的判断返回的是错误
    所以执行else里面的东西吧?