Php 忽略会话
我正在尝试用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
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代码>行,因为您在它之前重定向您的代码片段对我有效。你试过在匿名窗口检查这个吗?你可能已经有了一个活动会话。对了!谢谢你指出这一点。我相信我是通过改变函数的顺序和会话设置来实现的。