$HTTP_GET_VARS?????????? if ( (!session_is_registered('charset')) || (!session_is_registered('language')) || ($HTTP_GET_VARS['language']) ) {}这个循环没什么用吧?? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 先看看你的language是怎么传递过来的,输出看看。 $HTTP_GET_VARS['language']如果这个没有值,不是直接就跳出循环了吗?这个$HTTP_GET_VARS['language']是不是应该是上个页面表单传过来的值? $_SERVER['HTTP_ACCEPT_LANGUAGE']的意思是说,可以通过得到客户端可接受的语言来进行判断。不过这样有个缺点,就是客户端不能显示的语言了。建议不要用表单在每个页面传递使用的语言。最好用Cookie做。如果没有设置使用语言的Cookie那就用默认的。 <?phpsession_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'],这样可以吗? <?phpsession_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"? if(fdsds){fdskfjsdfdsfa}else{echo "efdsfdsfds";}我的有这样的一个毛病,程序怎么会让fdskfjsdfdsfa部分和efdsfdsfds部分一块输出呢? <?phpsession_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"了,我快被搞死了,帮帮忙吧! <?phpsession_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"了,救命呀! 那个显示222的应该是因为全部变量的注册被你关闭前面的判断返回的是错误所以执行else里面的东西吧? 请教个301重定向的问题 如果把MYSQL的值赋到另一个属性里 mysql显示select中查询字段名称 怎么样实现连续几幅图片上传呀! 急急急 PHP有关下拉列表的问题。 请教大虾:开发大型网上商城的话,用什么数据库最好? IE浏览器的问题 php 多个关键字智能查询 如何判断一个多维数组里面的值是否都为空? 为什么得不到Form的值? PHP生成图像后,怎么把中文汉字加到图片中去???
如果这个没有值,不是直接就跳出循环了吗?
这个$HTTP_GET_VARS['language']是不是应该是上个页面表单传过来的值?
的意思是说,可以通过得到客户端可接受的语言来进行判断。
不过这样有个缺点,就是客户端不能显示的语言了。
建议不要用表单在每个页面传递使用的语言。最好用Cookie做。
如果没有设置使用语言的Cookie那就用默认的。
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'],这样可以吗?
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"?
fdskfjsdfdsfa}else{
echo "efdsfdsfds";
}
我的有这样的一个毛病,程序怎么会让fdskfjsdfdsfa部分和efdsfdsfds部分一块输出呢?
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"了,我快被搞死了,帮帮忙吧!
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"了,救命呀!
前面的判断返回的是错误
所以执行else里面的东西吧?