Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 忽略会话_Php_Session_Redirect - Fatal编程技术网

Php 忽略会话

Php 忽略会话,php,session,redirect,Php,Session,Redirect,我正在尝试用PHP创建一个基于会话的小型语言切换脚本。由于某些原因,会话条件没有通过,就好像我尝试检查的每个会话都已设置。我错过什么了吗 <?php session_start(); echo 'session started'; if ( !isset($_SESSION[ 'language' ]) && empty($_SESSION[ 'language' ]) ) { echo 'set new sess

我正在尝试用PHP创建一个基于会话的小型语言切换脚本。由于某些原因,会话条件没有通过,就好像我尝试检查的每个会话都已设置。我错过什么了吗

<?php
    session_start();
        echo 'session started';
        if ( !isset($_SESSION[ 'language' ]) && empty($_SESSION[ 'language' ]) ) {
          echo 'set new session'; // Never reach this point, it seems the browser already has the session in store. Tried changing the session name several times.
          redirect();
          $_SESSION[ 'language' ] = true;
        }
        function redirect() {
          echo 'running redirect()';
          $language = explode( ',', $_SERVER['HTTP_ACCEPT_LANGUAGE'] );
          switch( $language[0] ) {
            case 'de-DE':
            case 'sv-SE':
            case 'no-NO':
            case 'dk-DK':
              header( 'Location: http://sample.com/' . substr($lang, 0, -3) . '/' );
            break;
          }
        }
?>


您不能在header之前输出任何内容,您的代码将永远无法到达会话['language']=true行,因为您在它之前重定向您的代码片段对我有效。你试过在匿名窗口检查这个吗?你可能已经有了一个活动会话。对了!谢谢你指出这一点。我相信我是通过改变函数的顺序和会话设置来实现的。